3.8 变量的赋值
与传统的编程不同,在TensorFlow中变量定义和初始化后,一般无需人工进行赋值,系统会根据算法模型,训练优化过程中自动调整变量对应的数值。这部分的内容在后面我们使用TensorFlow实现机器学习的一些算法的时候会更加有体会。
TensorFlow中的变量可以通过设置trainable参数来确定在训练的时候是否更新其值,如前面提到训练轮数一般设置为常量,但如果设置为变量,可以设置trainable=False,同样可以达到程序执行过程中不改变其值的目的。前面提到的训练轮数可以用以下语句进行变量赋值:
epoch = tf.Variable(0,name='epoch',trainable=False)。
但是当TensorFlow中有特殊情况需要对变量进行人工更新,也是可以用变量的更新语句的,例如:
update_op = tf.assign(variable_to_be_updated, new_value)。
如图11是个变量赋值的基本案例

> 示例代码
# 通过变量赋值输出1、2、3...10
import tensorflow as tf
value = tf.Variable(0, name="value")
one = tf.constant(1)
new_value = tf.add(value, one)
update_value = tf.assign(value, new_value)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for _ in range(10):
sess.run(update_value)
print(sess.run(value))
Last updated
Was this helpful?