这个问题竟然也花了好几个小时才解决。我需要在一台新的PC上运行基于PyTorch Geometric (PyG)和Transformers的代码,但是发现PyG会报错,例如仅仅是这样一条语句:
from torch_geometric.data import Data
也会报“段错误 (核心已转储)”。捜了一下,发现主要是因为PyTorch和PyG的版本不对应所致。例如下面几篇博客:
PyTorch Geometric(PyG)+Cuda+Pytorch安装与使用_摩天崖FuJunWANG的博客-CSDN博客
http://www.yaotu.net/biancheng/5769.html
大家都提到要注意PyTorch和PyG的版本的对应。不过上面这篇文章还是有点老了,我总结一下目前的情况,按照这里:
https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html
来看,目前(2022年11月),PyTorch稳定版本是1.13.0,而从第二个网页来看,PyG最多支持的PyTorch版本是1.12.*,所以应该安装更老一点的PyTorch。另外,从上面两个网页来看,最好是全都使用conda安装。所以我先从这个网页:
Previous PyTorch Versions | PyTorch
找到了PyTorch 1.12.1 Conda安装的命令行(CUDA 11.6,这个版本也需要统一,并且在使用Conda的时候,并不受系统安装CUDA版本的影响):
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge
然后再按照PyG的网页安装PyG即可:
conda install pyg -c pyg
发现都通过Conda安装后,是可以解决上面的“段错误 (核心已转储)”的报错的。怎么感觉PyG的开发有点滞后了呢?