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

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已经被废弃。

你可能感兴趣的:(pytorch,pytorch,人工智能,python,神经网络)