🧠

ゲーミングPCのローカルディープラーニング環境セットアップ

2021/09/20に公開

ゲーミングPCを買いました

噂のワクチン副作用です。というわけでとりあえずディープラーニング環境を構築したのでメモします。

Docker編とネイティブCUDA編の2本立てです。GPUはNVIDIA RTX3060です。PCに関して詳しくは、以下記事参照ください。

https://karaage.hatenadiary.jp/entry/2021/09/20/073000

Docker編

Dockerセットアップ

直接CUDA入れるなんて、そんな怖いことなかなかできないですよね。

そんな我々の強い味方がDockerでのGPU使用です。以下記事を参考にインストールしていきます。

https://qiita.com/karaage0703/items/e79a8ad2f57abc6872aa

Dockerイメージ、NVIDIA GPUの型番、Nvidiaドライバのバージョンによって動いたり動かなかったりするので注意しましょう。自分の場合は、対応しているはずの組み合わせのバージョンでも学習がうまく動かなかったりしたので、動かなかったらとりあえずうまくいくバージョンがみつかるまで試しましょう。

TensorFlow/PyTorchのバージョンは、以下のリリースノートを参照しましょう。
https://docs.nvidia.com/deeplearning/frameworks/tensorflow-release-notes/

https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/index.html

Docker動作

Dockerイメージを落として、Docker runしましょう。

TensorFlowの場合、私は、以下のバージョンがビンゴでした。

$ docker run --gpus all --rm --name ngc -p 8888:8888 -it nvcr.io/nvidia/tensorflow:21.03-tf2-py3

PyTorchの場合は、以下コマンド実行しました。

$ docker run --gpus all --rm --name ngc -p 8888:8888 -it nvcr.io/nvidia/pytorch:21.08-py3

実行したら、以下のようにDockerが立ち上がります。

Docker内でJupyter Labを起動します。

$ jupyter-lab

実行すると、最後に以下のような表示がでます。

http://hostname:8888/?token=xxxxxxxxxxxxxxxxxx

ブラウザでhostnameをlocalhostに変更してアクセスしましょう。

http://localhost:8888/?token=xxxxxxxxxxxxxxxxxx

アクセスできました!

GPU確認

GPUが正しく認識されているか確認しましょう。Jupyte LabのNotebook上でコマンド実行します。

TensorFlowの場合は以下です。

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

PyTorchの場合は以下です。

import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_name())
print(torch.cuda.get_device_capability())

ディープラーニングの学習

とりあえずローカルで学習してみたいと思います。題材は、拙作「からあげ先生のAI自作教室」です。買ってね。

https://karaage.hatenadiary.jp/entry/2020/12/11/073000

この書籍はGoogle Colaboratoryというクラウドサービスで実行することを想定していますが、GitHubのサポートサイトのJupyter Notebookを使えば、ローカルのGPUでも実行できるのです。

できるのですって、実は初めて試したんですけどね。ガハハハ。

試しに画像認識のノートブックを実行します。

Jupyter LabのTerminalを開いて以下コマンドを実行してセットアップします。

$ apt update
$ apt install -y git
$ pip3 install pillow
$ pip3 install matplotlib
$ git clone https://github.com/karaage0703/karaage-ai-book

あとは、以下のようにノートブック開けばGoogle Colaboratoryと同じ感覚で学習していくことができます。


うごく…うごくぞ!

ネットワーク関係のエラーでイメージが落とせない

何故かネットワーク関係のエラーになることがありました。

$ docker pull nvcr.io/nvidia/pytorch:21.08-py3
Error response from daemon: received unexpected HTTP status: 502 Bad Gateway

検索したら、たまにあることらしいです(!?)後日トライしたらOKになりました。

生CUDAインストール

まだやってません。ごめんなさい!やったら追記します。以下参考記事。

https://qiita.com/karaage0703/items/5d46b249f6be68186210

https://qiita.com/dnkit/items/49fd2fe344b98c588310

まとめ

からあげ先生とCUDAとの戦いは始まったばかりだ!(未完)

参考リンク

以下GPU設定は試したが、効果ありませんでした。
https://zenn.dev/aquahika/articles/61da9970f532cd

関連記事

https://karaage.hatenadiary.jp/entry/2019/05/17/073000

https://karaage.hatenadiary.jp/entry/2021/09/20/073000

Discussion