티스토리 뷰
[DL] torch-geometric 설치하기 (torch-sparse 에러 해결 포함)
SweetDev 2022. 4. 1. 12:13일단 가상환경 위 혹은 도커 위에서 설치해야 한다. 공식 문서에서는 root user에서 설치하지 말라고 한다.
anaconda로 설치하기
현재 자신의 pytorch 버전이 1.10 이상이고, CUDA버전이 10.2 이상이라면 anaconda를 통해서 설치하는것을 추천한다.
conda install pyg -c pyg
그 이하의 버전이라면 pip wheel을 통해서 설치해야 한다. (조금 복잡함)
pytorch와 CUDA버전을 올리고 싶을 수 있다.
이때 주의해야 할 사항들은 다음과 같다.
1.
gpu의 CUDA버전과 torch의 CUDA 버전이 같은지 확인한다. nvidia-smi에서 나온 CUDA버전과
$ print(torch.version.cuda)
에서 나온 버전이 같은 것이 좋다. 아니면 예상치 못한 에러가 나타날 수 있다.
2. CUDA버전과 pytorch 버전이 맞는지 확인한다.
원래는 CUDA 버전을 지정해서 설치할 경우 해당 버전에 맞는 pytorch 라이브러리가 설치되는데 (CUDA=11.0의 경우 pytorch=1.7.1 로 설치) 그 이상의 버전으로 설치가 될 경우 CUDA 버전과 파이토치 버전이 맞지 않아 자동으로 cpu 버전으로 될 수 도 있다. 그런 경우에는
pip wheel로 설치하기
1. python cell에서 해당 명령어를 실행시켜서 버전을 확인한다.
import torch
print(torch.__version__)
print(torch.version.cuda)
2. python cell에서 밑의 명령어를 실행시켜 준다. torch와 cuda버전은 1에서 나온 결과로 바꿔준다.
TORCH = "1.4.0"
CUDA = "cu101"
%pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html
%pip install torch-sparse -f https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html
%pip install torch-cluster -f https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html
%pip install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html
%pip install torch-geometric
3. 마무리
import torch_geometric
으로 설치가 잘 되었는지 확인한다.
+) torch-sparse가 없다는 에러가 계속 난다면?
비슷한 에러:
OSError: /opt/conda/envs/venv/lib/python3.8/site-packages/torch_sparse/_version_cpu.so: undefined symbol: _ZN3c106detail12infer_schema20make_function_schemaENS_8ArrayRefINS1_11ArgumentDefEEES4_
geometric 내부 문제인 것 같다. 이것때문에 하루 날림 ㅠ
pip install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.4.0+cu101.html
위 명령어를 실행할 때, 나에게 맞는 버전은 0.5.1~0.6.1 이었는데 그 이상의 높은 버전을 강제 설치 하려고 해서 에러가 발생하는 것이었다... 아마 내부적으로 버전을 확인하는 부분에서 문제가 있나보다.
https://pytorch-geometric.com/whl/torch-1.4.0%2Bcu101.html
위 사이트에서 빌드 파일을 받아서 설치해주는 것으로 해결했다.
cp= 현재 파이썬 버전으로 맞춰주면 된다.
내가 설치한 코드는 다음과 같다.
# cluster
%pip install https://data.pyg.org/whl/torch-1.4.0%2Bcu101/torch_cluster-1.5.4-cp38-cp38-linux_x86_64.whl
# scatter
%pip install https://data.pyg.org/whl/torch-1.4.0%2Bcu101/torch_scatter-2.0.4-cp38-cp38-linux_x86_64.whl
# sparse
%pip install https://data.pyg.org/whl/torch-1.4.0%2Bcu101/torch_sparse-0.6.1-cp38-cp38-linux_x86_64.whl
# spline_conv
%pip install https://data.pyg.org/whl/torch-1.4.0%2Bcu101/torch_spline_conv-1.2.0-cp38-cp38-linux_x86_64.whl
%pip install torch-geometric
'MachineLearning > Graph Neural Network' 카테고리의 다른 글
[GraphML] Graph의 Task들 (0) | 2022.09.08 |
---|---|
[GraphML] Graph Neural Network Learning Path (0) | 2022.09.08 |
[GNN] Graph Data의 종류 (0) | 2022.09.08 |