gpt4 book ai didi

python - 如何在 Tensorflow 中设置损失操作的名称?

转载 作者:行者123 更新时间:2023-11-28 19:53:11 25 4
gpt4 key购买 nike

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

input_layer=tf.placeholder(tf.float32, shape= [None,300], name='input_layer')

然后在另一个函数中,我可以做

input_layer=get_tensor_by_name('input_layer:0')

我开始相信这可以方便地使我的 tf 代码尽可能模块化。

我希望能够对我的损失做同样的事情,但我怎样才能为该操作分配一个自定义名称?问题是内置损失函数(例如 tf.losses.mean_squared_error)没有名称参数(与 tf.placeholder、tf.variable 等相反)。

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

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

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

最佳答案

我知道这不是正确的答案,但它是一个可能对您有用的修复方法。

鉴于,正如您所指出的,tf.losses.mean_squared_error函数没有 name 参数,您可以实现自己的 MSE(当然基于 TF 操作)

只是替换

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

custom_loss = tf.reduce_mean(tf.squared_difference(labels,predictions),name='loss')

并且由于 reduce_mean 接受一个 name 参数,您可以获得您想要的。

提供完整的示例代码 here

关于python - 如何在 Tensorflow 中设置损失操作的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46258166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com