Comment installer et utiliser TensorFlow sur Ubuntu 16.04

introduction

TensorFlow est un logiciel d'apprentissage automatique open source conçu par Google pour entraîner les réseaux de neurones. Les réseaux de neurones de TensorFlow sont exprimés sous la forme destateful dataflow graphs. Chaque nœud du graphique représente les opérations effectuées par les réseaux de neurones sur des tableaux multidimensionnels. Ces tableaux multidimensionnels sont communément appelés «tenseurs», d'où le nom TensorFlow.

TensorFlow est un système logiciel dedeep learning. TensorFlow fonctionne bien pour la recherche d'informations, comme l'a démontré Google dans la façon dont ils effectuent des recherches dans leur système d'intelligence artificielle d'apprentissage automatique,RankBrain. TensorFlow peut effectuer la reconnaissance d'image, comme indiqué dans lesInceptionde Google, ainsi que la reconnaissance audio en langage humain. Il est également utile pour résoudre d'autres problèmes non spécifiques à l'apprentissage automatique, tels quepartial differential equations.

L'architecture TensorFlow permet un déploiement sur plusieurs processeurs ou GPU au sein d'un ordinateur de bureau, d'un serveur ou d'un périphérique mobile. Il existe également des extensions pour l'intégration avecCUDA, une plate-forme de calcul parallèle de Nvidia. Cela donne aux utilisateurs qui déploient sur un GPU un accès direct au jeu d'instructions virtuel et aux autres éléments du GPU nécessaires aux tâches de calcul parallèles.

Dans ce didacticiel, vous allez installer la version «Support pour CPU uniquement» de TensorFlow. Cette installation est idéale pour les personnes qui souhaitent installer et utiliser TensorFlow, mais qui ne possèdent pas de carte graphique Nvidia ou n’ont pas besoin d’exécuter d’applications critiques en termes de performances.

Vous pouvez installer TensorFlow de plusieurs manières. Chaque méthode a un cas d'utilisation et un environnement de développement différents:

  • Python and Virtualenv: dans cette approche, vous installez TensorFlow et tous les packages requis pour utiliser TensorFlow dans un environnement virtuel Python. Ceci isole votre environnement TensorFlow des autres programmes Python sur le même ordinateur.

  • Native pip: dans cette méthode, vous installez TensorFlow sur votre système globalement. Ceci est recommandé aux personnes qui souhaitent rendre TensorFlow disponible pour tous les utilisateurs d’un système multi-utilisateurs. Cette méthode d'installation n'isole pas TensorFlow dans un environnement confiné et peut interférer avec d'autres installations ou bibliothèques Python.

  • Docker: Docker est un environnement d'exécution de conteneur et isole complètement son contenu des packages préexistants sur votre système. Dans cette méthode, vous utilisez un conteneur Docker contenant TensorFlow et toutes ses dépendances. Cette méthode est idéale pour incorporer TensorFlow dans une architecture d’application plus vaste utilisant déjà Docker. Cependant, la taille de l'image Docker sera assez grande.

Dans ce didacticiel, vous allez installer TensorFlow dans un environnement virtuel Python avecvirtualenv. Cette approche isole l’installation de TensorFlow et permet de faire fonctionner les choses rapidement. Une fois l’installation terminée, vous pourrez valider votre installation en exécutant un court programme TensorFlow, puis en utilisant TensorFlow pour effectuer la reconnaissance d’image.

Conditions préalables

Avant de commencer ce tutoriel, vous aurez besoin des éléments suivants:

[[step-1 -—- Installing-tensorflow]] == Étape 1 - Installation de TensorFlow

Dans cette étape, nous allons créer un environnement virtuel et installer TensorFlow.

Tout d'abord, créez un répertoire de projet appelétf-demo:

mkdir ~/tf-demo

Accédez au répertoiretf-demo nouvellement créé:

cd ~/tf-demo

Créez ensuite un nouvel environnement virtuel appelétensorflow-dev. Exécutez la commande suivante pour créer l'environnement:

python3 -m venv tensorflow-dev

Cela crée un nouveau répertoiretensorflow-dev qui contiendra tous les packages que vous installez lorsque cet environnement est activé. Il comprend égalementpip et une version autonome de Python.

Activez maintenant votre environnement virtuel:

source tensorflow-dev/bin/activate

Une fois activé, vous verrez quelque chose de similaire dans votre terminal:

(tensorflow-dev)username@hostname:~/tf-demo $

Vous pouvez maintenant installer TensorFlow dans votre environnement virtuel.

Exécutez la commande suivante pour installer et mettre à niveau vers la dernière version de TensorFlow disponible dansPyPi:

pip3 install --upgrade tensorflow

TensorFlow va installer:

OutputCollecting tensorflow
  Downloading tensorflow-1.4.0-cp36-cp36m-macosx_10_11_x86_64.whl (39.3MB)
    100% |████████████████████████████████| 39.3MB 35kB/s

...

Successfully installed bleach-1.5.0 enum34-1.1.6 html5lib-0.9999999 markdown-2.6.9 numpy-1.13.3 protobuf-3.5.0.post1 setuptools-38.2.3 six-1.11.0 tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc3 werkzeug-0.12.2 wheel-0.30.0

[.Remarque]##

Si vous souhaitez désactiver votre environnement virtuel à tout moment, la commande est:

deactivate

Pour réactiver l'environnement ultérieurement, accédez au répertoire de votre projet et exécutezsource tensorflow-dev/bin/activate.

Maintenant que vous avez installé TensorFlow, assurez-vous que l’installation de TensorFlow fonctionne.

[[step-2 -—- validating-installation]] == Étape 2 - Validation de l'installation

Pour valider l'installation de TensorFlow, nous allons exécuter un programme simple dans TensorFlow en tant qu'utilisateur non root. Nous utiliserons l’exemple canonique du débutant «Hello, world!» Comme forme de validation. Plutôt que de créer un fichier Python, nous allons créer ce programme en utilisantPython’s interactive console.

Pour écrire le programme, démarrez votre interpréteur Python:

python

L'invite suivante apparaîtra dans votre terminal.

>>>

Il s’agit de l’invite de l’interpréteur Python, qui indique qu’il est prêt pour que vous puissiez commencer à saisir certaines instructions Python.

Tout d'abord, tapez cette ligne pour importer le package TensorFlow et le rendre disponible en tant que variable localetf. Appuyez surENTER après avoir saisi la ligne de code:

import tensorflow as tf

Ensuite, ajoutez cette ligne de code pour définir le message «Hello, world!»:

hello = tf.constant("Hello, world!")

Créez ensuite une nouvelle session TensorFlow et affectez-la à la variablesess:

sess = tf.Session()

[.Remarque]##

Note: en fonction de votre environnement, vous pouvez voir cette sortie:

Output2017-06-18 16:22:45.956946: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957158: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957282: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957404: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957527: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.

Cela vous indique que vous avez uninstruction set qui a le potentiel d'être optimisé pour de meilleures performances avec TensorFlow. Si vous voyez cela, vous pouvez l'ignorer en toute sécurité et continuer.

Enfin, entrez cette ligne de code pour imprimer le résultat de l’exécution de la session TensorFlowhello que vous avez construite dans vos lignes de code précédentes:

print(sess.run(hello))

Vous verrez cette sortie dans votre console:

OutputHello, world!

Cela indique que tout fonctionne correctement et que vous pouvez commencer à utiliser TensorFlow pour réaliser quelque chose de plus intéressant.

Quittez la console interactive Python en appuyant surCTRL+D.

A présent, utilisons l’API de reconnaissance d’image de TensorFlow pour mieux vous familiariser avec TensorFlow.

[[step-3 -—- using-tensorflow-for-image-Recognition]] == Étape 3 - Utilisation de TensorFlow pour la reconnaissance d'image

Maintenant que TensorFlow est installé et que vous l’avez validé en exécutant un programme simple, examinons les fonctionnalités de reconnaissance d’image de TensorFlow.

Afin de classer une image, vous devez former un modèle. Ensuite, vous devez écrire du code pour utiliser le modèle. Pour en savoir plus sur ces concepts, vous pouvez jeter un œil àAn Introduction to Machine Learning.

TensorFlow fournit unrepository of models and examples, y compris du code et un modèle entraîné pour la classification des images.

Utilisez Git pour cloner le référentiel de modèles TensorFlow à partir de GitHub dans le répertoire de votre projet:

git clone https://github.com/tensorflow/models.git

Vous verrez la sortie suivante lorsque Git extrait le référentiel dans un nouveau dossier appelémodels:

OutputCloning into 'models'...
remote: Counting objects: 8785, done.
remote: Total 8785 (delta 0), reused 0 (delta 0), pack-reused 8785
Receiving objects: 100% (8785/8785), 203.16 MiB | 24.16 MiB/s, done.
Resolving deltas: 100% (4942/4942), done.
Checking connectivity... done.

Basculez vers le répertoiremodels/tutorials/image/imagenet:

cd models/tutorials/image/imagenet

Ce répertoire contient le fichierclassify_image.py qui utilise TensorFlow pour reconnaître les images. Ce programme télécharge un modèle entraîné à partir detensorflow.org lors de sa première exécution. Le téléchargement de ce modèle nécessite 200 Mo d'espace libre sur le disque.

Dans cet exemple, nous classerons unpre-supplied image of a Panda. Exécutez cette commande pour exécuter le programme de classificateur d'images:

python classify_image.py

Vous verrez une sortie semblable à celle-ci:

Outputgiant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107)
indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779)
lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296)
custard apple (score = 0.00147)
earthstar (score = 0.00117)

Vous avez classé votre première image à l'aide des fonctionnalités de reconnaissance d'image de TensorFlow.

Si vous souhaitez utiliser une autre image, vous pouvez le faire en ajoutant l’argument-- image_file à votre commandepython3 classify_image.py. Pour l’argument, vous devez indiquer le chemin absolu du fichier image.

Conclusion

Vous avez installé TensorFlow dans un environnement virtuel Python et avez validé le fonctionnement de TensorFlow en exécutant quelques exemples. Vous disposez désormais d'outils qui vous permettent d'explorer des sujets supplémentaires, notammentConvolutional Neural Networks etWord Embeddings.

Lesprogrammer’s guide de TensorFlow sont une excellente ressource et une référence pour le développement de TensorFlow. Vous pouvez également explorerKaggle, un environnement compétitif pour l'application pratique de concepts d'apprentissage automatique qui vous opposent à d'autres passionnés d'apprentissage automatique, de science des données et de statistiques. Ils ont un excellentwiki où vous pouvez voir et partager des solutions, dont certaines sont à la pointe des techniques statistiques et d'apprentissage automatique.