TensorFlow Une bibliothèque d'apprentissage automatique créée par Google, annoncée en novembre 2015. Il est dit de lire "Tensol Flow". Il est en fait utilisé au service de l'entreprise.
Certaines personnes ont écrit diverses choses, mais comme le chef de famille est le meilleur, je vais essayer de le mettre immédiatement https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html
#Les préparatifs
sudo easy_install pip
sudo easy_install --upgrade six
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0-py2-none-any.whl
sudo pip install --upgrade virtualenv
sudo virtualenv --system-site-packages ~/tensorflow
source ~/tensorflow/bin/activate
#Installez TensorFlow
pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0-py2-none-any.whl
source ~/tensorflow/bin/activate
python
Tout d'abord, faites le test préparé pour python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> hello
<tf.Tensor 'Const:0' shape=() dtype=string>
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42
Ça a marché
Après tout voir la famille principale https://www.tensorflow.org/versions/master/tutorials/mnist/beginners/index.html
L'apprentissage automatique est effectué à l'aide d'un ensemble de données des images numériques manuscrites ci-dessus appelé MNIST. Ceci est positionné comme une confirmation du fonctionnement de base comme Hello World de la programmation.
Tout d'abord, j'obtiens les données, mais il semble que je puisse déjà les obtenir automatiquement en tapant ce qui suit.
>>> from tensorflow.examples.tutorials.mnist import input_data
>>> mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes. Extracting MNIST_data/train-images-idx3-ubyte.gz Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes. Extracting MNIST_data/train-labels-idx1-ubyte.gz Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes. Extracting MNIST_data/t10k-images-idx3-ubyte.gz Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes. Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
Quel type de données est, par exemple, comme ça train-images-idx3-ubyte.gz: training set images (9912422 bytes)
0000 0803 0000 ea60 0000 001c 0000 001c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0312 1212 7e88 af1a
Donc, je vais en fait essayer, mais je vais sauter l'explication de la méthode de calcul à l'intérieur car elle est lourde.
>>> import tensorflow as tf
>>> x = tf.placeholder(tf.float32, [None, 784])
>>> W = tf.Variable(tf.zeros([784, 10]))
>>> b = tf.Variable(tf.zeros([10]))
>>> y = tf.nn.softmax(tf.matmul(x, W) + b)
Tout d'abord, je fabrique une boîte pour la mettre. Comme l'image mesure 28x28 = 784 pixels, nous avons besoin d'un vecteur de 784 dimensions, et comme il s'agit d'un nombre, c'est une boîte pour 10 dimensions = 10 caractéristiques de 0 à 9.
La formule est y = softmax (w * x + b)
Je vais faire la partie formation d'ici
>>> y_ = tf.placeholder(tf.float32, [None, 10])
>>> cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y),reduction_indices=[1]))
>>> train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
Pour apprendre, nous devons définir ce qui est bon et ce qui est mauvais. Ici, nous allons nous entraîner en utilisant la fonction de coût "Entropie croisée". La boîte de données de réponse correcte y_ est également créée ici. Calculons le pipi d'entrée croisée, et ici nous utilisons l'algorithme de descente de gradient avec un taux d'apprentissage de cross_entropy 0,5 pour trouver le TensorFlow à minimiser. Enfin initialisez avec la session
>>> init = tf.initialize_all_variables()
>>> sess = tf.Session()
>>> sess.run(init)
Maintenant que vous êtes prêt, allons-y! Formation ... 1000 étapes
for i in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
Obtenez un "lot" de 100 points de données aléatoires à partir de l'ensemble d'entraînement MNIST et suivez les étapes
Évaluez le modèle. Commencez par créer un ensemble de calculs
>>> correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
>>> accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
Courir
>>> print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))
0.9188
Il semble que le taux de réponse correcte soit de 90%. Cependant, la précision n'est pas élevée et si vous effectuez des ajustements fins, vous pouvez l'augmenter à 99,7% ... Magica w
Il semble y avoir une explication détaillée ici aussi https://drive.google.com/file/d/0B04ol8GVySUubjVsUDdXc0hla00/view
Je ferai diverses choses pour améliorer la précision. Continuer à la partie 2 http://qiita.com/northriver/items/4f4690053e1770311335
Recommended Posts