Transfer Learning Suite
1.0.0
该存储库用作迁移学习套件。目标是能够使用任何内置 Keras 图像分类模型轻松执行迁移学习!欢迎提出任何改进此存储库的建议或您希望看到的任何新功能!
您还可以查看我的语义分割套件。
所有 Keras 内置模型均可用:
模型 | 尺寸 | Top-1 准确度 | 前 5 名准确度 | 参数 | 深度 |
---|---|---|---|---|---|
VGG16 | 528MB | 0.715 | 0.901 | 138,357,544 | 23 |
VGG19 | 549MB | 0.727 | 0.910 | 143,667,240 | 26 |
残网50 | 99MB | 0.759 | 0.929 | 25,636,712 | 168 |
Xception | 88MB | 0.790 | 0.945 | 22,910,480 | 126 |
盗梦空间V3 | 92MB | 0.788 | 0.944 | 23,851,784 | 159 |
InceptionResNetV2 | 215MB | 0.804 | 0.953 | 55,873,736 | 第572章 |
移动网络 | 17MB | 0.665 | 0.871 | 4,253,864 | 88 |
密集网121 | 33MB | 0.745 | 0.918 | 8,062,504 | 121 |
密集网169 | 57MB | 0.759 | 0.928 | 14,307,880 | 169 |
密集网201 | 80MB | 0.770 | 0.933 | 20,242,984 | 201 |
NAS网络移动 | 21MB | 不适用 | 不适用 | 5,326,716 | 不适用 |
NAS网络大型 | 342MB | 不适用 | 不适用 | 88,949,818 | 不适用 |
main.py:训练和预测模式
utils.py:辅助实用函数
检查点:训练期间每个时期的检查点文件
预测:预测结果
该项目具有以下依赖项:
numpy sudo pip install numpy
OpenCV Python sudo apt-get install python-opencv
TensorFlow sudo pip install --upgrade tensorflow-gpu
Keras sudo pip install keras
您唯一需要做的就是按照以下结构设置文件夹:
├── "dataset_name"
| ├── train
| | ├── class_1_images
| | ├── class_2_images
| | ├── class_X_images
| | ├── .....
| ├── val
| | ├── class_1_images
| | ├── class_2_images
| | ├── class_X_images
| | ├── .....
| ├── test
| | ├── class_1_images
| | ├── class_2_images
| | ├── class_X_images
| | ├── .....
然后你可以简单地运行main.py
!查看可选的命令行参数:
usage: main.py [-h] [--num_epochs NUM_EPOCHS] [--mode MODE] [--image IMAGE]
[--continue_training CONTINUE_TRAINING] [--dataset DATASET]
[--resize_height RESIZE_HEIGHT] [--resize_width RESIZE_WIDTH]
[--batch_size BATCH_SIZE] [--dropout DROPOUT] [--h_flip H_FLIP]
[--v_flip V_FLIP] [--rotation ROTATION] [--zoom ZOOM]
[--shear SHEAR] [--model MODEL]
optional arguments:
-h, --help show this help message and exit
--num_epochs NUM_EPOCHS
Number of epochs to train for
--mode MODE Select "train", or "predict" mode. Note that for
prediction mode you have to specify an image to run
the model on.
--image IMAGE The image you want to predict on. Only valid in
"predict" mode.
--continue_training CONTINUE_TRAINING
Whether to continue training from a checkpoint
--dataset DATASET Dataset you are using.
--resize_height RESIZE_HEIGHT
Height of cropped input image to network
--resize_width RESIZE_WIDTH
Width of cropped input image to network
--batch_size BATCH_SIZE
Number of images in each batch
--dropout DROPOUT Dropout ratio
--h_flip H_FLIP Whether to randomly flip the image horizontally for
data augmentation
--v_flip V_FLIP Whether to randomly flip the image vertically for data
augmentation
--rotation ROTATION Whether to randomly rotate the image for data
augmentation
--zoom ZOOM Whether to randomly zoom in for data augmentation
--shear SHEAR Whether to randomly shear in for data augmentation
--model MODEL Your pre-trained classification model of choice