Градиенты не указаны - PullRequest
       23

Градиенты не указаны

0 голосов
/ 29 октября 2018

Моя проблемная сеть принимает 10x10x1 изображение в качестве ввода и возвращает 4x2x3 изображение в качестве вывода. Вот так: Вход в сеть enter image description here

Входное изображение имеет два пятна размером 2x2x1.

Выход по сети: Моя проблемная сеть должна извлечь выходное изображение размером 4x2x3. Вот так:

enter image description here

Эти патчи должны быть извлечены непосредственно из другого изображения, которое я бы назвал Исходное изображение .

Исходное изображение Это оригинальное изображение, откуда мне нужно извлечь оригинальные патчи. Это оригинальное изображение содержит патчи размером 4x2x3

enter image description here

Я извлекаю левое верхнее местоположение каждого патча в моем последнем слое из 10x10x1 входного изображения, у которого патчи находятся примерно в тех же местах, что и у входного изображения. Но эти значения предсказаны, поэтому могут быть не совсем точными. Как только у меня появится верхнее левое местоположение патчей, я извлекаю их из 10x10x3 исходного изображения и выводю их. Этот выход подается на функцию потерь. Кажется, мои градиенты не возвращаются, и я получаю следующую ошибку:

ValueError: No gradients provided for any variable, check your graph for ops that do not support gradients, between variables ["<tf.Variable 'cv/conv1_W:0' shape=(4, 4, 1, 16) dtype=float32_ref>", "<tf.Variable 'cv/conv1_b:0' shape=(16,) dtype=float32_ref>", "<tf.Variable 'fc/fc_1_W:0' shape=(400, 100) dtype=float32_ref>", "<tf.Variable 'fc/fc_1_b:0' shape=(100,) dtype=float32_ref>"] and loss Tensor("Mean:0", shape=(), dtype=float32).

Однако, если я извлекаю изображение из 10x10x1 входного изображения, все работает нормально. Мне нужно извлечь местоположения из 10x10x1 изображения, а затем извлечь фактическое содержимое патча из 10x10x3 исходного изображения. Местоположения могут быть не всегда точными, поэтому мне нужно обучить свою сеть, чтобы улучшить местоположения, указанные на входном 10x10x1 изображении. Итак, мне нужно уметь извлекать патчи, вычислять градиент, улучшать веса и пытаться извлечь их снова.

Я использую Tensorflow и Conv Nets для выполнения этой функции. Буду признателен за любую помощь. Благодаря.

...