我想知道这是否正确理解:
所有张量都是从某些操作派生的,并且操作在构造函数中被赋予名称,或者给定特定类型操作的默认名称.如果名称不唯一,TensorFlow自动追加处理这个"_1"
,"_2"
等有n张量的操作输出的名字,这些张量"op_name:0"
,"op_name:1"
..., "op_name:n-1"
.
似乎出现了一个问题:如果x
是a tf.Variable
,则x.name
给出"variable_name:0"
.这令人困惑:"variable_name"
引用什么?
mrr*_*rry 47
您对Tensor
命名的观察是绝对正确的:a的名称Tensor
是连接的
:
)和因此,命名的张量"foo:2"
是"foo"
在位置2处命名的op的输出(索引从零开始).
该命名的tf.Variable
对象是有点奇怪.每个tf.Variable
包含一个可变张量对象,它保存变量的状态(以及一些其他张量).甲"Variable"
OP(其名称"variable_name"
在你的例子)"生产"每次运行作为其第零输出时间这个可变张量,所以可变张量的名称是"variable_name:0"
.
由于a tf.Variable
几乎与tf.Tensor
-in 无法区分,因为它可以在相同的位置使用 - 我们决定使变量名称类似于张量名称,因此该Variable.name
属性返回可变张量的名称.(这与tf.QueueBase
和tf.ReaderBase
对象不同,后者不能直接用作张量(而是必须调用它们上的方法来创建对其状态进行操作的操作),因此它们没有类似张量的名称.)
归档时间: |
|
查看次数: |
10875 次 |
最近记录: |