Für diejenigen, die nicht mit maschinellem Lernen vertraut sind, aber innerhalb des Bereichs berechnen möchten, den sie verstehen können, versuchen wir die Fibonacci-Zahlenfolge mit TensorFlow.
Fibonacci-Folge
Zum Beispiel zu berechnen
u = 1
v = 0
for i in range(100):
print i, v
u = u + v
v = u - v
Sie können es so machen.
TensorFlow
import tensorflow as tf
Angenommen, Sie möchten mit lesen.
Variable Ändern wir zunächst die Variablen u und v in TensorFlow-Variablen. Verwenden Sie dazu Variable wie folgt:
u = tf.Variable(1, "int64")
v = tf.Variable(0, "int64")
Ich habe int64 als Überlauf-Gegenmaßnahme gewählt, aber leider tritt in Abschnitt 93 ein Überlauf auf. Wenn dies weggelassen wird, wird es als int32 behandelt.
Es hört sich so an, als könnten Sie es mit "print u" drucken, aber leider bekommen Sie nicht das, was Sie erwarten. TensorFlow ist in eine Phase der Definition von Variablen, Funktionen und Prozeduren und eine Phase der tatsächlichen Datenverarbeitung unterteilt.
Verwenden Sie tf.Session, um die Daten tatsächlich zu verarbeiten. Variablen müssen zu Beginn der Sitzung initialisiert werden. Verwenden Sie dazu tf.initialize_all_variables. Und Sie können die Werte von u und v erhalten, indem Sie die folgenden Schritte ausführen.
init = tf.initialize_all_variables()
with tf.Session() as sess:
sess.run(init)
print sess.run(v)
Nehmen Sie Werte und führen Sie Prozeduren mit sess.run aus.
Der Rest ist der Wertaktualisierungsteil. Verwenden Sie tf.assign für die Zuordnung. Verwenden Sie tf.add und tf.sub zum Addieren und Subtrahieren. Definieren wir eine Prozedur namens Substitution.
update_u = tf.assign(u, tf.add(u, v)) # u = u + v
update_v = tf.assign(v, tf.sub(u, v)) # v = u - v
Um die obige Geschichte zusammenzufassen:
import tensorflow as tf
u = tf.Variable(tf.cast(1,"int64"))
v = tf.Variable(tf.cast(0,"int64"))
update_u = tf.assign(u, tf.add(u,v))
update_v = tf.assign(v, tf.sub(u,v))
init = tf.initialize_all_variables()
with tf.Session() as sess:
sess.run(init)
for i in range(100):
print i, sess.run(v)
sess.run(update_u)
sess.run(update_v)
Wenn ich es ausführe, zeigt die CPU irgendwie ein Protokoll an, das mit I beginnt, aber da es sich um Info handelt, ist es mir egal.
Wenn Sie TensorFlow noch nicht berührt haben, lassen Sie uns etwas unternehmen.
Recommended Posts