Pytorch 挥发物已被去除,现在与.torch.no_grad()instread一起使用无效

Pytorch 挥发物已被去除,现在与.torch.no_grad()instread一起使用无效,pytorch,Pytorch,我的火炬计划就此停止 我想我不能使用volatile=True 我应该如何更改它以及停止的原因是什么? 我应该如何更改此代码 images = Variable(images.cuda()) targets = [Variable(ann.cuda(), volatile=True) for ann in targets] train.py:166:UserWarning:volatile已被删除,现在没有效果。 使用手电筒时使用。不要使用梯度(): Variable不起任何作用,自pytor

我的火炬计划就此停止 我想我不能使用volatile=True
我应该如何更改它以及停止的原因是什么?
我应该如何更改此代码

images = Variable(images.cuda())
targets = [Variable(ann.cuda(), volatile=True) for ann in targets]
train.py:166:UserWarning:volatile已被删除,现在没有效果。 使用手电筒时使用
。不要使用梯度():


Variable
不起任何作用,自pytorch 0.4.0以来一直被弃用。它的功能与
torch.Tensor
类合并。那时,
volatile
标志用于禁用volatile变量所涉及的任何操作的计算图的构造。较新的pytorch已更改此行为,改为对torch使用
。no_grad():
禁用对
with
语句体中的任何内容构造计算图

您应该更改什么,首先取决于您使用volatile的原因。尽管你可能想用

images=images.cuda()
targets=[ann.cuda()表示目标中的ann]
在培训期间,您将使用类似于以下内容的内容来创建计算图(假设模型、标准和优化器的标准变量名)

output=模型(图像)
损失=标准(图像、目标)
optimizer.zero_grad()
loss.backward()
optimizer.step()
由于在求值过程中不需要执行反向传播,因此可以使用torch.no_grad():禁用计算图的创建,从而减少内存占用并加快计算速度

带火炬的
。无梯度()
输出=模型(图像)
损失=标准(图像、目标)

变量
不起任何作用,自pytorch 0.4.0以来一直被弃用。它的功能与
torch.Tensor
类合并。那时,
volatile
标志用于禁用volatile变量所涉及的任何操作的计算图的构造。较新的pytorch已更改此行为,改为对torch使用
。no_grad():
禁用对
with
语句体中的任何内容构造计算图

您应该更改什么,首先取决于您使用volatile的原因。尽管你可能想用

images=images.cuda()
targets=[ann.cuda()表示目标中的ann]
在培训期间,您将使用类似于以下内容的内容来创建计算图(假设模型、标准和优化器的标准变量名)

output=模型(图像)
损失=标准(图像、目标)
optimizer.zero_grad()
loss.backward()
optimizer.step()
由于在求值过程中不需要执行反向传播,因此可以使用torch.no_grad():禁用计算图的创建,从而减少内存占用并加快计算速度

带火炬的
。无梯度()
输出=模型(图像)
损失=标准(图像、目标)