81得票3回答
PyTorch中“detach()”和“with torch.nograd()”的区别是什么?

我知道两种方法可以从梯度计算的计算中排除元素backward 方法1:使用with torch.no_grad()with torch.no_grad(): y = reward + gamma * torch.max(net.forward(x)) loss = criterion...

71得票3回答
评估PyTorch模型:`with torch.no_grad`与`model.eval()`的区别

当我想要评估模型在验证集上的性能时,使用 with torch.no_grad: 还是 model.eval() 更好?

56得票2回答
Pytorch - 运行时错误:尝试第二次通过图形反向传播,但缓冲区已经被释放。

我一直遇到这个错误: RuntimeError: Trying to backward through the graph a second time, but the buffers have already been freed. Specify retain_graph=True wh...

28得票1回答
PyTorch中的反向函数

我对pytorch的反向传播函数有一些疑问,我觉得输出结果不正确: import numpy as np import torch from torch.autograd import Variable a = Variable(torch.FloatTensor([[1,2,3],[4,5...

23得票1回答
为什么自动求导不会为中间变量产生梯度?

试图理解梯度是如何表示以及自动求导是如何工作的:import torch from torch.autograd import Variable x = Variable(torch.Tensor([2]), requires_grad=True) y = x * x z = y * y ...

20得票2回答
PyTorch 中的 Tensor自动求导函数Autograd.grad()

我想计算网络中两个张量之间的梯度。输入X张量(批大小x m)通过一组卷积层发送,从而得到输出Y张量(批大小x n)。 我正在创建一个新损失函数,并且我想知道Y相对于X的梯度。这在tensorflow中类似于: tf.gradients(ys=Y, xs=X) 不幸的是,我已经在使用torch....

18得票3回答
PyTorch中的原地操作

我在想如何处理PyTorch中的原地操作问题。我记得在使用自动求导的情况下,原地操作经常会出问题。 实际上,我很惊讶下面的代码可以运行。虽然我没有测试过,但我相信在版本0.3.1中,该代码会引发错误。 基本上,我想要做的是将张量向量的某个位置设置为特定值,就像这样:my_tensor[i]...

15得票1回答
如何在PyTorch中使用autograd.gradcheck?

文档中没有gradcheck的任何示例用法,它在哪些情况下会有用?

14得票2回答
PyTorch中的高阶梯度

我已经在pytorch中实现了以下Jacobian函数。除非我犯了错误,它可以计算任何张量相对于任何维度输入的Jacobian: 我已经在PyTorch中实现了下面的Jacobian函数。如果没有出错,它可以计算任何张量关于任何维度的输入的Jacobian:import torch imp...

13得票2回答
autograd.grad和autograd.backward之间的区别是什么?

假设我有自定义的损失函数,并且我想通过神经网络来拟合某个微分方程的解。因此,在每次前向传递中,我都会计算出神经网络的输出,然后通过将MSE与期望的方程式进行比较来计算损失。 现在我的疑问是:我应该使用grad(loss)还是应该使用loss.backward()进行反向传播以计算和更新梯度?...