Utilizzare Tensorflow in ambiente Microsoft Windows

Tensorflow è un framework open source, realizzato da google, che viene utilizzato per il deep learning e che consente di implementare velocemente reti neurali di grande complessità.

Una delle caratteristiche che lo rende particolarmente diffuso è la sua capacità di utilizzare le schede grafiche Nvidia per il training delle reti, operazione molto gravosa anche per i moderni microprocessori.

Le operazioni di training possono essere multiplexate sui numerosi core presenti in una qualunque scheda grafica; infatti una scheda grafica può contenere migliaia di cores, che consentono di scalare i tempi di calcolo di qualche ordine di grandezza rispetto ai 4/8 cores di un comune microprocessore.

Normalmente Tensorflow viene implementato in Python. L’ambiente tipico è una macchina linux (ubuntu ?) su cui è molto facile installare i moduli richiesti per le elaborazioni.

Purtroppo l’utilizzo di Tensorflow all’interno di una virtual machine è limitato dal fatto che la virtual machine non consente l’accesso diretto alle risorse gpu della macchina ospite, di conseguenza non si possono utilizzare i moduli per l’elaborazione su scheda grafica. Pertanto il training in una macchine virtuale sarà sempre molto limitato.

Certo, si potrà sempre creare una seconda partizione sul disco fisso su cui installare in dual boot una macchina linux.

Questo comporta oneri che non sempre si giustificano, in termini di tempo di installazione, di spazio su disco, ecc. ecc. .

Esiste, tuttavia, una opportunità più semplice, per chi possiede una macchina windows: installare l’ambiente Tensorflow su windows e sfruttare le risorse della scheda grafica in maniera nativa.

Per far ciò è necessario installare il toolkit cuda di nvidia, al link https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal

Non ci si deve lasciar prendere dalla tentazione di installare la release di CUDA più recente in quanto Tensorflow è stato compilato per funzionare unicamente con la release 10.1.

Perciò è necessario accedere alle release legacy presenti nella pagina summenzionata e scaricare e installare la versione 10.1. Questa può essere installata anche sopra una precedente installazione di una versione più recente, senza problemi.

Ovviamente, per funzionare, Tensorflow necessita dell’ambiente python, quindi è necessario installare la release più recente della versione 3 dell’interprete Python, sulla relativa pagina python.org. Ricordarsi di installare anche l’ambiente pip, presente tra le opzioni.

Una volta installato Python, si può accedere al relativo ambiente da una finestra del dos, semplicemente scrivendo

python

Di qui si deve installare il modulo tensorflow

pip install tensorflow

e poi i datasets

pip install tensorflow-datasets

a questo punto si può verificare se funziona il tutto importando il relativo modulo

import tensorflow_datasets as tfds

Se il modulo CUDA è stato caricato correttamente non si dovrebbero presentare errori e il risultato dovrebbe essere il seguente:

I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll