小编Ali*_*arv的帖子

如何使用 keras.backend.gradients() 获取梯度值

我试图获得 Keras 模型输出相对于模型输入 (x)(不是权重)的导数。似乎最简单的方法是使用来自 keras.backend 的“梯度”,它返回梯度张量(https://keras.io/backend/)。我是 tensorflow 的新手,还不适应。我已经得到了梯度张量,并试图为不同的输入值 (x) 获得它的数值。但似乎梯度值与输入 x 无关(这不是预期的),或者我做错了什么。任何帮助或评论将不胜感激。

import keras
import numpy as np
import matplotlib.pyplot as plt
from keras.layers import Dense, Dropout, Activation
from keras.models import Sequential
import keras.backend as K
import tensorflow as tf
%matplotlib inline

n = 100         # sample size
x = np.linspace(0,1,n)    #input
y = 4*(x-0.5)**2          #output
dy = 8*(x-0.5)       #derivative of output wrt the input
model = Sequential()
model.add(Dense(32, input_dim=1, activation='relu'))            # 1d input
model.add(Dense(32, activation='relu'))
model.add(Dense(1))                                             # …
Run Code Online (Sandbox Code Playgroud)

python gradient neural-network keras tensorflow

4
推荐指数
1
解决办法
6276
查看次数

标签 统计

gradient ×1

keras ×1

neural-network ×1

python ×1

tensorflow ×1