首页 > 解决方案 > 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

标签: pythonkerastensorflow2.0

解决方案


推荐阅读