我正在尝试学习 tensorflow 。我真的对 tf.Variable 的用法感到困惑。我知道在机器学习中我们必须随机为过滤器分配权重。但这可以通过 tf.truncated_normal 函数来完成。那么这里的tf.Variable的作用是什么呢?文档指出 tf.Variable 维护图的状态。这是什么意思?如果我省略 tf.Variable 结果是相同的。那么tf.Variable有什么作用呢?有人可以帮我理解这一点吗?
`def weight_variable(shape):
initial = tf.truncated_normal(shape, mean=0, stddev=0.1)
return tf.Variable(initial)
#function call
filter = weight_variable([1,2,2,1])`
最佳答案
在tensorflow
中,使用tf.Variable()
创建的任何内容都将在反向传播训练期间得到更新,例如权重矩阵。
理想情况下,默认情况下,每个 tf.Variable()
都会成为可训练的,除非您显式指定它不可训练
。
如果你这样做initial = tf.truncated_normal([5,10],mean=0,stddev=0.1)
,那么tensorflow将不知道它是一个可训练变量,因此它不会接受培训。它将在整个训练过程中保持不变。
关于tensorflow - tf.Variable 如何维护图的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52473088/