Comment installer TensorFlow sur Raspberry Pi

Bonjour les Raspvoriens, voici un petit tutoriel pour installer TensorFlow sur votre Raspberry Pi. Vous aller voir que nous allons devoir utiliser une image docker car malheureusement, TensorFlow ne peux pas être installé directement sous Raspbian.

Pourquoi ne peut-on pas installer TensorFlow sur Raspbian ?! 😨

Raspbian est l’OS spécialement développé pour la Raspberry Pi. Si vous avez déjà un peu parcouru le site officiel de RPi, vous avez pu voir que Raspbian est un système d’exploitation libre basé sur la distribution GNU/Linux Debian.

D’après le site officiel de Tensorflow, il est possible de l’installer sur Ubuntu. La procédure semble assez simple notamment si vous passez par la commande pip. La commande pip issue du package pip vous permet d’installer des packages pour Python.
On peut suivre donc les instructions du site de Tensorflow est installer le package pip en tapant la commande ci-dessous dans la console:

   $ sudo apt-get install python-pip python-dev 

A noter que qu’il existe pip3. En gros pip correspond à Python 2 et pip3 à Python 3. Si vous souhaitez plutôt travailler sur Python 3, la commande devient alors:

   $ sudo apt-get install python3-pip python3-dev 

C’est bon pip est installé! Nous allons pouvoir à présent installer TensorFlow. Encore, un fois c’est très simple, il suffit de rentrer les commandes suivantes:

   $ pip install tensorflow      # Python 2.7; CPU support (no GPU support)
   $ pip3 install tensorflow     # Python 3.n; CPU support (no GPU support)
   $ pip install tensorflow-gpu  # Python 2.7;  GPU support
   $ pip3 install tensorflow-gpu # Python 3.n; GPU support 

A noter que c’est à vous de choisir si vous souhaitez utiliser Python 2 ou Python 3. Ci-dessus, vous avez les codes pour ces 2 versions.

Normalement TensorFlow devrait être installé mais si vous essayez sur une Raspberry Pi, vous remarquerez que ça ne fonctionne pas. Il semblerait que le problème soit du au fait qu’il manque l’outil/package bazel (développé par Google) sur la Rapsberry Pi. Je ne sais pas trop à quoi il sert mais apparemment, ce serait la source de tous les maux.

Mais alors, quel est la solution !

Des génies (un grand merci à eux) ont réussi à créer une image Docker de TensorFlow. En suivant avec attention les étapes présentées, vous pourrez même sauvegarder votre code Python contenant TensorFlow dans un dossier sur votre RPi 3.

Je vous invite donc à visiter la page suivante https://github.com/samjabrahams/tensorflow-on-raspberry-pi dans un premier temps. Puis pour finaliser, vous devrez suivre les étapes présentées dans la page suivante : https://github.com/romilly/rpi-docker-tensorflow.

Ci-dessous, voici les lignes de codes à taper dans la console (ce n’est qu’un copier-coller des liens mentionnés précédemment) :

Etape 1 – Initialisation

  • Installer les dépendances pour Tensorflow.
   $ sudo apt-get update 
   $ sudo apt-get install python3-pip python3-dev 
  • Télécharger le Wheel et l’installer.
   $ wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v0.12.1/tensorflow-0.12.1-cp34-cp34m-linux_armv7l.whl
sudo pip3 install tensorflow-0.12.1-cp34-cp34m-linux_armv7l.whl 
  • D’après le tuto, il faut réinstaller la library mock. Quand je tape ces lignes, cet library n’est apparemment pas installé. Je pense donc qu’il suffit juste de l’installer. Je mets quand même la ligne de désinstallation au cas où.
   $ sudo pip3 uninstall mock 
   $ sudo pip3 install mock 

Etape 2 – Docker image

  • Installer Docker sur votre Raspberry Pi.
   $ curl -sSL get.docker.com | sh 
   $ sudo usermod -aG docker pi 

Rédémarrer la Raspberry pour que les changements prennent effet.

   $ sudo shutdown -r now 

Ré-ouvrez le terminale et taper la ligne suivante:

   $ sudo systemctl start docker 
  • Cloner le fichier ci-dessous.
   $ git clone https://github.com/romilly/rpi-docker-tensorflow.git 
  • Construisez l’image. « yourName » correspond au nom de votre Rapsberry Pi (par défaut « pi »).
   $ cd rpi-docker-tensorflow/build-tensor-pi/ 
   $ docker build -t='yourName/rpi-docker-tensorflow' . 
# ici écrire docker build -t='pi/rpi-docker-tensorflow' (si vous avez gardé le nom par défaut de votre RPi)
#et ne pas oublier le point à la fin.

Etape 3 – Lancer l’image

Taper:

   $ docker run -it -p 8888:8888 -v ~/myNotebooks:/notebooks/myNotebooks pi/rpi-docker-tensorflow 

Vous allez obtenir l’url qui permettra d’ouvrir un notebook Jupyter dans votre navigateur. Vous pourrez alors utiliser TensorFlow.


TensorFlow Start_docker_Jupyter_Notebook
Le lien url pour ouvrir le Notebook TensorFlow est surligné.

Pour stopper le docker TensorFlow, il suffit de faire un petit CTRL+C.

Petite remarque : un dossier « myNotebooks » sera créé en même temps. Quand vous sauvegarderez un fichier Python, vous le retrouverez dans ce dossier. Vous pouvez ainsi conserver votre travail même si le conteneur docker est éteint ou redémarrer. Et oui!!! Même si vous travaillez dans un conteneur docker, vous pourrez sauvegarder vos fichiers dans un dossier présent dans votre Raspberry Pi.

ATTENTION : Tout n’est pas parfait non plus. Vous ne pourrez malheureusement pas utiliser toutes les fonctionnalités de TensorFlow. Je vous invite à lire mon petit billet sur ce sujet pour voir les quelques limites auxquels vous ferez peut-être face.

A noter, que tout ceci n’est peut-être plus d’actualité à l’heure où vous lisez ces lignes. En effet, les packages sont régulièrement mis à jour et donc qui sait, TensorFlow sera peut-être très bientôt installable sur votre RPi.

Voilà tout, j’espère que cet article RaspVOR vous sera d’une grande aide. Si vous avez des questions, n’hésitez pas à les poster en commentaire!!