我正在尝试在医学图像上使用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 density_unet。 density_unet3D.outputs的大小为:(4,128,128,128,1)含义(批处理,深度,高度,宽度,通道),与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告诉我如何解决这个问题?
答案 0 :(得分:0)
您的变量列表final_df = inventory_df.drop_duplicates(subset=None, keep='first', inplace=False)
看起来如何?可能为空,这使优化器没有要优化的变量。