Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/calmiLovesAI/Basic_CNNs_TensorFlow2
A tensorflow2 implementation of some basic CNNs(MobileNetV1/V2/V3, EfficientNet, ResNeXt, InceptionV4, InceptionResNetV1/V2, SENet, SqueezeNet, DenseNet, ShuffleNetV2, ResNet).
https://github.com/calmiLovesAI/Basic_CNNs_TensorFlow2
densenet efficientnet image-classification image-recognition inception-resnet-v2 inception-v4 mobilenet-v1 mobilenet-v2 mobilenet-v3 regnet resnet resnext senet seresnet shufflenet-v2 squeezenet tensorflow tensorflow2
Last synced: 7 days ago
JSON representation
A tensorflow2 implementation of some basic CNNs(MobileNetV1/V2/V3, EfficientNet, ResNeXt, InceptionV4, InceptionResNetV1/V2, SENet, SqueezeNet, DenseNet, ShuffleNetV2, ResNet).
- Host: GitHub
- URL: https://github.com/calmiLovesAI/Basic_CNNs_TensorFlow2
- Owner: calmiLovesAI
- License: mit
- Created: 2019-09-11T07:43:19.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-11-24T04:27:38.000Z (almost 3 years ago)
- Last Synced: 2024-05-20T10:10:18.469Z (6 months ago)
- Topics: densenet, efficientnet, image-classification, image-recognition, inception-resnet-v2, inception-v4, mobilenet-v1, mobilenet-v2, mobilenet-v3, regnet, resnet, resnext, senet, seresnet, shufflenet-v2, squeezenet, tensorflow, tensorflow2
- Language: Python
- Homepage:
- Size: 148 KB
- Stars: 522
- Watchers: 19
- Forks: 177
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Basic_CNNs_TensorFlow2
A tensorflow2 implementation of some basic CNNs.## Networks included:
+ MobileNet_V1
+ MobileNet_V2
+ [MobileNet_V3](https://github.com/calmisential/MobileNetV3_TensorFlow2)
+ [EfficientNet](https://github.com/calmisential/EfficientNet_TensorFlow2)
+ [ResNeXt](https://github.com/calmisential/ResNeXt_TensorFlow2)
+ [InceptionV4, InceptionResNetV1, InceptionResNetV2](https://github.com/calmisential/InceptionV4_TensorFlow2)
+ SE_ResNet_50, SE_ResNet_101, SE_ResNet_152, SE_ResNeXt_50, SE_ResNeXt_101
+ SqueezeNet
+ [DenseNet](https://github.com/calmisential/DenseNet_TensorFlow2)
+ ShuffleNetV2
+ [ResNet](https://github.com/calmisential/TensorFlow2.0_ResNet)
+ RegNet## Other networks
For AlexNet and VGG, see : https://github.com/calmisential/TensorFlow2.0_Image_Classification
For InceptionV3, see : https://github.com/calmisential/TensorFlow2.0_InceptionV3
For ResNet, see : https://github.com/calmisential/TensorFlow2.0_ResNet## Train
1. Requirements:
+ Python >= 3.9
+ Tensorflow >= 2.7.0
+ tensorflow-addons >= 0.15.0
2. To train the network on your own dataset, you can put the dataset under the folder **original dataset**, and the directory should look like this:
```
|——original dataset
|——class_name_0
|——class_name_1
|——class_name_2
|——class_name_3
```
3. Run the script **split_dataset.py** to split the raw dataset into train set, valid set and test set. The dataset directory will be like this:
```
|——dataset
|——train
|——class_name_1
|——class_name_2
......
|——class_name_n
|——valid
|——class_name_1
|——class_name_2
......
|——class_name_n
|—-test
|——class_name_1
|——class_name_2
......
|——class_name_n
```
4. Run **to_tfrecord.py** to generate tfrecord files.
5. Change the corresponding parameters in **config.py**.
6. Run **show_model_list.py** to get the index of model.
7. Run **python train.py --idx [index]** to start training.
If you want to train the *EfficientNet*, you should change the IMAGE_HEIGHT and IMAGE_WIDTH before training.
- b0 = (224, 224)
- b1 = (240, 240)
- b2 = (260, 260)
- b3 = (300, 300)
- b4 = (380, 380)
- b5 = (456, 456)
- b6 = (528, 528)
- b7 = (600, 600)
## Evaluate
Run **python evaluate.py --idx [index]** to evaluate the model's performance on the test dataset.## Different input image sizes for different neural networks
Type
Neural Network
Input Image Size (height * width)
MobileNet
MobileNet_V1
(224 * 224)
MobileNet_V2
(224 * 224)
MobileNet_V3
(224 * 224)
EfficientNet
EfficientNet(B0~B7)
/
ResNeXt
ResNeXt50
(224 * 224)
ResNeXt101
(224 * 224)
SEResNeXt
SEResNeXt50
(224 * 224)
SEResNeXt101
(224 * 224)
Inception
InceptionV4
(299 * 299)
Inception_ResNet_V1
(299 * 299)
Inception_ResNet_V2
(299 * 299)
SE_ResNet
SE_ResNet_50
(224 * 224)
SE_ResNet_101
(224 * 224)
SE_ResNet_152
(224 * 224)
SqueezeNet
SqueezeNet
(224 * 224)
DenseNet
DenseNet_121
(224 * 224)
DenseNet_169
(224 * 224)
DenseNet_201
(224 * 224)
DenseNet_269
(224 * 224)
ShuffleNetV2
ShuffleNetV2
(224 * 224)
ResNet
ResNet_18
(224 * 224)
ResNet_34
(224 * 224)
ResNet_50
(224 * 224)
ResNet_101
(224 * 224)
ResNet_152
(224 * 224)
## References
1. MobileNet_V1: [Efficient Convolutional Neural Networks for Mobile Vision Applications](https://arxiv.org/abs/1704.04861)
2. MobileNet_V2: [Inverted Residuals and Linear Bottlenecks](https://arxiv.org/abs/1801.04381)
3. MobileNet_V3: [Searching for MobileNetV3](https://arxiv.org/abs/1905.02244)
4. EfficientNet: [EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks](https://arxiv.org/abs/1905.11946)
5. The official code of EfficientNet: https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet
6. ResNeXt: [Aggregated Residual Transformations for Deep Neural Networks](https://arxiv.org/abs/1611.05431)
7. Inception_V4/Inception_ResNet_V1/Inception_ResNet_V2: [Inception-v4, Inception-ResNet and the Impact of Residual Connectionson Learning](https://arxiv.org/abs/1602.07261)
8. The official implementation of Inception_V4: https://github.com/tensorflow/models/blob/master/research/slim/nets/inception_v4.py
9. The official implementation of Inception_ResNet_V2: https://github.com/tensorflow/models/blob/master/research/slim/nets/inception_resnet_v2.py
10. SENet: [Squeeze-and-Excitation Networks](https://arxiv.org/abs/1709.01507)
11. SqueezeNet: [SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size](https://arxiv.org/abs/1602.07360)
12. DenseNet: [Densely Connected Convolutional Networks](https://arxiv.org/abs/1608.06993)
13. https://zhuanlan.zhihu.com/p/37189203
14. ShuffleNetV2: [ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design
](https://arxiv.org/abs/1807.11164)
15. https://zhuanlan.zhihu.com/p/48261931
16. ResNet: [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385)
17. RegNet: [Designing Network Design Spaces](https://arxiv.org/abs/2003.13678)