Потеря градиента с керасом для разных классов - PullRequest
0 голосов
/ 09 июля 2019

Я работал с набором данных FashionMNIST.Я использую последовательную модель с использованием керас со следующим кодом:

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'])

Теперь я собираюсь найти градиент функции потерь по отношению к вводу изображения.Если размер изображения 1 * 784, то градиент функции потерь также должен быть 1 * 784, но мне нужен градиент потерь для всех классов (что означает, что размерность должна быть 10 на 784).Я получил следующий код из примера состязательности, которая выдает градиент 1 на 784 для Cifar 10,

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 различных классов?
...