Comment installer et utiliser TensorFlow sur Ubuntu 18.04

introduction

TensorFlow est un logiciel d'apprentissage automatique open source utilisé 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. Cela fonctionne bien pour la recherche d'informations, comme l'a démontré Google dans la façon dont il recherche le classement dans son 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 poste de travail, 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, nous allons 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.

Commencez par créer un répertoire de projet. Nous l'appelleronstf-demo à des fins de démonstration, mais choisissez un nom de répertoire qui est significatif pour vous:

mkdir ~/tf-demo

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

cd ~/tf-demo

Créez ensuite un nouvel environnement virtuel appelétensorflow-dev, par exemple. 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:

pip install --upgrade tensorflow

TensorFlow s’installera et vous devriez obtenir un résultat indiquant que l’installation et les packages dépendants ont abouti.

Output...
Successfully installed absl-py-0.7.1 astor-0.7.1 gast-0.2.2 grpcio-1.19.0 h5py-2.9.0 keras-applications-1.0.7 keras-preprocessing-1.0.9 markdown-3.0.1 mock-2.0.0 numpy-1.16.2 pbr-5.1.3 protobuf-3.7.0 setuptools-40.8.0 tensorboard-1.13.1 tensorflow-1.13.1 tensorflow-estimator-1.13.0 termcolor-1.1.0 werkzeug-0.15.0 wheel-0.33.1
...

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]##

Vous pouvez désactiver votre environnement virtuel à tout moment en utilisant la commande suivante:

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ît 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:

Output2019-03-20 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.
2019-03-20 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.
2019-03-20 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.
2019-03-20 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.
2019-03-20 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:

Dans Python 3,sess.run() renverra une chaîne d'octets, qui sera rendue sous la formeb'Hello, world!' si vous exécutezprint(sess.run(hello)) seul. Pour renvoyerHello, world! sous forme de chaîne, ajoutons la méthodedecode().

print(sess.run(hello).decode())

Vous verrez cette sortie dans votre console:

OutputHello, world!

Cela indique que tout fonctionne et que vous pouvez commencer à utiliser TensorFlow.

Quittez la console interactive Python en appuyant surCTRL+D ou en tapantquit().

Ensuite, utilisons l’API de reconnaissance d’image de TensorFlow pour mieux connaître 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, nous pouvons examiner 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 les concepts d'apprentissage automatique, lisez «https://www.digitalocean.com/community/tutorials/an-inintroduction-to-machine-learning[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 recevrez la sortie suivante lorsque Git extrait le référentiel dans un nouveau dossier appelémodels:

OutputCloning into 'models'...
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 24851 (delta 17), reused 12 (delta 6), pack-reused 24819
Receiving objects: 100% (24851/24851), 507.78 MiB | 32.73 MiB/s, done.
Resolving deltas: 100% (14629/14629), done.
Checking out files: 100% (2858/2858), 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 recevrez 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

Dans ce didacticiel, vous avez installé TensorFlow dans un environnement virtuel Python et confirmé que TensorFlow fonctionne en analysant 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 constituent une ressource et une référence utiles 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 unwikirobuste où vous pouvez explorer et partager des solutions, dont certaines sont à la pointe des techniques statistiques et d'apprentissage automatique.