TensorFlow Eine maschinelle Lernbibliothek von Google, die im November 2015 angekündigt wurde. Es heißt "Tensol Flow". Es wird tatsächlich im Dienst des Unternehmens verwendet.
Einige Leute haben verschiedene Dinge geschrieben, aber da die Oberfamilie die beste ist, werde ich versuchen, sie sofort einzutragen https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html
#Vorbereitungen
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
#Installieren Sie TensorFlow
pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0-py2-none-any.whl
source ~/tensorflow/bin/activate
python
Führen Sie zunächst den vorbereiteten Test für Python durch
>>> 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
Es funktionierte
Immerhin sehen die Oberfamilie https://www.tensorflow.org/versions/master/tutorials/mnist/beginners/index.html
Maschinelles Lernen wird unter Verwendung eines Datensatzes der obigen handgeschriebenen numerischen Bilder durchgeführt, der als MNIST bezeichnet wird. Dies ist eine Bestätigung der Grundbedienung wie Hello World der Programmierung.
Zunächst erhalte ich die Daten, aber es scheint, dass ich sie bereits automatisch abrufen kann, indem ich Folgendes eingebe.
>>> 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
Welche Art von Daten ist zum Beispiel so? 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
Also werde ich es tatsächlich versuchen, aber ich werde die Erklärung der Berechnungsmethode darin überspringen, weil sie schwer ist.
>>> 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)
Zuerst mache ich eine Schachtel, um sie hinein zu legen. Da das Bild 28 x 28 = 784 Pixel groß ist, benötigen wir einen 784-dimensionalen Vektor. Da es sich um eine Zahl handelt, handelt es sich um eine Box für 10-dimensionale = 10 Merkmale von 0 bis 9.
Die Formel lautet y = softmax (w * x + b)
Ich werde das Training von hier aus machen
>>> 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)
Um zu lernen, müssen wir definieren, was gut und was schlecht ist. Hier trainieren wir mit der Kostenfunktion "Cross Entropy". Hier wird auch das richtige Antwortdatenfeld y_ erstellt. Berechnen wir den Cross-Entry-Pee, und hier verwenden wir den Gradientenabstiegsalgorithmus mit einer Lernrate von cross_entropy 0,5, um den zu minimierenden TensorFlow zu finden. Zum Schluss mit der Sitzung initialisieren
>>> init = tf.initialize_all_variables()
>>> sess = tf.Session()
>>> sess.run(init)
Jetzt, wo du bereit bist, lass uns! Training ... 1000 Schritte
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})
Holen Sie sich einen "Stapel" von 100 zufälligen Datenpunkten aus dem MNIST-Trainingssatz und führen Sie die Schritte aus
Bewerten Sie das Modell. Erstellen Sie zunächst einen Berechnungssatz
>>> correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
>>> accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
Lauf
>>> print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))
0.9188
Es scheint, dass die richtige Antwortrate 90% beträgt. Dies ist jedoch nicht sehr genau, und wenn Sie Feineinstellungen vornehmen, können Sie es auf 99,7% erhöhen ... Magica w
Auch hier scheint es eine ausführliche Erklärung zu geben https://drive.google.com/file/d/0B04ol8GVySUubjVsUDdXc0hla00/view
Ich werde verschiedene Dinge tun, um die Genauigkeit zu verbessern. Fahren Sie mit Teil 2 fort http://qiita.com/northriver/items/4f4690053e1770311335
Recommended Posts