Este repositorio sirve como Transfer Learning Suite. ¡El objetivo es poder realizar fácilmente el aprendizaje por transferencia utilizando cualquier modelo de clasificación de imágenes de Keras integrado! ¡Cualquier sugerencia para mejorar este repositorio o cualquier característica nueva que le gustaría ver es bienvenida!
También puedes consultar mi Suite de segmentación semántica.
Todos los modelos integrados de Keras están disponibles:
Modelo | Tamaño | Precisión Top-1 | Precisión Top-5 | Parámetros | Profundidad |
---|---|---|---|---|---|
VGG16 | 528 megas | 0,715 | 0.901 | 138.357.544 | 23 |
VGG19 | 549 megas | 0,727 | 0.910 | 143.667.240 | 26 |
ResNet50 | 99 megas | 0,759 | 0,929 | 25.636.712 | 168 |
Xcepción | 88 megas | 0.790 | 0,945 | 22.910.480 | 126 |
InicioV3 | 92 megas | 0,788 | 0.944 | 23.851.784 | 159 |
InicioResNetV2 | 215 megas | 0.804 | 0.953 | 55.873.736 | 572 |
red móvil | 17 megas | 0.665 | 0,871 | 4.253.864 | 88 |
DensoNet121 | 33 megas | 0.745 | 0.918 | 8.062.504 | 121 |
DensoNet169 | 57 megas | 0,759 | 0.928 | 14.307.880 | 169 |
DensoNet201 | 80 megas | 0.770 | 0.933 | 20.242.984 | 201 |
NASNetMóvil | 21 megas | N / A | N / A | 5.326.716 | N / A |
NASNetGrande | 342 megas | N / A | N / A | 88.949.818 | N / A |
main.py: modo de entrenamiento y predicción
utils.py: funciones de utilidad auxiliar
puntos de control: archivos de puntos de control para cada época durante el entrenamiento
Predicciones: resultados de la predicción
Este proyecto tiene las siguientes dependencias:
Numpy sudo pip install numpy
OpenCV Python sudo apt-get install python-opencv
sudo pip install --upgrade tensorflow-gpu
Keras sudo pip install keras
Lo único que tienes que hacer para comenzar es configurar las carpetas en la siguiente estructura:
├── "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
| | ├── .....
¡Entonces simplemente puedes ejecutar main.py
! Consulte los argumentos opcionales de la línea de comando:
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