我正在处理mnist数据库的一些对抗性问题。我试图找到每个像素的梯度值,为此,我计算了mnist_model.input和target_number(target_number首先被热编码然后转换为Keras变量)和梯度之间的categorical_crossentropy损失。我的损失函数的维数是28 x 28 x 10,梯度是28 x 28 x1。我不确定代码如何工作。 这是以下代码,
target = to_categorical(target_number)
print(target)
target_variable = K.variable(target)
loss = keras.metrics.categorical_crossentropy(mnist_model.input, target_variable)
gradients = K.gradients(loss, mnist_model.input)
get_grad_values = K.function([mnist_model.input], gradients)