Windowsで機械学習に入門する前の準備
こんにちは。たつぷりです。今までMacbook Airがメインのマシンだったのですが、ゲーム用(作るためにも、プレイするためにも)に最近Windowsのマシンを購入しました。GTX 1650Tiがのっています。いままでWindowsの環境で作業したことがなかったので、備忘録としてこの記事に残しておくことにします。
思想の違いに応じて準備には差があると思いますが、少なくとも自分はこの準備でpytorchのチュートリアルはできたので良しとします。今後必要に応じて加筆の可能性はあります。
Pythonの導入
PythonをWindowsに導入する。筆者はまず以下のサイトから現時点で(安定版として)最新版のバージョン3.9.0をダウンロードした。その後、インストーラーに従ってインストールした。
インストーラーで「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
さてWindowsのpythonはPython 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
実行することで導入できる。
Jupyter Labの起動に関しても全く同様で、
py -3.7 -m jupyterlab
とたたくと、3.7をカーネルとしてJupyterを起動することができる。
CUDAの導入
次にGPUを使えるようにするための設定を行う。GTX 1650Tiに対しての設定を行った。
- NVIDIAグラボドライバーの導入
- CUDAの導入
が必要とのことである。
ドライバーは以下のリンクから該当のGPUを選択。オプションに関して、ドライバーはGameReadyとStudioの2種類がある。調べてみると、GameReadyは最新版で、Studioは安定板という違いのようだ。自分は最新のゲームをプレイする可能性があるので、とりあえずGameReadyを選択してみた。
CUDAは以下のリンクから導入した。今回は現時点で最新版のVer11.1を導入した。
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を用いて導入する。しかしそのオプションは環境に応じて異なるので注意する。
から使っている環境のバージョンに合わせて、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のチュートリアルをこなす準備はできた。