TensorFlow如何命名张量?
tensorflow
6
0

我想知道这是否是正确的理解:

所有张量都从某个操作派生而来,或者在构造函数中为操作指定名称,或者为特定类型的操作指定默认名称。如果名称不是唯一的,TensorFlow会通过添加"_1""_2"等自动处理此问题。使用n个张量的操作将这些张量的名称命名为"op_name:0""op_name:1" ,..., "op_name:n-1"

似乎出现了一个问题:如果xtf.Variable ,则x.name给出"variable_name:0" 。这令人困惑: "variable_name"指的是什么?

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

您对Tensor命名的观察是绝对正确的: Tensor的名称是

  1. 产生它的操作的名称,
  2. 冒号( : ),和
  3. 张量在产生它的操作的输出中的索引。

因此,名为"foo:2"的张量是位置2(索引从零开始)的名为"foo"的操作的输出。

tf.Variable对象的命名有点奇怪。每个tf.Variable包含一个可变的张量对象,该对象保存变量(和其他一些张量)的状态。每当它作为第0输出运行时, "Variable" op(在您的示例中名称为"variable_name" )“生成”此可变张量,因此可变张量的名称为"variable_name:0"

由于tf.Variable主要是从区分tf.Tensor -in,它可以在相同的使用场所,我们采取的决定,使变量名称类似于张量的名字,所以Variable.name属性返回可变张名。 (这与tf.QueueBasetf.ReaderBase对象相反,后者不能直接用作张量(相反,您必须调用它们的方法来创建在其状态下运行的操作),因此它们没有类似于张量的名称。 )

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号