lunedì 30 dicembre 2019

Retrain Model con dati di foraminiferi

Aggiornamento
Ho provato a fare girare il modello con dataset di train di 1000 e 1500 immagini

Dataset 1000 immagini per classe
57% di attribuzioni corrette


Dataset 1500 immagini per classe
56% di attribuzioni corrette



=======================================================================

Al posto di creare da zero un modello in Tensorflow per addestrare il riconoscimento di foraminiferi ho provato ad aggiungere le mie classi ad una rete gia' addestrata

Per fare cio' si deve aggiungere il supporto a Tensorflow HUB con

pip install "tensorflow~=2.0" 
pip install "tensorflow-hub[make_image_classifier]~=0.6"
Si lancia quindi il comando

make_image_classifier \
  --image_dir train \
  --tfhub_module https://tfhub.dev/google/tf2-preview/mobilenet_v2/feature_vector/4 \
  --saved_model_dir fora \
  --labels_output_file class_labels.txt \
  --tflite_output_file fora_mobile_model.tflite

Le immagini devono essere conformi al formato di mobilenet quindi devono avere una dimensione di 224x224 pixels

di default vengono selezionate 5 epoche ma si puo' cambiare il valore con lo switch --train_epochs

Ho iniziato con il dataset completo di 1500 immagini per 5 classi ma in modo non prevedibile il processo veniva killato senza preavviso. Si tratta di un problema di memoria cosi' sono sceso a 500 elementi per classe con una ram di 8Gb

Per effettuare l'inferenza (ovvero la previsione del modello su una immagine non contenuta nel training si usa lo script label_image.py

 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/examples/python/label_image.py

python label_image.py -m fora_mobile_model.tflite -l class_labels.txt  -i test/a_globigerina_bulloides.1102.jpg 


I risultati sono leggermente peggiori del precedente post  : 22 corretti e 25 errati (46% corretti 54% errati) ma si nota in maniera netta come il riconoscimento di Globigerinita Glutinata sia totalmente sballato

Nessun commento:

Posta un commento

Dockerizza Flask

Un esempio semplice per inserire in un container Docker una applicazione Flask Partiamo da una semplice applicazione che ha un file app.py ...