[pytorch]Variable(x.data, requires_grad=False) 报错NameError: name ‘Variable‘ is not defined

本文指导如何在PyTorch新版本中替换已弃用的Variable,介绍detach方法的作用,以及为何推荐使用1.0及以上版本,以保持兼容性和利用Autograd功能。
摘要由CSDN通过智能技术生成

loss = self.loss_fn(x_reconstuct, Variable(x.data, requires_grad=False))
NameError: name ‘Variable’ is not defined怎么办?

在PyTorch版本中,Variable已经被弃用,不再需要显式地使用它。在新的版本中,你可以直接使用torch.Tensor,因为现在的张量已经具有Autograd功能。

所以,你可以简单地将上述代码修改为:

loss = self.loss_fn(x_reconstruct, x.detach())

在这里,x.detach() 的作用是创建一个与x相同数据但不具有梯度的张量,类似于以前使用Variable(x.data, requires_grad=False)的效果。

请确保你的PyTorch版本是较新的,推荐使用1.0及以上版本,因为在较新的版本中,Variable已经被废弃。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值