[初心者向け]深層学習(Python+GPU)の環境構築チュートリアル！！

# はじめに
最近知り合いや研究室で深層学習の環境構築を教えてと言われることが多かったので，1つの記事にまとめようと思いました！！
**windowsでpythonのインストールからGPUを使って学習できる環境を構築**する他，Anacondaの仮想環境を用いたpython環境構築して物体検出のコードを動かすまでの一連の流れをまとめたいと思います！

**これから研究などで深層学習を扱うけど何していいか分からない！** って人に読んでもらえると幸いです．
今回の記事ではpython+GPUの環境構築をざっくりとですが解説します！

# その１ Python,Gitのインストール
[**こちら**](https://www.anaconda.com/products/distribution)のサイトからAnacondaをダウンロードします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/31e84ee0-9981-59f2-bfc4-5f57d97961e1.png)

インストーラを起動するといろいろ出てきますが，基本的にはそのままNextでかまいません
ポチポチしているとインストールが完了します．

次に[**こちら**](https://gitforwindows.org/)からGitをインストールします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/af4e86e3-ca8e-8a72-2448-9a877d47dd7f.png)

こちらもインストーラを起動するといろいろ出てきますが，基本的にはそのままNextでかまいません
ポチポチしているとインストールが完了します．

# その２ CUDA,cuDNNのインストール
そもそもCUDA,cuDNNって何ぞやって人，ざっくりいうとこれは**GPUを用いて機械学習を行う場合に入れなくてないけないツール**です．(雑)

## Visual Studio Communityのインストール
CUDAを動かすには**Visual Studioのコンパイラ**が必要なためインストールしていきます．
[**こちら**](https://visualstudio.microsoft.com/ja/free-developer-offers/)のサイトからインストールしてください．
ついでに一番右の**Visua Studio Code**はあとで絶対使うのでここでインストールしておいていいと思います
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/77a5f04d-8023-86f2-04f6-87e5fca35c25.png)

インストール時に必ず**C++によるデスクトップ開発**にチェックを入れて下さい．
![Inked68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3333343834372f30663262353432392d366637612d343639322d643336352d6630346332656363323038342e706e_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/0738f8a8-079f-a399-0ce0-d09736a347f2.jpeg)

## CUDA Toolkitのインストール
[**こちら**](https://developer.nvidia.com/cuda-toolkit-archive)のサイトからCUDA Toolkitをダウンロードします．

今回は**CUDA Toolkit 11.1.1**をインストールします
![Inked68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3535363534372f64623161333834392d653637302d303836642d346462392d3739353932333638613530332e706e_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/10d465c4-374b-1046-d44b-0936bd444650.jpeg)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/ad6d37cf-c08e-270c-0208-9848c1b20810.png)


プラットフォームを選択してインストーラをダウンロードします．
インストーラを起動するといろいろ出てきますが，基本的にはそのままNextでかまいません
ポチポチしているとインストールが完了します．

インストールが完了したら以下のコマンドでPATHが通ってるか確認してください．
```
nvcc -V
```
以下のような結果が出ると思います．
![image (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/a384e820-dfe0-9b06-ca83-34f8116f4ad9.png)
もしエラーなどが出る場合はPATHが通っていない可能性があります．
もしその場合は[こちら](https://qiita.com/TrashBoxx/items/2e884998cd1193f73e2f)の記事などを参考に環境変数のPATHを通してみて下さい．

## cuDNNのインストール
[**こちら**](https://developer.nvidia.com/cudnn)のサイトからcuDNNをダウンロードします
Download cuDNNを選択してください．
ダウンロードする際，アカウント登録をしないとダウンロードできない為，初めての方は登録をお願いします．(結構めんどいです)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/00ce6872-4116-6eca-cc14-18a94c5a084e.png)
Archived cuDNN Releasesをクリックします
![Inkedcudnn_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/ff77e3aa-edf5-0a13-7b65-38bebf57886c.jpeg)

今回は**cuDNN8.1.1 for CUDA11.0 11.1 and 11.2**をダウンロードします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/a8fe39d2-86bf-caa6-4b77-d6ed6fb705a9.png)

ダウンロードし，解答したらcudaフォルダの中身を
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1にコピーします。
![Inkedimage (5)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/44709ad7-2071-4ad7-4ac9-69e83be0e677.jpeg)

次にPATHを通します
まずシステム環境変数を開きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/97d234a5-ce0f-4861-56f9-8a81d0f4bde0.png)

環境変数のをクリックすると以下のようなウィンドウが出てきます
システム環境変数の新規をクリック
![Inkedkankixyo_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/656111ac-0660-8a30-cf49-91b550128324.jpeg)
出てきたウィンドウに
**変数名:CUDNN_PATH**
**変数値:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1**
と入力します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/a1178ad5-749b-e642-04c1-c35931dc1d47.png)

以上でCUDA,cuDNNのインストールは完了です．

# GPUが使えるか確認
ちゃんと使えるようになっているか確認しましょう
windowsのスタートメニューからanacondaプロンプトを開きます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/2d7a1a77-71d5-5a12-50fb-4926e4264439.png)
次にanacondaプロンプト上で以下のコマンドを打って深層学習ライブラリであるpytorchをインストールしてみましょう
```
pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
```
インストールが完了したら以下のpythonファイルを作成します
```python:test.py
import torch
print(torch.cuda.is_available())

```
このpythonファイルをつくったディレクトリまで移動し，以下のように実行してTrueが帰ってくれば無事にGPUでの開発環境が完成です！
![image (6).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556547/893e94a9-2e4b-afb4-056e-eb9291dafef0.png)

# 終わりに
いかがだったでしょうか？
僕が機械学習を始めた時はこの環境構築に詰まってかなりの時間を費やした記憶があります．
この記事で環境構築が楽にできるようになってくれると幸いです．

次はいよいよ物体検出のコードを動かします！
是非ご覧ください！

https://qiita.com/ImR0305/items/4f5d43bfbf5fb9789206

# 参考

https://qiita.com/TrashBoxx/items/2e884998cd1193f73e2f