为张量指定名称?

时间:2016-07-02 07:47:09

标签: python tensorflow

有没有办法在张量创建后为张量赋值?

我在循环中逐位构建神经网络,如下所示:

    def build_logit_pipeline(data):
        # X --> *W1 --> +b1 --> relu --> *W2 --> +b2 ... --> softmax etc...
        pipeline = data

        for i in xrange(len(layer_sizes) - 1):
            with tf.name_scope("linear%d" % i):
                pipeline = tf.matmul(pipeline, weights[i])
                pipeline = tf.add(pipeline, biases[i])

            if i != len(layer_sizes) - 2:
                with tf.name_scope("relu%d" % i):
                    pipeline = tf.nn.relu(pipeline)

        return pipeline

我希望为整个操作的结果指定一个名称,即应为最后tf.add分配一个名称。有没有办法在返回之前在pipeline变量上执行此操作,而不是在最后一次添加时检查循环条件的结束,这样会不那么优雅?

1 个答案:

答案 0 :(得分:16)

您无法修改Tensor的名称。

然而,做一个你想做的事情的一个简单方法是使用tf.identity和你想要的名字:

res = build_logit_pipeline(data)
res = tf.identity(res, name="your_name")