相关疑难解决方法(0)

使用Keras获得模型输出的梯度和权重

我有兴趣用Keras API的简单性构建强化学习模型.不幸的是,我无法提取关于权重的输出的梯度(而不是错误).我发现以下代码执行类似的功能(神经网络的显着性图(使用Keras))

get_output = theano.function([model.layers[0].input],model.layers[-1].output,allow_input_downcast=True)
fx = theano.function([model.layers[0].input] ,T.jacobian(model.layers[-1].output.flatten(),model.layers[0].input), allow_input_downcast=True)
grad = fx([trainingData])
Run Code Online (Sandbox Code Playgroud)

关于如何根据每层的权重计算模型输出的梯度的任何想法都将被理解.

python theano keras

30
推荐指数
1
解决办法
2万
查看次数

获取 Keras ANN 模型中输入的梯度

bce = tf.keras.losses.BinaryCrossentropy()
ll=bce(y_test[0], model.predict(X_test[0].reshape(1,-1)))
print(ll)
<tf.Tensor: shape=(), dtype=float32, numpy=0.04165391>
print(model.input)
<tf.Tensor 'dense_1_input:0' shape=(None, 195) dtype=float32>
model.output
<tf.Tensor 'dense_3/Sigmoid:0' shape=(None, 1) dtype=float32>
grads=K.gradients(ll, model.input)[0]
print(grads)
None
Run Code Online (Sandbox Code Playgroud)

所以在这里我训练了一个 2 隐藏层神经网络,输入有 195 个特征,输出是 1 个大小。我想向神经网络提供名为 X_test 的验证实例,并在 y_test 中逐个提供正确的标签,并为每个实例计算输出相对于输入的梯度,打印时的梯度给我一个“无”。感谢您的帮助。

gradient neural-network keras tensorflow

5
推荐指数
1
解决办法
1551
查看次数

标签 统计

keras ×2

gradient ×1

neural-network ×1

python ×1

tensorflow ×1

theano ×1