我需要帮助计算 Keras 中模型输出和输入的导数。
我想为损失函数添加一个正则化函数。正则化器包含分类器函数的导数。所以我试图取模型输出的导数。该模型是一个带有一个隐藏层的 MLP。数据集是 MNIST。当我编译模型并取导数时,我得到 [None] 作为结果而不是导数函数。
我看过类似的帖子,但也没有得到答案: 将 Keras 模型的导数导出到输入是返回全零
这是我的代码。请帮我解决问题。
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense
from keras import backend as K
num_hiddenNodes = 1024
num_classes = 10
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train.reshape(-1, 28 * 28)
X_train = X_train.astype('float32')
X_train /= 255
y_train = keras.utils.to_categorical(y_train, num_classes)
model = Sequential()
model.add(Dense(num_hiddenNodes, activation='softplus', input_shape=(784,)))
model.add(Dense(num_classes, activation='softmax'))
# Compile the model
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
logits = model.output
# …Run Code Online (Sandbox Code Playgroud)