Я пытаюсь добавить штраф градиента Вассерштейна в расчет потерь дискриминатора. Без добавления этого штрафа все работает отлично. Но когда эта часть добавляется, выдает ошибку, похожую на эту:
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gradients_impl.py", line 737, in _GradientsHelper
(op.name, op.type))
LookupError: No gradient defined for operation 'gradients/discriminator/decoder/ResizeNearestNeighbor_grad/ResizeNearestNeighborGrad' (op type: ResizeNearestNeighborGrad)
Вот часть исходного кода, которая используется для расчета штрафа по градиенту Вассерштейна:
differences = tf.subtract(images_fake, images_real)
alpha_shape = [params.batch_size] + [1] * (differences.shape.ndims - 1)
alpha = tf.random_uniform(shape=alpha_shape, minval=0., maxval=1.)
interpolates = images_real + (alpha * differences)
d_model = Model(params, args.mode, interpolates, reuse_variables, images_fake, 1)
gradients = tf.gradients(d_model.logistic_linear, [interpolates])[0]
slopes = tf.sqrt(tf.reduce_sum(tf.square(gradients), reduction_indices=[1]))
gradient_penalty = tf.reduce_mean((slopes - 1.) ** 2)
_gradient_penalty = 10 * gradient_penalty
Но он выдает вышеупомянутую ошибку, когда выполняется строка ниже.
d_optim = opt_discriminator_step.minimize(total_loss_discriminator, var_list=d_vars)
Тем не менее, я понятия не имею, как справиться с этой проблемой. Любые комментарии или ответы приветствуются.