😎

Pytorch Points 3Dを使えるようにする(Windows 11)

2022/10/07に公開

環境について

Pytorch Points 3Dはpipでインストールできる。が、2022/10/07現在、必要なもの全てを最新の状態でインストールしていくとインストールがうまくいかない。
今回はうまく行ったケースについて紹介していく。
OS: Windows11
バージョン管理: pyenv-win
仮想環境: venv
エディタ: vscode

Visual Studio 2019を事前にインストールし、2022バージョンをインストールしている場合はアンインストールしておくと良い。Pythonのバージョンは3.8.0を使用する。

pyenv,venvについて以下参照。
https://www.3ryu-engineer.work/windows-pyenv/
https://camp.trainocate.co.jp/magazine/venv-python/

CUDAのインストール

使用しているPCに搭載されているGPUを確認するためにタスクマネージャーを開く。
右上にGPUの名前が出てくる。たとえばGeForce RTX 3070Tiなど。
GPUのドライバをインストールしていなかったら以下からダウンロードする。
https://www.nvidia.co.jp/Download/index.aspx?lang=jp#

CUDAをインストールする

3000番台のGPUはcuda11台に対応している。pytorchが対応しているsaisinnno
11.6ではインストールがうまくいかなかったのでcudaは11.3をインストールした。
https://imagingsolution.net/program/cuda/cuda-download-install/
cudaを複数バージョンインストールしている場合、使用したいバージョンのPath環境変数を上に移動すると使用できるようになる。以下参照。
https://blog.kintarou.com/2021/06/25/post-1591/
cudaのバージョンを確認する際は

nvcc -V

で数字を確認できる。

cuDNNをインストールする

https://developer.nvidia.com/rdp/cudnn-download
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

表示されたコマンドを打ってインストールした。
https://pytorch.org/

import torch
print(torch.cuda.is_available())

としてTrueとなればGPUの設定はOK。

Pytorch Points 3Dのインストール

そのままPytorch Points 3Dインストールしようとすると依存ライブラリ関係でエラーが出るので1つずつインストールしていく。
以下は公式のgit。
https://github.com/torch-points3d/torch-points3d

3D Point Cloud Kernelsをインストールする

https://github.com/torch-points3d/torch-points-kernels
以下のコマンドによりインストールする。なおMicrosoft C++ Build Tools(Visual Studio)をインストールしていないとエラーが発生するので事前にインストールすること。なお、Visual Studio 2022をインストールした状態だとエラーが出てしまうので2019をインストールすると良い。

pip install torch-points-kernels

Pytorch Geometricをインストールする

https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html
pytorch: PyTorch 1.12.*, os: windows, package: pip, cuda :11.3
とした。

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をインストールする

https://hydra.cc/docs/intro/
これはそのまま最新バージョンをインストールする。

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