有没有办法在张量创建后为张量赋值?
我在循环中逐位构建神经网络,如下所示:
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
变量上执行此操作,而不是在最后一次添加时检查循环条件的结束,这样会不那么优雅?
答案 0 :(得分:16)
您无法修改Tensor的名称。
然而,做一个你想做的事情的一个简单方法是使用tf.identity
和你想要的名字:
res = build_logit_pipeline(data)
res = tf.identity(res, name="your_name")