Img = Img.permute(2, 0, 1) AttributeError: 'NoneType' object has no attribute 'permute'
时间: 2023-10-27 19:53:37 浏览: 172
这个错误通常是因为 `Img` 变量没有被正确初始化或者已经被删除了。请检查你的代码,确保在调用 `Img.permute(2,0,1)` 之前,`Img` 已经被正确地赋值了。
如果你确定 `Img` 变量已经被正确地初始化,那么可能是由于其他代码部分修改了 `Img` 变量的类型,导致其不再具有 `permute()` 方法。在这种情况下,你需要检查其他代码部分,找出哪里修改了 `Img` 变量的类型,并且修复这个问题。
相关问题
in_data = input.permute(0, 3, 1, 2).to(device) AttributeError: 'Tensor' object has no attribute 'permute'
这个错误可能是因为您正在使用的PyTorch版本过低,而`permute`方法在该版本中不可用。`permute`方法是在PyTorch 0.4版本中引入的。请升级您的PyTorch版本以解决此问题。
您可以通过以下命令来安装最新版本的PyTorch:
```
pip install torch -U
```
如果您已经安装了最新版本的PyTorch,那么请确保您的输入张量的类型为`torch.Tensor`,而不是其他类型的张量。您可以使用`type(input)`命令来检查输入张量的类型。
如何改正下面的代码报错: in_data = input.permute(0, 3, 1, 2).to(device) AttributeError: 'Tensor' object has no attribute 'permute'
这个错误表示你尝试在一个 `Tensor` 对象上调用 `permute` 方法,但这个方法不适用于 `Tensor` 对象,只适用于 PyTorch 中的 `Variable` 对象。
要解决这个问题,可以将 `input` 转换为 `Variable` 对象。具体的方法如下:
```python
from torch.autograd import Variable
input = Variable(input, requires_grad=True)
in_data = input.permute(0, 3, 1, 2).to(device)
```
在这里,我们使用 `Variable` 函数将 `input` 转换为 `Variable` 对象,并将其设置为需要梯度计算。然后,我们可以在 `Variable` 对象上调用 `permute` 方法,得到一个具有相同数据但维度顺序不同的 `Variable` 对象。最后,我们使用 `to` 方法将 `Variable` 对象转换为所需的设备类型。
阅读全文