Transfer Learning Suite
1.0.0
このリポジトリは、Transfer Learning Suite として機能します。目標は、組み込みの Keras 画像分類モデルを使用して転移学習を簡単に実行できるようにすることです。このリポジトリを改善するための提案や、希望する新機能は大歓迎です。
私のセマンティック セグメンテーション スイートもチェックしてください。
Keras の組み込みモデルはすべて利用可能です。
モデル | サイズ | トップ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 |
ゼセプション | 88MB | 0.790 | 0.945 | 22,910,480 | 126 |
インセプションV3 | 92MB | 0.788 | 0.944 | 23,851,784 | 159 |
インセプションResNetV2 | 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 | NA | NA | 5,326,716 | NA |
NASネットラージ | 342MB | NA | NA | 88,949,818 | NA |
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