Pytorch Points 3Dを使えるようにする(Windows 11)
環境について
Pytorch Points 3Dはpipでインストールできる。が、2022/10/07現在、必要なもの全てを最新の状態でインストールしていくとインストールがうまくいかない。
今回はうまく行ったケースについて紹介していく。
OS: Windows11
バージョン管理: pyenv-win
仮想環境: venv
エディタ: vscode
Visual Studio 2019を事前にインストールし、2022バージョンをインストールしている場合はアンインストールしておくと良い。Pythonのバージョンは3.8.0を使用する。
pyenv,venvについて以下参照。
CUDAのインストール
使用しているPCに搭載されているGPUを確認するためにタスクマネージャーを開く。
右上にGPUの名前が出てくる。たとえばGeForce RTX 3070Tiなど。
GPUのドライバをインストールしていなかったら以下からダウンロードする。
CUDAをインストールする
3000番台のGPUはcuda11台に対応している。pytorchが対応しているsaisinnno
11.6ではインストールがうまくいかなかったのでcudaは11.3をインストールした。
cudaを複数バージョンインストールしている場合、使用したいバージョンのPath環境変数を上に移動すると使用できるようになる。以下参照。
cudaのバージョンを確認する際は
nvcc -V
で数字を確認できる。
cuDNNをインストールする
Windows用zipファイルをダウンロードし、"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3"にあるbin, include, libにcuDNNの中身をそれぞれコピペする。
pytorchをcudaや環境に合わせてインストールする
今回はstable, windows, pip, python, cuda11.3とした。
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
表示されたコマンドを打ってインストールした。
import torch
print(torch.cuda.is_available())
としてTrueとなればGPUの設定はOK。
Pytorch Points 3Dのインストール
そのままPytorch Points 3Dインストールしようとすると依存ライブラリ関係でエラーが出るので1つずつインストールしていく。
以下は公式のgit。
3D Point Cloud Kernelsをインストールする
以下のコマンドによりインストールする。なおMicrosoft C++ Build Tools(Visual Studio)をインストールしていないとエラーが発生するので事前にインストールすること。なお、Visual Studio 2022をインストールした状態だとエラーが出てしまうので2019をインストールすると良い。
pip install torch-points-kernels
Pytorch Geometricをインストールする
とした。
pip install torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-1.12.0+cu113.html
Facebook Hydraをインストールする
これはそのまま最新バージョンをインストールする。
pip install hydra-core --upgrade
Pytorch Points 3Dをインストールする
以下のコマンドがエラーなく完了すればOK。
pip install torch-points3d
まとめ
今回はpipのみでインストールを行うことができた。
Visual Studioのバージョンによるエラーはいくつかのライブラリをインストールする際にエラー文を読むことで発見することができた。llmvliteやnumbaなどのインストール進行中でエラーが発生することが多く、本質的にはVSのバージョンやCUDAのバージョンの兼ね合いであることが多かった。
requirements.txt
absl-py==1.2.0
antlr4-python3-runtime==4.9.3
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
asttokens==2.0.8
attrs==22.1.0
backcall==0.2.0
beautifulsoup4==4.11.1
bleach==5.0.1
cachetools==5.2.0
certifi==2022.9.24
cffi==1.15.1
charset-normalizer==2.1.1
click==8.1.3
colorama==0.4.5
configparser==5.3.0
contourpy==1.0.5
cycler==0.11.0
debugpy==1.6.3
decorator==5.1.1
defusedxml==0.7.1
docker-pycreds==0.4.0
entrypoints==0.4
executing==1.1.0
fastjsonschema==2.16.2
filelock==3.8.0
fonttools==4.37.4
gdown==3.15.0
gitdb==4.0.9
GitPython==3.1.28
google-auth==2.12.0
google-auth-oauthlib==0.4.6
googledrivedownloader==0.4
gql==0.2.0
graphql-core==1.1
grpcio==1.49.1
hydra-core==0.11.3
idna==3.4
imageio==2.22.1
importlib-metadata==5.0.0
importlib-resources==5.9.0
ipykernel==6.16.0
ipython==8.5.0
ipython-genutils==0.2.0
ipywidgets==8.0.2
isodate==0.6.1
jedi==0.18.1
Jinja2==3.1.2
joblib==1.2.0
jsonpatch==1.32
jsonpointer==2.3
jsonschema==4.16.0
jupyter-core==4.11.1
jupyter_client==7.3.5
jupyterlab-pygments==0.2.2
jupyterlab-widgets==3.0.3
kiwisolver==1.4.4
llvmlite==0.33.0
Markdown==3.4.1
MarkupSafe==2.1.1
matplotlib==3.6.0
matplotlib-inline==0.1.6
mistune==2.0.4
nbclient==0.7.0
nbconvert==7.2.1
nbformat==5.6.1
nest-asyncio==1.5.6
networkx==2.8.7
notebook==6.4.12
numba==0.50.1
numpy==1.19.5
nvidia-ml-py3==7.352.0
oauthlib==3.2.1
omegaconf==1.4.1
open3d==0.10.0.0
packaging==21.3
pandas==1.4.4
pandocfilters==1.5.0
parso==0.8.3
pickleshare==0.7.5
Pillow==9.2.0
pkgutil_resolve_name==1.3.10
plyfile==0.7.4
prometheus-client==0.14.1
promise==2.3
prompt-toolkit==3.0.31
protobuf==3.19.6
psutil==5.9.2
pure-eval==0.2.2
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.21
Pygments==2.13.0
pyparsing==3.0.9
pyrsistent==0.18.1
PySocks==1.7.1
python-dateutil==2.8.2
python-louvain==0.16
pytorch-metric-learning==0.9.99
pytz==2022.4
PyWavelets==1.4.1
pywin32==304
pywinpty==2.0.8
PyYAML==6.0
pyzmq==24.0.1
rdflib==6.2.0
requests==2.28.1
requests-oauthlib==1.3.1
rsa==4.9
scikit-image==0.16.2
scikit-learn==1.1.2
scipy==1.9.1
Send2Trash==1.8.0
sentry-sdk==1.9.10
shortuuid==1.0.9
six==1.16.0
smmap==5.0.0
soupsieve==2.3.2.post1
stack-data==0.5.1
subprocess32==3.5.4
tensorboard==2.10.1
tensorboard-data-server==0.6.1
tensorboard-plugin-wit==1.8.1
terminado==0.16.0
threadpoolctl==3.1.0
tinycss2==1.1.1
torch==1.12.1+cu113
torch-cluster==1.6.0
torch-geometric==1.7.2
torch-points-kernels==0.6.10
torch-points3d==1.3.0
torch-scatter==2.0.9
torch-sparse==0.6.15
torch-spline-conv==1.2.1
torchaudio==0.12.1+cu113
torchnet==0.0.4
torchvision==0.13.1+cu113
tornado==6.2
tqdm==4.64.1
traitlets==5.4.0
typing_extensions==4.4.0
urllib3==1.26.12
visdom==0.2.1
wandb==0.8.36
watchdog==2.1.9
wcwidth==0.2.5
webencodings==0.5.1
websocket-client==1.4.1
Werkzeug==2.2.2
widgetsnbextension==4.0.3
zipp==3.8.1
Discussion