美文网首页
关于UserWarning: torch.meshgrid: i

关于UserWarning: torch.meshgrid: i

作者: 孤独面壁者 | 来源:发表于2023-10-19 09:01 被阅读0次

有时候在跑代码是会出现下面这个错误
/root/miniconda3/lib/python3.8/site-packages/torch/functional.py:568: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:2228.)

这个UserWarning警告是关于torch.meshgrid函数的改动提示。
在PyTorch的新版本中,torch.meshgrid函数需要增加一个indexing参数来指定索引模式。
目前torch.meshgrid默认的索引模式是'ij',新版本中需要显式指定:

根据报错的提示点击上述报错提示内容,然后跳转到相应的functional[.py文件]

    kwargs = {} if indexing is None else {'indexing': indexing}
    return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]

改为

    # 新版本中需要指定indexing模式
    kwargs = {} if indexing is None else {'indexing': indexing}
    return _VF.meshgrid(tensors, **kwargs,  indexing='ij')  # type: ignore[attr-defined]
x = torch.arange(4)
y = torch.arange(3) 

xx, yy = torch.meshgrid(x, y) # 默认'ij'模式

# 新版本中需要指定indexing模式
xx, yy = torch.meshgrid(x, y, indexing='ij')

这个indexing参数有两种模式:

'ij'模式: 返回的第一个矩阵索引是i,第二个矩阵索引是j,这是默认的传统矩阵索引法则。
'xy'模式: 返回的第一个矩阵索引是x,第二个矩阵索引是y。
所以为了兼容新版本PyTorch,使用torch.meshgrid时需要显式添加indexing='ij'参数。

这个UserWarning提醒我们新版本的改动,需要注意传入索引模式,以避免默认模式改变后代码出错。

相关文章

网友评论

      本文标题:关于UserWarning: torch.meshgrid: i

      本文链接:https://www.haomeiwen.com/subject/huchidtx.html