Tensorflow ValueError: нет переменных для оптимизации - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь использовать 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: Нет переменных для оптимизации.

вышел.Я не знаю почему.Может кто-нибудь использует тензорный слой, подскажите, как решить эту проблему?

1 Ответ

0 голосов
/ 20 ноября 2018

Как выглядит ваш список переменных g_vars?Это может быть пустым, что оставило оптимизатор без переменных для оптимизации.

...