Creación en Tensorflow de 2 modelos de clasificación sobre un Dataset propio.
Se ha creado tanto un modelo propio desde cero, como hecho fine-tuning al modelo EfficientNetB2 proporcionado por Keras.
🙋♂️ Los archivos de este repositorio pertenecen al TFG de Alejandro Mendoza Medina.
Para usar la GPU en Windows nativo se necesita:
- Una GPU de tecnología NVIDIA (no son compatibles ni las de AMD ni las de Intel).
- Python -> versión 3.10
- Tensorflow -> versión 2.9 (en la 2.10, que es la última compatible con Windows nativo, hay un error irreparable que no deja guardar el modelo creado, no se puede hacer 'model.save')
- Drivers de CUDA -> versión 11.x
- cuDNN -> versión 8.x
Consultar Tensorflow Compatibilidad con GPU (hasta la sección "Requisitos de software") para más info.
NOTA-1: Previamente se debe tener un dataset local que conste de imágenes repartidas en las clases que se deseen clasificar. Para saber sobre la estructura del dataset, consultar el readme.md de la carpeta 'utils'.
NOTA-2: Se debe tener en cuenta que se deberán de ajustar todos los paths para el correcto funcionamiento de los notebooks.
Notebook de creación, entrenamiento y pruebas de un modelo propio que obtiene un 60% de accuracy en test.
Las imágenes que se quieran predecir manualmente deben ser redimensionadas a 224x224.
Notebook de creación, entrenamiento y pruebas de un modelo al que se le ha hecho transfer-learning del modelo EfficientNetB2 que obtiene un 88% de accuracy en test.
Las imágenes que se quieran predecir manualmente deben ser redimensionadas a 224x224.
Notebook que compara algunos modelos de Keras para la elección del modelo con transfer-learning.
En esta carpeta se encuentra un archivo para "reciclar" el dataset con descripción detallada.
En esta carpeta se encuentran los modelos creados, tanto el propio como el "fine-tuneado" con EfficientNetB2.
☣️☣️
Si se quisiera reentrenar/probar alguno de los modelos, sepa el lector que se han entrenado sobre un dataset de imágenes de 31 clases de razas de gatos 😸, las cuales son las siguientes:
Abyssinian, American Curl, American Shorthair, Bengal, Birman, Bobtail, Bombay, British Shorthair, Burmilla, Calico, Egyptian Mau, Exotic Shorthair, Ginger, Khao Manee, Maine Coon, Manx, Munchkin, Nebelung, Norwegian Forest, Persian, Ragdoll, Rex, Russian Blue, Scottish Fold, Siamese, Snowshoe, Sphynx, Tabby, Tortoishell, Turkish Angora y Tuxedo.
Con otro tipo de imágenes (flores, coches...) no predecirá correctamente.
NOTA: En las razas ''Calico'' y ''Tortoishell'' se han incluido fotos de sus variantes llamas ''Dilute Calico'' y ''Dilute Tortoishell'' repectivamente.
☣️☣️
Se proporcionan imágenes para realizar predicciones manualmente, pero siéntase libre de coger cualquiera de internet y probar.
Ya podría ser la burocracia de España igual de rápida que obtener la licencia del repositorio.
Cualquier duda o sugerencia contactar con el autor:
Alejandro Mendoza: [email protected]