python - tape.gradient 使用 RNN GRU 模型需要大量时间(或卡住)
问题描述
我有一个训练有素的 keras 模型,我试图在训练有素的模型中找到target_preds
相对于的梯度sample_inputs
。我试着用 CNN 模型来做,它在几秒钟内就计算出来了。当我插入一个 RNN 模型时,它所采用的功能似乎是相同的代码执行了很长时间(我什至没有让它完成,但是当我中断代码时 - 它(卡住)/(正在运行)在线 grads = tape.gradient(target_preds, sample_inputs)
)。
我正在使用 TensorFlow 2.3.0
相关代码如下:
with tf.GradientTape() as tape:
tape.watch(sample_inputs)
preds = model(sample_inputs)
if (target_range is None):
target_preds = preds[:, :]
else:
target_preds = preds[:, target_range]
if(jacobian):
grads = tape.jacobian(target_preds, sample_inputs)
else:
grads = tape.gradient(target_preds, sample_inputs)
return grads
解决方案
推荐阅读
- c++ -
MinGW 上的标头缺少很多功能 - c++ - 将指针数组传递给 3D 数组:访问冲突异常 (C++)
- c - CreateProcessA %appdata%
- javascript - 检测 Chrome 移动 Android 浏览器上的选项卡关闭
- c++ - 无法绑定可变参数函数并保存到 std::function
- python - 在 Jupyterhub 中使用虚拟环境管理开发/部署包
- javascript - 如何使此功能按预期工作?
- three.js - 如何在不使用 JSONLoader 的情况下从 JSON 对象创建 three.js 几何
- r - 按 R 中的值的总和进行十进制
- c# - 在调用异步代码时始终考虑 AggregateExceptions 中的多个异常是否有意义?