最近Pytorch環境を作る際にいろいろ面倒なことがあったので作業メモ。
1. なぜpipenvを使っているのか
対応の開発環境(主にOS)の違いで、良い感じのDockerコンテナを作れていないので。
特にcuda絡みがしょっちゅう環境で変わるので、cudaはcudaでしばらく単独で扱いたい。
2. 発生した問題
Pytorchのページで吐かれたインストールコマンドをそのままpipenvに渡すとPipfileのLockに失敗する。
たとえば、
pipenv install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio===0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
これを解決するためにverbose
オプションを指定して直接wheelを指定することにした。
3. wheelの探索
先のコマンド例の-f
オプションの引数のページに対象のwheelは存在する。
しこたまあるので、先ほどのコマンドの引数を参考に対象のwheelを検索する。
今回の環境ではPythonは3.9系を使っている。
まず、torch==1.9.1+cu111``に対応するtorchを探す。 CUDAのバージョンが重要なのでここでは、11.1を示す
cu111```で絞り込む。
こんな感じ。ここでcu111/
で始まるリンクのうち、1.9.1でcpが39(Python 3.9系)でwindows向けの物を今回は探した。
リンク先のアドレスをコピーしたものが以下。
https://download.pytorch.org/whl/cu111/torch-1.9.1%2Bcu111-cp39-cp39-win_amd64.whl
これをpipenv install の--verboseオプションで与えてインストールする。
pipenv install --verbose "https://download.pytorch.org/whl/cu111/torch-1.9.1%2Bcu111-cp39-cp39-win_amd64.whl"
これで、インストールが可能。
同様にtorchvision
やtorchaudio
を入れれば完了。