1 变量的创建和初始化
1.1 变量初始化器初始化单个变量
,它将变量的初始值赋给变量本身
import tensorflow as tf
x = tf.Variable(5.0,name="x")
weights = tf.Variable(tf.random_normal([3, 4], stddev=0.35, seed=1), name="weights")
biases = tf.Variable(tf.zeros([4]), name="biases")
with tf.Session() as sess:
sess.run(x.initializer)
sess.run(weights.initializer)
sess.run(biases.initializer)
print(sess.run(x))
print(sess.run(weights))
print(sess.run(biases))
===运行结果:================================================
5.0
[[-0.2839614 0.5196096 0.02286528 -0.85494643]
[ 0.03473694 0.2069285 0.20748803 -0.74302536]
[-0.25301403 -0.01969463 0.22524068 -0.09251342]]
[0. 0. 0. 0.]
1.2 对所有变量
进行初始化
import tensorflow as tf
x = tf.Variable(5.0,name="x")
weights = tf.Variable(tf.random_normal([3, 4], stddev=0.35, seed=1), name="weights")
biases = tf.Variable(tf.zeros([4]), name="biases")
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print(sess.run(x))
print(sess.run(weights))
print(sess.run(biases))
===运行结果:================================================
5.0
[[-0.2839614 0.5196096 0.02286528 -0.85494643]
[ 0.03473694 0.2069285 0.20748803 -0.74302536]
[-0.25301403 -0.01969463 0.22524068 -0.09251342]]
[0. 0. 0. 0.]
1.3 将已初始化的变量的值赋值给另一个新变量
import tensorflow as tf
weights = tf.Variable(tf.random_normal([3, 4], stddev=0.35, seed=1), name="weights")
w1 = tf.Variable(weights.initialized_value(), name="w1")
w2 = tf.Variable(weights.initialized_value() * 10, name="w2")
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print(sess.run(weights))
print(sess.run(w1))
print(sess.run(w2))
===运行结果:================================================
[[-0.2839614 0.5196096 0.02286528 -0.85494643]
[ 0.03473694 0.2069285 0.20748803 -0.74302536]
[-0.25301403 -0.01969463 0.22524068 -0.09251342]]
[[-0.2839614 0.5196096 0.02286528 -0.85494643]
[ 0.03473694 0.2069285 0.20748803 -0.74302536]
[-0.25301403 -0.01969463 0.22524068 -0.09251342]]
[[-2.839614 5.1960955 0.2286528 -8.549464 ]
[ 0.34736937 2.0692852 2.0748804 -7.4302535 ]
[-2.5301404 -0.19694632 2.2524068 -0.9251342 ]]
2 变量的属性
和assign方法
import tensorflow as tf
weights = tf.Variable(tf.random_normal([3, 4], stddev=0.35, seed=1), name="w")
weights1 = weights.assign(weights + 1.0)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print(sess.run(weights))
print(sess.run(weights1))
print("weights的name属性:\n", weights.name)
print("weights的op属性:\n", weights.op)
===运行结果:================================================
[[-0.2839614 0.5196096 0.02286528 -0.85494643]
[ 0.03473694 0.2069285 0.20748803 -0.74302536]
[-0.25301403 -0.01969463 0.22524068 -0.09251342]]
[[0.7160386 1.5196096 1.0228653 0.14505357]
[1.034737 1.2069285 1.2074881 0.25697464]
[0.746986 0.9803054 1.2252407 0.90748656]]
weights的name属性:
w:0
weights的op属性:
name: "w"
op: "VariableV2"
attr {
key: "container"
value {
s: ""
}
}
attr {
key: "dtype"
value {
type: DT_FLOAT
}
}
attr {
key: "shape"
value {
shape {
dim {
size: 3
}
dim {
size: 4
}
}
}
}
attr {
key: "shared_name"
value {
s: ""
}
}
import tensorflow as tf
weights = tf.Variable(tf.random_normal([3, 4], stddev=0.35, seed=1), name="w")
x = tf.Variable(5.0, name="x")
weights1=weights.assign(weights + x + 1.0)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print(sess.run(x))
print(sess.run(weights))
print(sess.run(weights1))
===运行结果:================================================
5.0
[[-0.2839614 0.5196096 0.02286528 -0.85494643]
[ 0.03473694 0.2069285 0.20748803 -0.74302536]
[-0.25301403 -0.01969463 0.22524068 -0.09251342]]
[[5.7160387 6.5196095 6.0228653 5.1450534]
[6.034737 6.2069287 6.207488 5.2569747]
[5.746986 5.980305 6.2252407 5.9074864]]
import tensorflow as tf
v = tf.Variable([1, 2])
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(v.eval(sess))
print(v.eval())
===运行结果:================================================
[1 2]
[1 2]