osx 上的 pytorch(仅 cpu)失败,未找到符号
pytorch (cpu only) on osx fails with symbol not found
我正在尝试开始使用 PyTorch - 在 mac osx 计算机上。但是,基本步骤失败:
from torch_sparse import coalesce, SparseTensor
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-1-dad8246d5249> in <module>
----> 1 from torch_sparse import coalesce, SparseTensor
/usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/site-packages/torch_sparse/__init__.py in <module>
10 '_saint', '_padding'
11 ]:
---> 12 torch.ops.load_library(importlib.machinery.PathFinder().find_spec(
13 library, [osp.dirname(__file__)]).origin)
14
/usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/site-packages/torch/_ops.py in load_library(self, path)
102 # static (global) initialization code in order to register custom
103 # operators with the JIT.
--> 104 ctypes.CDLL(path)
105 self.loaded_libraries.add(path)
106
/usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/ctypes/__init__.py in __init__(self, name, mode, handle, use_errno, use_last_error, winmode)
371
372 if handle is None:
--> 373 self._handle = _dlopen(self._name, mode)
374 else:
375 self._handle = handle
OSError: dlopen(/usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/site-packages/torch_sparse/_version.so, 6): Symbol not found: __ZN3c105ErrorC1ENS_14SourceLocationERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE
Referenced from: /usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/site-packages/torch_sparse/_version.so
Expected in: flat namespace
in /usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/site-packages/torch_sparse/_version.so
我使用的conda环境是:
name: my_conda_env
channels:
- pytorch
- conda-forge
- defaults
dependencies:
- python>=3.8
- pytorch
- pytorch_geometric
并使用以下实例化它:
conda env create --force -f environment.yml
https://github.com/rusty1s/pytorch_sparse/issues/135
的确,https://github.com/conda-forge/pytorch_sparse-feedstock/issues/13就是问题所在
使用 pip https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html 手动安装 pytorch geometric 及其依赖项,例如 pytorch sparse https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html 是当前合适的解决方法
我在导入 torch_geometric 数据集时遇到了同样的问题:
from torch_geometric.datasets import TUDataset
我的设置:Anaconda 环境中 Windows 上的火炬版本 1.11.0。我用 pip
安装了 torch-geometric
我通过卸载 torch-geometric 及其所有依赖项解决了这个问题:
pip uninstall torch-geometric torch-scatter torch-sparse torch-cluster torch-spline-conv
通过使用以下命令检查安装在我的 anaconda 环境中的软件包,确保 torch-geometric 确实被卸载:
conda list
原来我在我的 anaconda 环境中安装了这些软件包的多个版本。问题是,我用 cuda 安装了 torch-geometric,但后来我没有连接 gpu,我需要安装 cpu 版本。 pip install cpu version 没有删除已经存在的 gpu 版本,因此产生了冲突。
因此,在删除 torch-geometric 及其所有依赖项后,我使用 PyG documentation 了解 torch-geometric 及其依赖项的兼容版本:
最后,根据文档,我使用了这个命令:
pip install torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-1.11.0+cpu.html
为 torch==1.11.0 安装的依赖版本是:
torch-geometric==2.0.4
torch-cluster==1.6.0
torch-scatter==2.0.9
torch-sparse==0.6.13
torch-spline-conv==1.2.1
我正在尝试开始使用 PyTorch - 在 mac osx 计算机上。但是,基本步骤失败:
from torch_sparse import coalesce, SparseTensor
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-1-dad8246d5249> in <module>
----> 1 from torch_sparse import coalesce, SparseTensor
/usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/site-packages/torch_sparse/__init__.py in <module>
10 '_saint', '_padding'
11 ]:
---> 12 torch.ops.load_library(importlib.machinery.PathFinder().find_spec(
13 library, [osp.dirname(__file__)]).origin)
14
/usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/site-packages/torch/_ops.py in load_library(self, path)
102 # static (global) initialization code in order to register custom
103 # operators with the JIT.
--> 104 ctypes.CDLL(path)
105 self.loaded_libraries.add(path)
106
/usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/ctypes/__init__.py in __init__(self, name, mode, handle, use_errno, use_last_error, winmode)
371
372 if handle is None:
--> 373 self._handle = _dlopen(self._name, mode)
374 else:
375 self._handle = handle
OSError: dlopen(/usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/site-packages/torch_sparse/_version.so, 6): Symbol not found: __ZN3c105ErrorC1ENS_14SourceLocationERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE
Referenced from: /usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/site-packages/torch_sparse/_version.so
Expected in: flat namespace
in /usr/local/Caskroom/miniconda/base/envs/my_conda_env/lib/python3.8/site-packages/torch_sparse/_version.so
我使用的conda环境是:
name: my_conda_env
channels:
- pytorch
- conda-forge
- defaults
dependencies:
- python>=3.8
- pytorch
- pytorch_geometric
并使用以下实例化它:
conda env create --force -f environment.yml
https://github.com/rusty1s/pytorch_sparse/issues/135
的确,https://github.com/conda-forge/pytorch_sparse-feedstock/issues/13就是问题所在 使用 pip https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html 手动安装 pytorch geometric 及其依赖项,例如 pytorch sparse https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html 是当前合适的解决方法
我在导入 torch_geometric 数据集时遇到了同样的问题:
from torch_geometric.datasets import TUDataset
我的设置:Anaconda 环境中 Windows 上的火炬版本 1.11.0。我用 pip
安装了 torch-geometric我通过卸载 torch-geometric 及其所有依赖项解决了这个问题:
pip uninstall torch-geometric torch-scatter torch-sparse torch-cluster torch-spline-conv
通过使用以下命令检查安装在我的 anaconda 环境中的软件包,确保 torch-geometric 确实被卸载:
conda list
原来我在我的 anaconda 环境中安装了这些软件包的多个版本。问题是,我用 cuda 安装了 torch-geometric,但后来我没有连接 gpu,我需要安装 cpu 版本。 pip install cpu version 没有删除已经存在的 gpu 版本,因此产生了冲突。
因此,在删除 torch-geometric 及其所有依赖项后,我使用 PyG documentation 了解 torch-geometric 及其依赖项的兼容版本:
最后,根据文档,我使用了这个命令:
pip install torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-1.11.0+cpu.html
为 torch==1.11.0 安装的依赖版本是:
torch-geometric==2.0.4
torch-cluster==1.6.0
torch-scatter==2.0.9
torch-sparse==0.6.13
torch-spline-conv==1.2.1