[PYTHON] Utilisation de TensorFlow avec Cloud9, un environnement de développement intégré au cloud-GetStarted-

introduction

Je travaille sur l'environnement de développement cloud intégré Cloud9. Depuis que j'étudie l'apprentissage automatique, j'ai construit un environnement dans lequel je souhaite étudier TensorFlow sur Cloud9. Je vais laisser cette note.

environnement

Cloud9 Python 2.7.6 Sample Codes : GitHub

procédure

Il s'agit de la procédure jusqu'à ce que vous puissiez exécuter [Get Started] de TensorFlow (https://www.tensorflow.org/versions/r0.11/get_started/index.html#introduction) sur Cloud9.

  1. Créez un nouvel espace de travail dans Cloud9. Sélectionnez python comme modèle.
  2. Dans Terminal, procédez comme suit:
    export export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp27-none-linux_x86_64.whl
    sudo pip install --upgrade $TF_BINARY_URL
  3. Enregistrez et exécutez l'exemple de programme Get Started. Identique à celui publié dans TensorFlow GET STARTED.

getstarted.py


import tensorflow as tf
import numpy as np

# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but TensorFlow will
# figure that out for us.)
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b

# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

# Before starting, initialize the variables.  We will 'run' this first.
init = tf.initialize_all_variables()

# Launch the graph.
sess = tf.Session()
sess.run(init)

# Fit the line.
for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(W), sess.run(b))

# Learns best fit is W: [0.1], b: [0.3]

Si le résultat de l'exécution est proche de 0,1 et 0,3, cela signifie que le coefficient de la droite peut être prédit par apprentissage. Le résultat que j'ai couru est ci-dessous et je vois des valeurs proches de 0,1 et 0,3.

(0, array([ 0.45364389], dtype=float32), array([ 0.13226086], dtype=float32))
(20, array([ 0.18247673], dtype=float32), array([ 0.25206894], dtype=float32))
(40, array([ 0.12017135], dtype=float32), array([ 0.28827751], dtype=float32))
(60, array([ 0.10493329], dtype=float32), array([ 0.29713303], dtype=float32))
(80, array([ 0.10120656], dtype=float32), array([ 0.29929882], dtype=float32))
(100, array([ 0.10029508], dtype=float32), array([ 0.29982853], dtype=float32))
(120, array([ 0.10007217], dtype=float32), array([ 0.29995808], dtype=float32))
(140, array([ 0.10001764], dtype=float32), array([ 0.29998976], dtype=float32))
(160, array([ 0.10000434], dtype=float32), array([ 0.29999751], dtype=float32))
(180, array([ 0.10000106], dtype=float32), array([ 0.29999939], dtype=float32))
(200, array([ 0.10000025], dtype=float32), array([ 0.29999986], dtype=float32))

Exécutez MNIST

Le programme qui reconnaît les nombres à partir des données d'image des nombres manuscrits a également été exécuté avec succès. Téléchargez et exécutez simplement convolutional.py depuis GitHub. (C'est la même que la source sur le site officiel.) Lorsqu'il est exécuté sur Cloud9, cela a pris environ 100 étapes et 2 minutes, et je pense que cela a pris environ 2 heures au total. Les spécifications ne suffisent pas. Les spécifications de Cloud9 étaient 1 CPU et 512 Mo de RAM. Le résultat de l'exécution est le suivant. (Comme il est long, il est omis au milieu.)

python convolutional.py 

Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
Initialized!
Step 0 (epoch 0.00), 7.7 ms
Minibatch loss: 12.054, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%
Step 100 (epoch 0.12), 706.3 ms
Minibatch loss: 3.287, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 7.0%
Step 200 (epoch 0.23), 713.8 ms
...
...
Step 5300 (epoch 6.17), 1937.9 ms
Minibatch loss: 1.980, learning rate: 0.007351
Minibatch error: 0.0%
Validation error: 0.9%
Step 5400 (epoch 6.28), 2089.9 ms

Je ne sais pas comment le regarder, mais je me demande s'il peut être identifié car le pourcentage d'erreur de minibatch et d'erreur de validation est faible. Je viens de le faire cette fois, mais je veux comprendre le contenu dans le futur.

en conclusion

Maintenant que TensorFlow a été installé sur Cloud9, j'aimerais en comprendre le contenu à l'avenir. À propos, TensorFlow semble utiliser le CPU et le GPU, mais il semble que ceux basés sur le GPU ne puissent pas être utilisés. J'ai essayé de l'installer, mais j'ai eu une erreur lors de l'exécution. Sur Cloud9, utilisons celui qui utilise le CPU.

Journal des modifications

2016/10/19 --Ajout du résultat de l'exécution de l'exemple de code MNIST --Description de l'environnement --Changé le nom de code de l'exemple pour qu'il corresponde à GitHub

Recommended Posts

Utilisation de TensorFlow avec Cloud9, un environnement de développement intégré au cloud-GetStarted-
Utilisation de TensorFlow dans l'environnement de développement intégré Cloud 9 - Principes d'utilisation -
TensorBoard facile de 3 minutes dans Google Colab (en utilisant TensorFlow 2.x)
Structure de répertoire pour le développement piloté par les tests à l'aide de pytest en python
Développement de framework avec Python
Environnement de développement en Python
Jupyter dans l'IDE Cloud9
Développement Slackbot en Python
Utilisez «% tensorflow_version 2.x» lorsque vous utilisez TPU avec Tensorflow 2.1.0 dans Colaboratory
Autoriser l'exécution rapide des scripts Python dans Cloud Run à l'aide du répondeur
La découverte de test échoue lors de l'utilisation de tensorflow dans l'environnement vscode + pytest