Ich heiße Cho. Normalerweise entwickle ich Webanwendungen mit CakePHP3.
Vor kurzem habe ich mich für Python interessiert und es persönlich berührt.
Dieses Mal möchte ich eine Geschichte über das einfache maschinelle Lernen mit TensorFlow schreiben.
・ Anfänger von TensorFlow
-Entwickeln Sie mit Docker auf dem Mac.
・ Ausdruckskraft mithilfe eines Datenflussdiagramms ・ Funktioniert im CPU / GPU-Modus ohne Codeänderung ・ Vom Ideentest bis zum Service verfügbar ・ Unterstützung ** Python ** / C ++
Installieren Sie zunächst in der Docker-Umgebung. Bitte stellen Sie die Umgebung unter Bezugnahme auf die folgende URl ein. https://docs.docker.com/engine/installation/mac/#/docker-for-mac
Klicken Sie auf den folgenden Befehl, um den Container aus dem Docker-Image auszuführen
docker run -it b.gcr.io/tensorflow/tensorflow-full
Überprüfen Sie den Betrieb
$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print sess.run(a+b)
42
>>>
Zu diesem Zeitpunkt wurde die Entwicklungsumgebung festgelegt.
Jetzt, da die Umgebung eingestellt ist Lernen Sie die in TensorFlow verwendeten Begriffe kennen. Operation Die Knoten im Diagramm werden als Operation (op) bezeichnet. Der Betrieb kann einen oder mehrere Tensoren empfangen. Die Operation gibt das Ergebnis der Ausführung der Berechnung als einen oder mehrere Tensoren zurück.
Tensor Intern werden alle Daten durch Tensor dargestellt. Tensor ist wie ein mehrdimensionales Array, und nur Tensor tauscht zwischen Operationen im Diagramm aus.
Session Sie benötigen ein Sitzungsobjekt, um das Diagramm auszuführen. Die Sitzung kapselt die Ausführungsumgebung von Operation.
Variables Variablen werden verwendet, um Parameter nach dem Ausführen des Diagramms zu speichern und zu aktualisieren. Es ist die Rolle des Puffers, der Tensor im Speicher speichert.
Verwenden wir TensorFlow jetzt persönlich.
Weitere Informationen zur Methode mit dem steilsten Abstieg finden Sie unter der folgenden URL. https://ja.wikipedia.org/wiki/%E6%9C%80%E6%80%A5%E9%99%8D%E4%B8%8B%E6%B3%95
Gewichtete Matrix "W" und Bias "b"
import tensorflow as tf
import numpy as np
#Setzen Sie 100 Daten mit Numpy Random.
x_data = np.float32(np.random.rand(2, 100))
#Das Lernziel wird nach folgender Formel berechnet. (W = [0.1, 0.2], b = 0.3)
y_data = np.dot([0.100, 0.200], x_data) + 0.300
Definieren Sie ein Modell anhand der Eingabedaten und W, b
#b ist 0,
b = tf.Variable(tf.zeros([1]))
#W ist eine 1x2 Gewichtsvariable(Mit gleichem Zufallswert initialisieren)
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b
#Definition der Verlustfunktion
loss = tf.reduce_mean(tf.square(y - y_data))
#Initialisieren Sie die Verlustfunktion mit der Methode des steilsten Abstiegs(0.5 ist das Lernverhältnis)
optimizer = tf.train.GradientDescentOptimizer(0.5)
#Definition der Lernoperation
train = optimizer.minimize(loss)
Beginn der Lernsitzung
#Initialisieren Sie alle Variablen.
init = tf.initialize_all_variables()
# Session start
sess = tf.Session()
sess.run(init)
#Lerne 200 mal.
for step in xrange(0, 201):
sess.run(train)
if step % 20 == 0:
print step, sess.run(W), sess.run(b)
Ergebnis
0 [[ 0.8228116 0.25179306]] [-0.21591029]
20 [[ 0.31065419 0.22789511]] [ 0.17903577]
40 [[ 0.15808699 0.20829338]] [ 0.26633102]
60 [[ 0.11601268 0.20247138]] [ 0.29062203]
80 [[ 0.10441278 0.20073807]] [ 0.2973859]
100 [[ 0.10121564 0.20022091]] [ 0.29927069]
120 [[ 0.10033476 0.20006624]] [ 0.29979634]
140 [[ 0.10009213 0.20001991]] [ 0.29994306]
160 [[ 0.10002533 0.20000601]] [ 0.29998407]
180 [[ 0.10000696 0.20000178]] [ 0.29999554]
200 [[ 0.10000192 0.20000054]] [ 0.29999873]
・ Python ist vorerst erstaunlich und TensorFlow ist erstaunlich. ・ Dieses Mal hatte ich das Gefühl, dass ich mehr Mathematik studieren musste, während ich versuchte, das Problem zu lösen, das ich als Beispielaufgabe gegeben hatte. ・ Dieses Mal habe ich versucht, das maschinelle Lernen mit Python ein wenig zu berühren, daher möchte ich auch andere Stellen berühren.
Recommended Posts