python - 为什么 K.gradients(loss, input_img)[0] 在 Kears CNN 中返回“None”?
问题描述
我有这样的网络结构
Layer (type) Output Shape Param #
=================================================================
embedding_1 (Embedding) (None, 7507, 2131) 15999548
_________________________________________________________________
conv1d_1 (Conv1D) (None, 7507, 256) 2727936
_________________________________________________________________
max_pooling1d_1 (MaxPooling1 (None, 2503, 256) 0
_________________________________________________________________
lstm_1 (LSTM) (None, 256) 525312
_________________________________________________________________
dense_1 (Dense) (None, 4096) 1052672
_________________________________________________________________
activation_1 (Activation) (None, 4096) 0
_________________________________________________________________
dropout_1 (Dropout) (None, 4096) 0
_________________________________________________________________
dense_2 (Dense) (None, 2131) 8730707
_________________________________________________________________
activation_2 (Activation) (None, 2131) 0
=================================================================
Total params: 29,036,175
Trainable params: 29,036,175
Non-trainable params: 0
_________________________________________________________________
然后我想计算给定输入的梯度信息,像这样
adv_list = []
loss = layer_list[-2][1].output[:, f]
grads = K.gradients(loss, model.input)[0]
iterate = K.function([model.input], [loss, grads])
但是,当代码执行到这一行时:
grads = K.gradients(loss, input_img)[0]
我发现它只返回 None 对象,所以程序在那之后无法继续。而grads是None,我打印了一些中间信息
('loss: ', <tf.Tensor 'strided_slice:0' shape=(?,) dtype=float32>)
('model.input', <tf.Tensor 'embedding_1_input:0' shape=(?, 7507) dtype=float32>)
('K.gradients(loss, model.input', [None])
解决方案
推荐阅读
- c# - 视觉范式 - 逆向工程 - C# 代码到序列图
- entity-framework - EF coreTracking 与非跟踪查询
- javascript - 你能从它的成功处理程序中失败一个 Javascript Promise 吗?
- c# - 这种初始化IList的奇怪方式是什么
在 Xamarin 代码库中? - sql - 选择总和时间
- swift - 是否可以在 Swift 中从 String 获取枚举类型?
- javascript - 如果用户删除浏览器历史记录,则重定向到登录页面
- java - 自定义警报对话框没有被解雇
- python - celery中bind = True关键字的含义是什么?
- plugins - 颤振将地理定位器添加到项目中给出错误