たつぷりの調査報告書

博士後期課程(理学)の学生が趣味でUnityやBlenderで遊ぶブログです。素人が独学で勉強した際の忘備録です。

Windowsで機械学習に入門する前の準備

こんにちは。たつぷりです。今までMacbook Airがメインのマシンだったのですが、ゲーム用(作るためにも、プレイするためにも)に最近Windowsのマシンを購入しました。GTX 1650Tiがのっています。いままでWindowsの環境で作業したことがなかったので、備忘録としてこの記事に残しておくことにします。

思想の違いに応じて準備には差があると思いますが、少なくとも自分はこの準備でpytorchのチュートリアルはできたので良しとします。今後必要に応じて加筆の可能性はあります。

Pythonの導入

PythonWindowsに導入する。筆者はまず以下のサイトから現時点で(安定版として)最新版のバージョン3.9.0をダウンロードした。その後、インストーラーに従ってインストールした。

www.python.org

インストーラーで「Pathを追加する」旨のオプションがあるが、後述するようにWindowsではバージョンの管理はPython Launcherを用いて行われるので特に必須ではないらしい。

機械学習用のライブラリとしてPytorchを使うことにする。しかし上ではバージョン3.9.0を導入しているが、実は現時点(2020年11月)ではpytorchはpython3.9シリーズに対応していない。ライブラリの対応バージョンをあらかじめ確認するのは非常に大事であることを学んだ。

そこで上に加えて新しくバージョン3.7.8を導入した。このバージョンを選んだ理由は単純にMacで使っていたから安心感があるというだけである。

バージョンの切り替え

さてこの段階で、この環境にはバージョン3.9と3.7が共存するようになった。とりあえずコマンドプロンプトからpythonを実行するとバージョン3.9が呼び出された。今回pytorchを用いる都合からバージョン3.7を使いたいのでバージョンを切り替える方法を調べた。

このセクションの内容はここを参考にして行った。 Pythonの複数バージョンの扱い方(Windowsの場合) | ガンマソフト株式会社

Python Launcherによるバージョン管理

Windowsの場合、pythonはマイナーバージョンごとにディレクトリが分けられ保存されている。環境のすべてのバージョンを確認するには以下のコマンドを実行すればよい。

C:\Users\hoge>py --list 
Installed Pythons found by py Launcher for Windows 
 -3.9-64 * 
 -3.7-64 

ちなみに、以下のオプションでコマンドたたくと、各バージョンのpythonのパスを調べることができる。

py --list-paths 

さてWindowspythonPython Launcher(py.exe)というアプリケーションで管理されている。これはpyで実行することができる。Python Launcherはデフォルトでは導入されているバージョンのうち、最も新しいバージョンのPythonに紐づけるらしい。任意のバージョンのPythonに対してプログラムを実行したいときは

py -(version)

を用いる。例えば、py -3.7 とたたくと、Ver3.7のpythonが実行される。また、py -(version) -m をコマンドの頭につけることで、該当のバージョンのpythonに紐づけることができる。

例えばpipもそのままたたくと、Python Launcherによって一番新しいバージョンのものに自動的に紐づくが、

py -3.7 -m  pip install hoge

とすることでバージョン3.7に紐づくパッケージの管理をすることができる。

Jupyter Labの導入

では実際にJupyter Labを導入する。今回は一貫してバージョン3.7に紐づけることにする。公式レファレンスを参照して

py -3.7 -m pip install jupyterlab

実行することで導入できる。

jupyterlab.readthedocs.io

Jupyter Labの起動に関しても全く同様で、

py -3.7 -m jupyterlab

とたたくと、3.7をカーネルとしてJupyterを起動することができる。

CUDAの導入

次にGPUを使えるようにするための設定を行う。GTX 1650Tiに対しての設定を行った。

まずNVIDIA社製のGPUを利用するには、

  • NVIDIAグラボドライバーの導入
  • CUDAの導入

が必要とのことである。

ドライバーは以下のリンクから該当のGPUを選択。オプションに関して、ドライバーはGameReadyとStudioの2種類がある。調べてみると、GameReadyは最新版で、Studioは安定板という違いのようだ。自分は最新のゲームをプレイする可能性があるので、とりあえずGameReadyを選択してみた。

www.nvidia.co.jp

CUDAは以下のリンクから導入した。今回は現時点で最新版のVer11.1を導入した。

developer.nvidia.com

CUDAが導入されたどうかは、導入されたCUDAのVersionを調べる以下のコマンドで確認することができる。

C:\Users\hoge>nvcc -V 
nvcc: NVIDIA (R) Cuda compiler driver 
Copyright (c) 2005-2020 NVIDIA Corporation 
Built on Mon_Oct_12_20:54:10_Pacific_Daylight_Time_2020 
Cuda compilation tools, <span style="color: #ff0000">release 11.1</span>, V11.1.105 
Build cuda_11.1.relgpu_drvr455TC455_06.29190527_0

たしかに、バージョン11.1が導入されていることが確認できた。

pytorchの導入

以下、Numpyなどの最低限のライブラリは既に導入していることを仮定している。 pytorchをpipを用いて導入する。しかしそのオプションは環境に応じて異なるので注意する。

pytorch.org

から使っている環境のバージョンに合わせて、pipコマンドを出力してもらう。今回の場合は

pip install torch===1.7.0+cu110 torchvision===0.8.1+cu110 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

であった。

さて上述のとおり、このコマンドをそのままたたくとPython Lancherによって最新バージョンの3.9に紐づいてしまうので注意する。今回は3.7に導入したいので以下のコマンドをたたく。

py -3.7 -m pip install torch===1.7.0+cu110 torchvision===0.8.1+cu110 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

とすることで正常にインストールすることができた。

確認しておくと、

C:\Users\hoge>py -3.7 -m pip list 
Package             Version 
------------------- -----------
torch               1.7.0+cu110

が入っていることが確認できた。

以上でPytorchのチュートリアルをこなす準備はできた。

参考資料

  1. Python Releases for Windows | Python.org
  2. Pythonの複数バージョンの扱い方(Windowsの場合) | ガンマソフト株式会社
  3. WindowsユーザーはPythonランチャーの存在を意識しましょう | ガンマソフト株式会社
  4. NVIDIA Driverってどれをダウンロードすればいいの? - Qiita