【发布时间】: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