Tensorflow ist ein typischer Rahmen für tiefes Lernen. Dieser Tensor Flow wird im Oktober 2019 Version 2.0 sein. Die Art und Weise, wie die Quelle geschrieben wird, hat sich ebenfalls geändert.
Die meisten Artikel sind jedoch noch in der 1.X-Version verfasst. ** Wie schreibst du das nach 2.0? ** ** ** Ich denke, es gibt viele Leute, die stecken bleiben.
Ich war einer von ihnen, also schrieb ich einen Artikel mit einem Memorandum, um zu den Grundlagen zurückzukehren. Ich arrangiere es selbst, während ich mich auf verschiedene Dinge beziehe Wenn Sie Fehler haben, hinterlassen Sie bitte einen Kommentar.
Darüber hinaus wird die einzuführende Probe nicht im Detail erläutert. Es ist sehr einfach und auf den Unterschied zwischen ver1 und ver2 spezialisiert.
Für ver 1.15.0
in
import tensorflow as tf
a = tf.constant(1, name='a')
b = tf.constant(2, name='b')
c = a + b
with tf.Session() as sess:
print(sess.run(c))
print(c)
print(type(c))
out
3
Tensor("add:0", shape=(), dtype=int32)
<class 'tensorflow.python.framework.ops.Tensor'>
Für ver 2.1.0
in
import tensorflow as tf
a = tf.constant(1, name='a')
b = tf.constant(2, name='b')
c = a + b
tf.print(c)
print(c)
print(type(c))
out
3
tf.Tensor(3, shape=(), dtype=int32)
<class 'tensorflow.python.framework.ops.EagerTensor'>
【Referenz】 tf.print
Für ver 1.15.0
in
import tensorflow as tf
a = tf.constant(1, name='a')
b = tf.constant(2, name='b')
c = a + b
with tf.Session() as sess:
print(sess.run(c))
print(c)
graph = tf.get_default_graph()
print(graph.as_graph_def())
out
node {
name: "a"
op: "Const"
...(Unterlassung)...
node {
name: "add"
op: "AddV2"
input: "a"
input: "b"
attr {
key: "T"
value {
type: DT_INT32
}
}
}
versions {
producer: 134
}
Für ver 2.1.0
in
import tensorflow as tf
graph = tf.Graph()
with graph.as_default():
a = tf.constant(1, name='a')
b = tf.constant(2, name='b')
c = a + b
print(graph.as_graph_def())
out
# ver 1.15.Ausgelassen, weil es dasselbe wie 0 ist
Für ver 1.15.0
in
import tensorflow as tf
a = tf.Variable(10, name='a')
b = tf.constant(2, name='b')
c = tf.assign(a, a + b)
with tf.Session() as sess:
# global_variables_initializer() :Initialisieren Sie alle Variablen
sess.run(tf.global_variables_initializer())
print(sess.run(c))
print(sess.run(c))
out
12
14
Für ver 2.1.0
in
import tensorflow as tf
a = tf.Variable(10, name='a')
b = tf.constant(2, name='b')
tf.print(a.assign_add(b))
tf.print(a.assign_add(b))
out
12
14
Für ver 1.15.0
in
import tensorflow as tf
a = tf.placeholder(dtype=tf.int32, name='a')
b = tf.constant(2, name='b')
c = a + b
with tf.Session() as sess:
print(sess.run(c, feed_dict={a: 10}))
print(a, b, c)
out
12
Tensor("a:0", dtype=int32) Tensor("b:0", shape=(), dtype=int32) Tensor("add:0", dtype=int32)
Für ver 2.1.0
in
import tensorflow as tf
a = tf.Variable(10, name='a')
b = tf.constant(2, name='b')
# @tf.AutoGraph mit Funktion
@tf.function
def add(x, y):
return x + y
c = add(a,b)
tf.print(c)
print(type(c))
print(a, b, c)
out
12
<class 'tensorflow.python.framework.ops.EagerTensor'>
<tf.Variable 'a:0' shape=() dtype=int32, numpy=10> tf.Tensor(2, shape=(), dtype=int32) tf.Tensor(12, shape=(), dtype=int32)
【Referenz】 Migrate your TensorFlow 1 code to TensorFlow 2
Für ver 1.15.0
in
import tensorflow as tf
a = tf.constant(5, name='a')
b = tf.constant(2, name='b')
add = tf.add(a, b) #Hinzufügen
subtract = tf.subtract(a, b) #Subtrahieren
multiply = tf.multiply(a, b) #Multiplizieren
truediv = tf.truediv(a, b) #Teilung
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(add))
print(sess.run(subtract))
print(sess.run(multiply))
print(sess.run(truediv))
print(type(add))
out
7
3
10
2.5
<class 'tensorflow.python.framework.ops.Tensor'>
Für ver 2.1.0
in
import tensorflow as tf
a = tf.constant(5, name='a')
b = tf.constant(2, name='b')
add = tf.math.add(a, b) #Hinzufügen
dif = tf.math.subtract(a,b) #Subtrahieren
multiply = tf.math.multiply(a, b) #Multiplizieren
truediv = tf.math.truediv(a, b) #Teilung
tf.print(add)
tf.print(dif)
tf.print(multiply)
tf.print(truediv)
print(type(add))
out
7
3
10
2.5
<class 'tensorflow.python.framework.ops.EagerTensor'>
【Referenz】 tf.math
Für ver 1.15.0
in
import tensorflow as tf
a = tf.constant([[1, 2], [3, 4]], name='a')
b = tf.constant([[1], [2]], name='b')
c = tf.matmul(a, b) #Matrix a,Multiplizieren b
with tf.Session() as sess:
print(a.shape)
print(b.shape)
print(c.shape)
print('a', sess.run(a))
print('b', sess.run(b))
print('c', sess.run(c))
out
(2, 2)
(2, 1)
(2, 1)
a [[1 2]
[3 4]]
b [[1]
[2]]
c [[ 5]
[11]]
Für ver 2.1.0
in
import tensorflow as tf
a = tf.constant([[1, 2], [3, 4]], name='a')
b = tf.constant([[1], [2]], name='b')
c = tf.linalg.matmul(a, b) #Matrix a,Multiplizieren b
print(a.shape)
print(b.shape)
print(c.shape)
tf.print('a', a)
tf.print('b', b)
tf.print('c', c)
out
# ver 1.15.Ausgelassen, weil es dasselbe wie 0 ist
Dieses Mal habe ich die Grundlagen in den Grundlagen zusammengefasst. Nächstes Mal möchte ich die Gradientenmethode beschreiben.
Recommended Posts