2016-07-24 121 views

回答

9

确实可以在Tensor可以使用的任何位置使用变量,但两者之间的主要区别在于变量在多次调用run()时维护其状态,并且变量的值可以通过反向传播更新(它根据文件也可以保存,恢复等)。

这些差异意味着你应该考虑的变量是代表你的模型可训练参数(例如,权重和神经网络的偏见),而你能想到张量作为代表被送入数据您的模型以及该数据通过模型时的中间表示。

+0

当一个变量与'Optimizer'一起用于模型时,变量的权重是否总是通过backprop更新?我创建的'Variable'对象是否应该和我的可训练参数集完全相同,或者是否存在我不想成为Variables的参数,反之亦然? – juesato

+1

是的,就我所知,每个变量都有trainable = True set(默认值)将在backprop期间更新,当然,前提是梯度可以传播回特定变量(它在数据流中较早发生到损失操作)。根据你定义的参数,我的图像会有一些你不想在训练期间更新的,例如序列长度,最大时期,学习速率。这些可以是python变量,张量流将根据需要自动转换,或者它们可以是常量张量。 –

相关问题