Keras对不同类别的梯度损失

时间:2019-07-09 14:20:25

标签: gradient loss

我正在使用FashionMNIST数据集。我正在使用使用keras的顺序模型和以下代码:

fashionmnist_model = keras.Sequential([
keras.layers.Dense(128, activation='sigmoid'),
keras.layers.Dense(10, activation='softmax')
]) 
fashionmnist_model.compile(optimizer='adam',
          loss='sparse_categorical_crossentropy',
          metrics=['accuracy'])

现在我要找到损失函数wrt到图像输入的梯度。如果图像的尺寸为1 * 784,则损失函数梯度也应为1 * 784,但是我需要所有类的损失梯度(这意味着尺寸应为10 x 784)。我从一个对抗示例中获得了以下代码,该示例为Cifar 10产生了1乘784的梯度,

target = to_categorical(target_number)
print(target)
target_variable = K.variable(target)
loss = keras.metrics.categorical_crossentropy(cifar10_model.input, 
target_variable)
gradients = K.gradients(loss, cifar10_model.input)
get_grad_values = K.function([cifar10_model.input], gradients)
grad_values = get_grad_values([adversarial_images])[0]
  • 有人可以告诉我keras函数和变量在代码中如何工作吗?
  • 我将如何修改/开发可扩展为10个不同类的渐变的代码?

0 个答案:

没有答案