Graph Gym执行报错求助:适配的稳定版本咨询
PyTorch Geometric Graph Gym 实验问题解决
运行环境
- Windows 10
- Python 3.8.13
- Bash 5.1.16(1)-release (x86_64-pc-linux-gnu)
- PyTorch 1.8.2
- CUDA 11.1.1
- CUDNN 8.1.0.77
问题1:执行bash run_single.sh报错
报错信息
run_single.sh: line 2: $'\r': command not found run_single.sh: line 4: python: command not found run_single.sh: line 5: python: command not found run_single.sh: line 6: python: command not found
解决方法
- 修复换行符问题:Windows下编辑的Shell脚本默认用CRLF换行,而Bash仅识别LF。用Notepad++打开
run_single.sh,点击右下角状态栏的「CRLF」,切换为「LF」后保存。 - 解决Python命令识别问题:
- 直接修改脚本中的
python为python.exe; - 或在Bash终端中临时设置别名:
alias python=python.exe; - 也可以将Python环境目录添加到Bash的PATH中,编辑
~/.bashrc文件加入:export PATH="/c/Users/rs085237/Miniconda3/envs/graphenv:$PATH",重启Bash生效。
- 直接修改脚本中的
问题2:直接运行命令python main.py --cfg configs/pyg/example_link.yaml --repeat 3报错
报错信息
Tried to access nonexistent attribute or method 'crow_indices' of type 'Tensor'.: File "C:\Users\rs085237\Miniconda3\envs\graphenv\lib\site-packages\torch_sparse\tensor.py", line 109 def from_torch_sparse_csr_tensor(self, mat: torch.Tensor, has_value: bool = True): rowptr = mat.crow_indices() ~~~~~~~~~~~~~~~~ <--- HERE col = mat.col_indices()
原因
PyTorch 1.8.2中,稀疏CSR张量的行指针获取方法为rowptr(),而crow_indices()是PyTorch 1.10及以上版本才新增的方法,当前安装的torch_sparse版本与PyTorch 1.8.2不兼容。
适配版本建议
方案1:升级PyTorch到兼容稳定版
基于你的CUDA 11.1环境,推荐升级到PyTorch 1.10.2(CUDA 11.1版本),这是经过验证的稳定版本,适配crow_indices()方法。配套的PyTorch Geometric相关依赖版本如下:
torch-scatter== 2.0.9torch-sparse== 0.6.12torch-cluster== 1.5.9torch-spline-conv== 1.2.1torch-geometric== 2.0.4
方案2:降级torch_sparse适配现有PyTorch版本
安装适配PyTorch 1.8.2的torch-sparse 0.6.11版本,执行以下命令:
pip install torch-sparse==0.6.11 -f https://data.pyg.org/whl/torch-1.8.2+cu111.html
内容的提问来源于stack exchange,提问作者Phạm Tâm
相关产品推荐
相关产品推荐

