【问题标题】:Tensorflow ValueError: No variables to optimizeTensorflow ValueError:没有要优化的变量
【发布时间】:2018-11-20 07:52:37
【问题描述】:

我正在尝试在医学图像上使用 3D unet。我使用的接口是tensorlayer。当我试图计算两个张量的 mean_squared_error 时:

mse_loss = tl.cost.mean_squared_error(dense_unet3D.outputs, t_target_image, is_mean=True)

这里的 tl 代表 tensorlayer,我使用的是 3D dense_unet。 dense_unet3D.outputs 的大小为:(4, 128, 128, 128, 1) 含义(batch, depth, hight, width, channel),同t_target_image。 我知道在tensorlayer中mean_squared_error无法计算5D张量,所以我在tensorlayer的函数cost中添加了这些代码:

mse = tf.reduce_mean(tf.reduce_mean(tf.squared_difference(output, target), [1, 2, 3, 4]), name=name)

我将优化器定义为:

g_optim_init = tf.train.RMSPropOptimizer(lr_v).minimize(mse_loss, var_list=g_vars)

但是,当执行上面的代码时,错误:

ValueError:没有要优化的变量。

出来了。我不知道为什么。谁能使用 tensorlayer 告诉我如何解决这个问题?

【问题讨论】:

    标签: python tensorflow tensorlayer


    【解决方案1】:

    您的变量列表g_vars 是什么样的?那可能是空的,这使优化器没有要优化的变量。

    【讨论】:

    • 对不起...我发现了问题。这是因为我的 tf.name_scope 在 sess.run 中是错误的。所以在 sess.run() 做优化的时候,找不到名字作用域下的参数。
    猜你喜欢
    • 2016-12-02
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2020-10-31
    • 2020-09-30
    • 2020-04-26
    相关资源
    最近更新 更多