TensorFlow

From CC Doc
Jump to: navigation, search
This page is a translated version of the page Tensorflow and the translation is 100% complete.

Other languages:
English • ‎français

TensorFlow est une bibliothèque logicielle open source d'apprentissage machine.

Installation

Les directives suivantes servent à installer TensorFlow dans votre répertoire personnel (home) à l'aide des paquets binaires (Python wheels) préparés par Calcul CanadaThe French name for Compute Canada; ces paquets se trouvent dans /cvmfs/soft.computecanada.ca/custom/python/wheelhouse/.
Le paquet TensorFlow sera installé dans un environment virtuel Python avec la commande pip.
Ces directives sont valides pour Python 3.5.2; avec Python 3.5.Y ou 2.7.X, utilisez un des autres modules Python.

Chargez les modules requis par TensorFlow.

[nom@serveur $] module load python/3.5.2

Créez un nouvel environnement Python.

[nom@serveur $] virtualenv tensorflow

Activez le nouvel environnement.

[nom@serveur $] source tensorflow/bin/activate

Installez TensorFlow dans ce nouvel environnement en utilisant la commande de l'une des deux sous-sections suivantes.

CPU seulement

(tensorflow) [name@server $] pip install tensorflow-cpu

GPU

(tensorflow) [name@server $] pip install tensorflow-gpu

Soumettre une tâche TensorFlow avec un GPU

Soumettez une tâche TensorFlow ainsi

[nom@serveur $] sbatch tensorflow-test.sh

Le script contient

File : tensorflow-test.sh

#!/bin/bash
#SBATCH --gres=gpu:1        # request GPU "generic resource"
#SBATCH --cpus-per-task=6   # maximum CPU cores per GPU request: 6 on Cedar, 16 on Graham.
#SBATCH --mem=32000M        # memory per node
#SBATCH --time=0-03:00      # time (DD-HH:MM)
#SBATCH --output=%N-%j.out  # %N for node name, %j for jobID

module load cuda cudnn python/3.5.2
source tensorflow/bin/activate
python ./tensorflow-test.py


Le script Python se lit

File : tensorflow-test.py

import tensorflow as tf
node1 = tf.constant(3.0, dtype=tf.float32)
node2 = tf.constant(4.0) # also tf.float32 implicitly
print(node1, node2)
sess = tf.Session()
print(sess.run([node1, node2]))


Une fois la tâche complétée, ce qui devrait nécessiter moins d'une minute, un fichier de sortie avec un nom semblable à cdr116-122907.out devrait être généré. Le contenu de ce fichier serait similaire à ce qui suit :

File : cdr116-122907.out

2017-07-10 12:35:19.489458: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties:
name: Tesla P100-PCIE-12GB
major: 6 minor: 0 memoryClockRate (GHz) 1.3285
pciBusID 0000:82:00.0
Total memory: 11.91GiB
Free memory: 11.63GiB
2017-07-10 12:35:19.491097: I tensorflow/core/common_runtime/gpu/gpu_device.cc:961] DMA: 0
2017-07-10 12:35:19.491156: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0:   Y
2017-07-10 12:35:19.520737: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla P100-PCIE-12GB, pci bus id: 0000:82:00.0)
Tensor("Const:0", shape=(), dtype=float32) Tensor("Const_1:0", shape=(), dtype=float32)
[3.0, 4.0]


TensorFlow fonctionne sur tous les types de nœuds GPU. Pour la recherche de grande envergure en apprentissage profond ou en apprentissage machine, il est fortement recommandé d'utiliser le type de nœuds GPU large de Cedar. Ces nœuds sont équipés de 4 x P100-PCIE-16Go avec GPUDirect P2P entre chaque paire. Pour plus d'information, consultez cette page.