我想在模型训练后获取其 dradient。例如,我有输入张量 X 和输出 y,即 y = model(x)。因此,使用 pytorch,我可以使用以下命令计算 dradient:
y = model(x)
dydx = torch.autograd.grad(Y, X, torch.ones_like(Y), create_graph=True)[0][:, 0]
我希望用TensorFlow框架训练模型后得到相同的值。
我试过:
y = model.predict_u(x)
dydx = tf.gradients(y, x)[0]
但是我得到的 dydx 为 NoneType。我尝试将 dydx 包含在模型类中并通过 tf.Session 获取梯度,但出现了:“ResourceExhaustedError:图形执行错误”。
我曾使用过 Pytorch 框架,现在我决定尝试 TensorFlow,但遇到了一些困难。