Моя проблемная сеть принимает 10x10x1
изображение в качестве ввода и возвращает 4x2x3
изображение в качестве вывода. Вот так:
Вход в сеть
Входное изображение имеет два пятна размером 2x2x1
.
Выход по сети:
Моя проблемная сеть должна извлечь выходное изображение размером 4x2x3
. Вот так:
Эти патчи должны быть извлечены непосредственно из другого изображения, которое я бы назвал Исходное изображение .
Исходное изображение
Это оригинальное изображение, откуда мне нужно извлечь оригинальные патчи. Это оригинальное изображение содержит патчи размером 4x2x3
Я извлекаю левое верхнее местоположение каждого патча в моем последнем слое из 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 для выполнения этой функции. Буду признателен за любую помощь. Благодаря.