VScode + Anaconda + .py で.ipynbのように実行するPyTorch GPU環境の構築

# VScode + Anaconda + .py で.ipynbのように実行するPyTorch GPU環境の構築

## 目次
[はじめに](#はじめに)
[環境](#環境)
[事前準備](#事前準備)
[AnacondaでPyTorch用の環境を作る](#AnacondaでPyTorch用の環境を作る)
[インストールコマンドの確認](#インストールコマンドの確認)
[PyTorchのインストール](#PyTorchのインストール)
[.pyを.ipynbのように実行できるようにする](#.pyを.ipynbのように実行できるようにする)
[動作確認](#動作確認)

## はじめに

:::note warn
環境構築はできれば公式ドキュメントを見た方がいいです．
見てもよくわからんという方はこの記事で構築してみてください．
:::


https://pytorch.org/get-started/locally/

本記事は研究室での共有用に記録したものです．
PyTorch環境の構築手順を以下に示していきます．

## 環境
OS: Windows 11 Home
GPU: RTX 2080TI

## 事前準備
以下のものを最初にインストールしてください．

### VScode
以下のリンクからインストーラをダウンロードできます．

https://code.visualstudio.com/

### Anaconda
以下のリンクからインストーラをダウンロードできます．

https://www.anaconda.com

### GPU Driver
NVIDIA GPUであれば，以下のリンクからインストーラをダウンロードできます．

:::note warn
最近のNVIDIAドライバーは不安定なためバージョンによってpytorchとは関係ないところで不具合が出る可能性があります．
X(旧Twitter)とかでバージョン名(556.12とか)で調べると不具合情報とか出てくるので安定しているといわれているものをインストールしてみてください．
:::
:::note alert
あまりにも古いドライバー(おおよそ2022年以前のバージョン)ではPytorchが動きません．
:::

https://www.nvidia.com/ja-jp/drivers/

## AnacondaでPyTorch用の環境を作る
1. Anacondaを起動
1. `Environment`タブに移動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2692846/19333b8c-5314-4aa5-f3d1-49bf222fdaed.png)
1. `Create`ボタンを押す
押すと以下のようなウィンドウが出る．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2692846/6e7ce515-e643-2515-4a00-1a4987bf1920.png)
1. 自分でわかりやすい環境名を付ける
1. Pythonのバージョンを選んで`Create`
:::note warn
Pythonのバージョンは必ず3.8以上に(執筆時点でPyTorchはPython 3.8以上対応)
:::

## インストールコマンドの確認
PyTorchは基本的に公式サイトのコマンドを打ち込むだけでインストールできます．
以下のリンクから確認できます．
https://pytorch.org/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2692846/fff22404-9717-27c4-abef-4b44fc35b837.png)
*執筆時点では11.8と12.1が対応しています．

**ここで自分の環境に合うように選択し`Run this Command:`のコードをコピーしておきます．**

### CUDAとcuDNN
:::note info
**基本的にAnacondaが自動管理してくれるため手動でインストールする必要はありません．**
他のqiita記事でインストールを促しているものが複数ありますが古い情報による記事が再生産され続けているようです．
:::
手動で入れたい場合は対応したバージョンを以下のリンクからダウンロードしてください．
CUDA

https://developer.nvidia.com/cuda-downloads

cuDNN

https://developer.nvidia.com/rdp/cudnn-archive

## PyTorchのインストール
- `Home`タブに移動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2692846/47a0c9b2-34c0-b945-af2a-fd4bc8ef928d.png)
1. `base(root)`を先ほど作成した環境に変更
1. `CMD.exe Prompt`を`Install`ボタンを押してインストール
1. `Launch`ボタンを押して`CMD.exe Prompt`を起動
1. `CMD.exe Prompt`に[バージョンの確認](#バージョンの確認)でコピーした内容をペーストして実行
コマンドの例
```
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
```
:::note info
ここでCUDAとcuDNNも一緒にインストールしてくれるらしい
:::

## .pyを.ipynbのように実行できるようにする
1. Anaconda上のVScodeの`Launch`ボタンを押して起動
1. `拡張機能`(英語版では`EXTENSIONS`)タブをクリック
1. 検索窓に`ms-python.python`と入力して`Python`という拡張機能をインストール
1. 検索窓に`ms-toolsai.jupyter`と入力して`Jupyter`という拡張機能をインストール

## 動作確認
### 準備
適当な作業フォルダをVScodeで開く
`test.py`を作成し，以下内容を記入
```python
#%%
import torch

#%%
print(torch.__version__)
print(torch.cuda.is_available())
```
:::note info
`#%%`は.ipynbやcolabのようにセル形式で実行できるようにするものです．
`#%%`毎にセルが指定されます．
`#%%`の上に表示される`Run Cell`で直下のセルのみ`Run Below`で以降のセル全てを実行
:::

### 実行
一番上の`#%%`の上にある`Run Below`をクリック

:::note warn
右下に実行用のタブを開くか聞かれる場合は`yes`を押して開く
`Run Below`が表示されない場合は拡張機能タブで`Jupyter`が有効になっていることを確認する
:::
以下が表示されればOKです．
```
2.3.1
True
```
## おわりに
これで環境構築は完了です．お疲れさまでした．
環境構築方法は日本語の情報が少ないのでなかなか大変ですね．
何か間違っている点があればコメントお願いします．