[PyTorch] Windows10 + Pipenv で PyTorch(GPU)を導入する


はじめに

周りの方々がどんどんPyTorchいいぞ~って言いながら乗り換えていくなかで,Tensorflowが公式でTensorboardを使えるようにしてくれたの自分もでそろそろ乗り換えようと思いこの記事を書きました.

対象者

公式の

pip3 install torch===1.3.1 torchvision===0.4.2 -f https://download.pytorch.org/whl/torch_stable.html 

で導入はできるけどこれpipenv install hogehogeでやりたくねって人向け
なのでPythonの導入やCUDAの導入は特に書きませんのでそこを期待されている方はブラウザバックで!!
CUDAとか言ってるので今回はGPUに着目してやります.CPUのバージョンはやりません.

導入環境

  • Windows 10 Pro for Workstations
  • Nvidia Driver Version : 430.86
  • CUDA : 10.0, V10.0.130
  • cudnn : 7.6.2

Pipenvの導入

Pipenvってどんなのと思った方はこのあたり(1)を見てもらえるとよろしいかと.個人的な解釈ではSwiftで使われているCocoaPods(2)と管理の仕方が近いと思っています.
では,インストールの前にpipを最新のバージョンに上げておきます.

pip install --upgrade pip

そしてPipenvのインストールですね

pip install pipenv

これでOKです.簡単ですね

(1) Pipenv: 人間のためのPython開発ワーク
(2) CocoaPods

PyTorchの導入

さてここからが問題なのですがWindowsだと

pipenv install torch torchvision

だけだと

'ERROR: Could not find a version that satisfies the requirement torch==1.3.1

こんな感じのエラーが返ってきちゃってうまくいかなんですよね・・・

なので

pipenv install [URL]

の形で導入していきます!

ちなみにPipのオプションで--find-linksがあるんですがPipenvにはないそうです(3)

(3) --find-links (or similar) in PipEnv #2231

URLを探しに行く

PyTorchの公式サイト(4)に行くと
こんな感じでダウンロードできるとこありますよね
今回注目するのは

https://download.pytorch.org/whl/nightly/cu101/torch_nightly.html

ここの部分です.実際にアクセスすると

PyTorchのライブラリがたくさん置いてあるのでこの中から選んでいきます.

一応なんですが欲しいのはURLなので欲しいバージョンがあったら右クリックして[リンクのアドレスをコピー]とかしてもらえればURLが取得できるかと.

あと古いバージョン欲しいんじゃい!!って方は

https://download.pytorch.org/whl/torch_stable.html

こっちのURL踏んで探してもらったほうが幸せになれるかと

今回自分は

torch: "https://download.pytorch.org/whl/nightly/cu101/torch-1.4.0.dev20191202-cp37-cp37m-win_amd64.whl"
torchvision: "https://download.pytorch.org/whl/nightly/cu101/torchvision-0.5.0.dev20191203-cp37-cp37m-win_amd64.whl"

をとってきてます.

さて,あとは

pipenv install https://download.pytorch.org/whl/nightly/cu101/torch-1.4.0.dev20191202-cp37-cp37m-win_amd64.whl

pipenv install https://download.pytorch.org/whl/nightly/cu101/torchvision-0.5.0.dev20191203-cp37-cp37m-win_amd64.whl

すれば良しなにPipenv君が頑張ってくれます.

(4) PyTorch

導入できたかの確認

Pipenvはできた!!!でも動作確認もしないとですね!

pipenv run python -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name())"

魔法の一行です気にしないでください.(普通に他のもので確認していただいてもOKです)
返ってくる値としては

True
TITAN RTX [搭載されているGPUによって変わる]

と返してくれればここで一安心です.
あとはpipenv shellでやろうがpipenv runでやろうがお好きなままに・・・

最後に

今回はWindows10 + PipenvでPytorch(GPU)の導入方法について記事を書きました.
正直自分がはまってpipで入れたくない一心で探してたので正確かどうかはわかりません.
設定したPipfileはGitHubに置いておくので,おとしてpipenv installして動かしてみてください.

リファレンス

(1) Pipenv: 人間のためのPython開発ワーク
(2) CocoaPods
(3) --find-links (or similar) in PipEnv #2231
(4) PyTorch