как использовать tf.contrib.image.rotate в функции потерь? - PullRequest
0 голосов
/ 08 июля 2019

Я использую tf.conbrib.image.rotate в функции потерь, и происходит ошибка:

No gradients provided for any variable, check your graph for ops that do not support gradients,

Мой код:

import tensorflow as tf

image_tensor = tf.placeholder(dtype=tf.float32, shape=[None,320,320,1])
target_tensor = tf.placeholder(dtype=tf.float32, shape=[None,320,320,1])
s = tf.concat([image_tensor, target_tensor],axis=3)
s = tf.layers.flatten(s)
w = tf.get_variable(initializer=tf.truncated_normal([204800,1], stddev=0.1),name='w')
b = tf.get_variable(initializer=tf.truncated_normal([1], stddev=0.1),name='b')
a = tf.matmul(s,w)+b
diff = tf.contrib.image.rotate(image_tensor, a[:,0], interpolation='BILINEAR') - target_tensor
loss = tf.reduce_sum(tf.square(diff))

optimizer = tf.train.GradientDescentOptimizer(0.001)
train = optimizer.minimize(loss)

Мой тензор потока: 1.4.0, а мой компьютер - Win10.

Кстати, а как повернуть трехмерное изображение в тензорном потоке? tf.conbrib.image.rotate работает только для 2D-изображения.

1 Ответ

0 голосов
/ 14 июля 2019

tf.contrib.image.rotate не может быть оптимизирован. Я нахожу полезный код для сети пространственного преобразования (https://github.com/kevinzakka/spatial-transformer-network).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...