sy,sx = torch.meshgrid(sy, sx, indexing='ij') if TORCH_1_10 else torch.meshgrid(sy, sx)报错
时间: 2023-08-19 19:03:49 浏览: 291
这个报错可能是因为你正在使用的 PyTorch 版本不支持 `indexing` 参数。如果你使用的是 PyTorch 1.10 及以上版本,那么可以尝试删除 `indexing='ij'` 参数,因为在这些版本中,`meshgrid` 函数默认使用的是 `'ij'` 索引方式。
如果你使用的是 PyTorch 1.9 及以下版本,那么可以尝试将 `indexing='ij'` 参数替换为 `indexing='xy'` 参数。这是因为在这些版本中,`meshgrid` 函数默认使用的是 `'xy'` 索引方式。另外,你也可以升级 PyTorch 到最新版本以避免这个问题。
相关问题
File "E:\learning\NEW\code\yolov8\NWPU\yolov8-pytorch-master\utils\utils_bbox.py", line 25, in make_anchors sy,sx = torch.meshgrid(sy, sx, indexing='ij') if TORCH_1_10 else torch.meshgrid(sy, sx) File "D:\Anaconda3\envs\pytorch\lib\site-packages\torch\functional.py", line 463, in meshgrid return _meshgrid(*tensors, indexing=indexing) File "D:\Anaconda3\envs\pytorch\lib\site-packages\torch\functional.py", line 478, in _meshgrid return _VF.meshgrid(tensors, **kwargs,indexing='ij') # type: ignore[attr-defined] TypeError: meshgrid() got multiple values for keyword argument 'indexing'
这个错误是因为`meshgrid`函数的`indexing`参数在PyTorch 1.10版本中被添加,而早期版本中没有该参数。你可以尝试以下两个解决方法中的任意一个:
1. 如果你使用的是PyTorch 1.10或更高版本,请删除`if TORCH_1_10 else`这一行代码,直接使用以下代码即可:
```
sy, sx = torch.meshgrid(sy, sx, indexing='ij')
```
2. 如果你使用的是早期版本的PyTorch,请将代码改为以下形式:
```
if TORCH_1_10:
sy, sx = torch.meshgrid(sy, sx, indexing='ij')
else:
sy, sx = torch.meshgrid(sy, sx)
```
x, y = torch.meshgrid(torch.arange(width, device=device), torch.arange(height, device=device))生成的结果没有grad_fn属性该怎么改进
可以使用 torch.meshgrid 中的参数 indexing='ij' 来解决没有 grad_fn 属性的问题。具体实现代码如下:
x, y = torch.meshgrid(torch.arange(width, device=device), torch.arange(height, device=device), indexing='ij')
阅读全文