Я пытаюсь использовать 3D Unet на моем изображении.Я использую интерфейс тензорный слой .В то время как я пытаюсь вычислить mean_squared_error для двух тензоров:
mse_loss = tl.cost.mean_squared_error(dense_unet3D.outputs, t_target_image, is_mean=True)
Здесь tl обозначает тензорный слой, и я использую 3D dens_unet.Размер файла density_unet3D.outputs: (4, 128, 128, 128, 1) означает (пакет, глубина, высота, ширина, канал), так же, как t_target_image.Я знаю, что в тензорном слое mean_squared_error не может вычислить 5D-тензор, поэтому я добавил этот код в функцию стоимость в тензорном слое:
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: Нет переменных для оптимизации.
вышел.Я не знаю почему.Может кто-нибудь использует тензорный слой, подскажите, как решить эту проблему?