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