Я использую 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-изображения.