Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TensorFlow如何命名张量?_Tensorflow - Fatal编程技术网

TensorFlow如何命名张量?

TensorFlow如何命名张量?,tensorflow,Tensorflow,我不知道这是不是正确的理解: 所有的张量都是从某个运算中派生出来的,运算要么在构造函数中给定一个名称,要么给定特定类型运算的默认名称。如果名称不唯一,TensorFlow会通过追加“\u 1”、“\u 2”等自动处理此问题。使用n个张量的操作会将这些张量命名为“op\u name:0”,“op\u name:1”,…,“op\u name:n-1” 似乎出现了一个问题:如果x是tf.Variable,那么x.name给出了“Variable\u name:0”。这是令人困惑的:对于“变量名”指的

我不知道这是不是正确的理解:

所有的张量都是从某个运算中派生出来的,运算要么在构造函数中给定一个名称,要么给定特定类型运算的默认名称。如果名称不唯一,TensorFlow会通过追加
“\u 1”
“\u 2”
等自动处理此问题。使用n个张量的操作会将这些张量命名为
“op\u name:0”
“op\u name:1”
,…,
“op\u name:n-1”


似乎出现了一个问题:如果
x
tf.Variable
,那么
x.name
给出了
“Variable\u name:0”
。这是令人困惑的:对于
“变量名”
指的是什么?

你对
张量的命名的观察是绝对正确的:
张量的名称是

  • 生成它的操作的名称
  • 冒号(
    ),以及
  • 产生张量的操作的输出中该张量的索引 因此,名为
    “foo:2”
    的张量是位置2处名为
    “foo”
    的op的输出(索引从零开始)

    物体的形状有点奇怪。每个
    tf.Variable
    都包含一个可变张量对象,该对象保存变量的状态(以及一些其他张量)。
    “Variable”
    op(在您的示例中,其名称为
    “Variable\u name”
    )每次作为第0个输出运行时都会“生成”此可变张量,因此可变张量的名称为
    “Variable\u name:0”


    由于
    tf.Variable
    tf.Tensor
    几乎无法区分,因为它可以在相同的位置使用,我们决定使变量名称类似于Tensor名称,因此
    Variable.name
    属性返回可变张量的名称。(这与不能直接用作张量的和对象形成对比(相反,您必须调用它们的方法来创建在其状态下运行的操作),因此它们没有类似张量的名称。)

    有没有一种简单的方法来生成输出名称?没有pb文件,只有检查点?是否有一个示例显示规则3:生成该张量的操作的输出中该张量的索引?@Alpha Sure:
    print(tf.split([0,1,2,3,4,5],5,name=“split_op”)[3].name)
    ,它在
    “split_op”
    的输出中将打印
    “split_op:3”
    @mrry挑剔:应该是打印的(tf.split([0,1,2,3,4],5,name=“split_op”)[3].name)(大小为6的数组不分为5个部分)。谢谢你的评论,顺便说一句,它为我清理了一切。