python - 评估每个输入 keras 的梯度
问题描述
我希望能够访问 keras 神经网络的梯度函数。我希望能够在许多输入值处计算输出相对于输入的梯度。本质上,我希望能够将梯度作为函数进行评估。
model = Sequential()
model.add(Dense(500, activation='relu'))
model.add(Dense(500, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train, y_train, validation_data=(x_test, y_test), epochs=2, verbose = 1)
现在,我不想评估每个输入的输出,而是评估每个输入的梯度。我怎样才能做到这一点?
这是我尝试过的。
grads = K.gradients(model.output, model.input)
gradient_func = K.function([model.input], [grads[0]])
print(gradient_func([x]))
解决方案
推荐阅读
- flutter - 如何在 Flutter 中获取当前时区区域(tz 数据库名称)
- sql-server - 如何从左表中仅获取一条记录与右表中的每条记录
- javascript - 这是将Set转换为Array的简单方法吗?
- sql - 如何计算oracle每月返回的行数?
- javascript - 如何将所有请求发送到 index.html - reactjs
- azure - 天蓝色:将机器人与 LUIS 连接
- android - Flutter - 如何根据List中的ID统计数据
- python - Tkinter .geometry() 没有调整窗口大小
- clojure - 在 clojure 宏中调用特殊形式 `set!`
- mysql - 如何从一个表中选择列,其中 id 在另一表的 JSON 列中