docker pull tensorflow:latest-jupyter
dato che nel docker non e' presente la libreria tensorflow-hub ho modificato il docker creando il Dockerfile
----------------------------------------
RUN pip install --upgrade tensorflow-hub
----------------------------------------
in seguito
docker build . -t tensorflor/tensorflow:latest-jupiter-hub
la rete neurale ha necessita' di occupare piu' Ram possibile ed ho disabilitato i controlli del kernel su docker in modo da non andare in OOM (Out of Memory)
La home directory della macchina e' inoltre mappata su /tf/notebook del container in modo da salvare i modelli. Infine si mappa la porta 8888 del container sulla 8888 del localhost per interagire con i notebook
sudo docker run --oom-kill-disable -m="6g" --memory-swap="10g" -it -v $PWD:/tf/notebooks -w /tmp -p 8888:8888 tensorflow/tensorflow:latest-jupyter-hub
in alcuni casi puo' essere necessario aggiungere al file /etc/default /grub la stringa
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
lanciare un update-grub e riavviare la macchina
per abilitare la GPU NVidia si aggiunge lo switch --gpus all ma in questo caso la memoria utilizzabile sara' solo quella della GPU (e sui portatili di solito e' difficile avere schede grafiche con generose dotazioni di ram) e deve essere presente docker-nvidia
Le immagini dei foarminifei sono relativi a 15 classi (dati)
Usando come base efficientnetv2-s-21k-ft1k (dimensione immagine 384 pixel) con il risultato di 80% di risultati corrispondenti sul modello originale e 68% sul dataset di validazione
il notebook puo' essere scaricato da qui