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.
Cloud9 Python 2.7.6 Sample Codes : GitHub
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.
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))
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.
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.
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