Tensorflow文档指出,Variable
可以在任何可以使用Tensor
的地方使用,并且它们似乎是相当可交换的。例如,如果v
是一个Variable
,那么x = 1.0 + v
就变成了一个Tensor
。
两者之间有什么区别?我应该在什么情况下使用其中的一个而不是另一个呢?
Tensorflow文档指出,Variable
可以在任何可以使用Tensor
的地方使用,并且它们似乎是相当可交换的。例如,如果v
是一个Variable
,那么x = 1.0 + v
就变成了一个Tensor
。
两者之间有什么区别?我应该在什么情况下使用其中的一个而不是另一个呢?
变量(Variable)和张量(Tensor)可以在大多数情况下互换使用,但它们之间的关键区别在于,变量能够跨多次调用 run() 时维持其状态,并且变量的值可以通过反向传播进行更新(根据文档,还可以保存、恢复等)。
由于这些差异,您应该将变量视为代表模型的可训练参数(例如神经网络的权重和偏置),而将张量视为代表输入到模型中的数据以及数据通过模型时产生的中间表示。