Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.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
Python 如何在Tensorflow中设置丢失操作的名称?_Python_Tensorflow - Fatal编程技术网

Python 如何在Tensorflow中设置丢失操作的名称?

Python 如何在Tensorflow中设置丢失操作的名称?,python,tensorflow,Python,Tensorflow,在Tensorflow中,我可以为操作和张量指定名称,以便以后检索它们。例如,在一个函数中,我可以 input_layer=tf.placeholder(tf.float32, shape= [None,300], name='input_layer') 然后在后面的另一个函数中,我可以 input_layer=get_tensor_by_name('input_layer:0') 我开始相信这对于使我的tf代码尽可能模块化是很方便的 我希望能够对我的丢失执行相同的操作,但如何为该操作指定自

在Tensorflow中,我可以为操作和张量指定名称,以便以后检索它们。例如,在一个函数中,我可以

input_layer=tf.placeholder(tf.float32, shape= [None,300], name='input_layer')
然后在后面的另一个函数中,我可以

input_layer=get_tensor_by_name('input_layer:0')
我开始相信这对于使我的tf代码尽可能模块化是很方便的

我希望能够对我的丢失执行相同的操作,但如何为该操作指定自定义名称?问题是内置的loss函数(例如)没有名称参数(与tf.placeholder、tf.variable等不同)

我现在提到我的损失的方式是

tf.get_collection(tf.GraphKeys.LOSSES)[-1]

(检索已添加到图表中的最后一个丢失操作)。我是否遗漏了一些明显的问题?

我知道这并不是确切的答案,但这是一个可能对您有效的解决方案

鉴于此,正如您所指出的,函数没有
名称
参数,您可以实现自己的MSE(当然基于TF操作)

替换

tf_loss = tf.losses.mean_squared_error(labels,predictions)

由于
reduce\u意味着
接受
名称
参数,您可以得到您想要的


可用的完整示例代码

我想使用不可训练的变量应该可以:

labels = np.random.normal(size=10)
predictions = np.random.normal(size=10)

sess = tf.Session()
loss_var = tf.Variable(10.0, name='mse_loss', trainable=False, dtype=tf.float32)

loss = tf.losses.mean_squared_error(labels, predictions)
mse_loss = loss_var.assign(loss)

sess.run(mse_loss)
print(sess.run(tf.get_default_graph().get_tensor_by_name('mse_loss:0')))

我发现最短的方法是使用
tf.identity

loss = tf.losses.mean_squared_error(labels, predictions)
loss = tf.identity(loss, name = "loss")
loss = tf.losses.mean_squared_error(labels, predictions)
loss = tf.identity(loss, name = "loss")