يعمل هذا المستودع بمثابة مجموعة نقل التعلم. الهدف هو أن تكون قادرًا بسهولة على إجراء نقل التعلم باستخدام أي نموذج تصنيف صور مدمج في Keras! نرحب بأي اقتراحات لتحسين هذا المستودع أو أي ميزات جديدة ترغب في رؤيتها!
يمكنك أيضًا الاطلاع على مجموعة التقسيم الدلالي الخاصة بي.
جميع موديلات Keras المضمنة متاحة:
نموذج | مقاس | أعلى 1 دقة | أعلى 5 دقة | حدود | عمق |
---|---|---|---|---|---|
VGG16 | 528 ميجا بايت | 0.715 | 0.901 | 138,357,544 | 23 |
VGG19 | 549 ميجا بايت | 0.727 | 0.910 | 143,667,240 | 26 |
ريسنيت50 | 99 ميجابايت | 0.759 | 0.929 | 25,636,712 | 168 |
اكسسيبشن | 88 ميجا بايت | 0.790 | 0.945 | 22,910,480 | 126 |
التأسيسV3 | 92 ميجا بايت | 0.788 | 0.944 | 23,851,784 | 159 |
InceptionResNetV2 | 215 ميجا بايت | 0.804 | 0.953 | 55,873,736 | 572 |
موبايل نت | 17 ميجا بايت | 0.665 | 0.871 | 4,253,864 | 88 |
DenseNet121 | 33 ميجا بايت | 0.745 | 0.918 | 8,062,504 | 121 |
دينسينت169 | 57 ميجا بايت | 0.759 | 0.928 | 14,307,880 | 169 |
دينسينت201 | 80 ميجا بايت | 0.770 | 0.933 | 20,242,984 | 201 |
NASNetMobile | 21 ميجا بايت | غير متوفر | غير متوفر | 5,326,716 | غير متوفر |
NASNetLarge | 342 ميجا بايت | غير متوفر | غير متوفر | 88,949,818 | غير متوفر |
main.py: وضع التدريب والتنبؤ
utils.py: وظائف الأداة المساعدة
نقاط التفتيش: ملفات نقاط التفتيش لكل فترة أثناء التدريب
التنبؤات: نتائج التنبؤ
يحتوي هذا المشروع على التبعيات التالية:
Numpy sudo pip install numpy
OpenCV Python sudo apt-get install python-opencv
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