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.py
# 通过变量赋值输出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