
Google a publié TensorFlow (www.tensorflow.org), une bibliothèque open source d'apprentissage automatique, qui a suscité en novembre dernier une grande attention dans le domaine de l'IA. TensorFlow est également connu sous le nom de « Machine Learning pour tous » car il est relativement facile à mettre en pratique, même pour ceux qui n'ont pas beaucoup d'expérience en apprentissage automatique. Aujourd'hui, nous sommes ravis d'annoncer que TensorFlow est désormais disponible sur la plateforme Rescale. Cela signifie que vous pouvez apprendre à créer et entraîner vos modèles d'apprentissage automatique à l'aide de TensorFlow avec un simple navigateur Web. Je vais vous expliquer comment procéder dans cet article de blog.
Commençons par un cas simple
Nous allons commencer par le premier tutoriel officiel de TensorFlow : MNIST pour les débutants en ML. Il présente ce qu'est le MNIST et comment le modéliser et l'entraîner avec la régression softmax, une méthode d'apprentissage automatique de base, dans TensorFlow. Ici, nous allons nous concentrer sur la façon de configurer le travail et de l'exécuter sur la plateforme Rescale.
Vous pouvez créer le script python dans un éditeur local mnist_for_beginners.py :
# Charger les données MNIST depuis tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # Définir le tensorflow d'importation du modèle comme tf x = tf.placeholder(tf.float32, [Aucun , 784]) W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(x, W) + b) # Entraîner le modèle y_ = tf.placeholder(tf.float32, [Aucun, 10]) cross_entropy = -tf.reduce_sum(y_*tf.log(y)) train_step = tf.train.GradientDescentOptimizer(0.01 ).minimize(cross_entropy) init = tf.initialize_all_variables() sess = tf.Session() sess.run(init) pour i dans la plage (1000) : batch_xs, batch_ys = mnist.train.next_batch(100) sess.run( train_step, feed_dict={x: batch_xs, y_: batch_ys}) # Évaluation du modèle correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) précision = tf.reduce_mean(tf. cast(correct_prediction, tf.float32)) print(sess.run(accuracy, feed_dict={x : mnist.test.images, y_ : mnist.test.labels}))
Le script ci-dessus rassemble simplement tous les extraits. Maintenant, nous devons l'exécuter sur le matériel GPU de Rescale.
Tout d'abord, vous devez créer un compte, si vous ne l'avez toujours pas fait, cliquez sur ici pour en créer un.
Si vous souhaitez éviter les tracas liés à la configuration étape par étape de la tâche, vous pouvez également cliquer sur ici pour afficher le travail du didacticiel et le cloner dans votre propre compte.
Après l'enregistrement du compte, connectez-vous à Rescale et cliquez sur le bouton « + Nouvel emploi » en haut à gauche pour créer un nouvel emploi.
Cliquez sur « Télécharger depuis cet ordinateur » et téléchargez votre script Python sur Rescale.
Cliquez sur « Suivant » pour accéder à la page Paramètres du logiciel et choisissez TensorFlow dans la liste des logiciels. Actuellement, la 0.71 est la seule version prise en charge sur Rescale, alors choisissez cette version et tapez « python ./mnist_for_beginners.py » dans le champ Commande. Sélectionnez « Suivant » pour accéder à la page Paramètres matériels.
Dans Paramètres matériels, choisissez le type de cœur Jade et sélectionnez 4 cœurs. Ce travail n'est pas très gourmand en calcul, nous choisissons donc le nombre minimum valide de cœurs. Nous pouvons ignorer le post-traitement pour cet exemple et cliquer sur « Soumettre » sur la page Révision pour soumettre le travail.

Il faudra 4 à 5 minutes pour lancer le serveur et 1 minute pour exécuter le travail. Lorsque le travail est en cours d'exécution, vous pouvez utiliser la fonction de suivi en direct de Rescale pour surveiller les fichiers dans le répertoire de travail.
Une fois le travail terminé, vous pouvez afficher les fichiers à partir de la page de résultats. Jetons un coup d'œil à process_output.log qui est la sortie du script python que nous avons téléchargé. À la troisième ligne en partant du bas, nous pouvons vérifier que la précision est de 91.45 %.
Un modèle plus avancé
Dans le deuxième didacticiel TensorFlow, un modèle plus avancé est construit avec un réseau convolutif multicouche pour augmenter la précision à 99.32 %.
Pour exécuter ce modèle avancé sur Rescale, vous pouvez simplement répéter le processus du premier et remplacer le script python par le nouveau modèle du tutoriel. Vous pouvez également afficher et cloner une tâche existante à partir de ici.
Test d'accélération des performances d'un GPU unique ou de plusieurs GPU
Si vous disposez de plusieurs GPU sur votre machine, TensorFlow peut tous les utiliser pour de meilleures performances. Dans cette section, nous allons effectuer un benchmark des performances sur une seule machine GPU K520 par rapport à une machine à 4 GPU K520 et tester les accélérations des performances.
Le CIFAR10 Réseau neuronal convolutif Cet exemple est utilisé comme notre travail d'analyse comparative. D'après le résultat ci-dessous, nous pouvons voir qu'avec 4 fois le nombre de GPU, les exemples traités par seconde ne représentent que 2.37 fois les performances d'un seul GPU.
Travailler à l'avance
TensorFlow vient de publier un nouvelle version distribuée (v0.8) le 4/13/2016 qui peut répartir la charge de travail entre les GPU sur plusieurs machines. Il serait très intéressant de voir ses performances sous un cluster multi-nœuds-multi-GPU. Avant cela, nous allons rendre le processus de lancement d'un cluster multi-nœuds-multi-GPU avec prise en charge de TensorFlow sur Rescale aussi simple que possible.
Importez cette offre d'emploi sur votre compte
