セマンティックセグメンテーション
画像解析による物体認識の一手法として,セマンティックセグメンテーションというものがあります.これは,画像において物体にラベルを付けて,元画像とラベル化画像を使ってモデルを学習させ,ピクセル単位で画像からラベル(つまり物体)を予測しようとするAI手法です(たぶん).
これを使って河川に浮遊する物質動態を把握しようと考え,Python環境のPytorchで動くSegmentation Modelsを動かした際の注意点について忘備録的にまとめてみます.
なお,著者は画像解析については素人同然なのでそのつもりでお読みください.
今回試したPC環境については以下です.
OS:Windows 10
GPU:NVIDIA RTX A6000
また,Pythonについては,Anaconda 3のJupyternotebookで動かします.
CUDA-GPU環境の構築
上記Segmentation ModelsにおいてあるコードはCPU環境でも動きますが,CUDA-GPUを導入したほうが計算は断然速いです.ただし,設定には若干の手間がかかります.
基本的に下記ページの手法を参照します.
Pytorchのインストール
Anaconda Promptよりインストールを行いますので,コマンドを以下から確認します.
ここでは,
PyTorch Build → Stable (2.2.1)
OS → Windows
Pakage → Pip
Language → Python
Compute Platform → CUDA 11.8
とします.CUDAは12.1も使えそうですが,最新版は必ずしもほかが対応しているとは限らないので一つ古いものを選択しています.
これによりコマンドは以下となりました.
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
これをAnaconda Prompt(単にWindowsスタートメニューのAnaconda3内にあるAnaconda Promptでよい)に入力してインストールします.
※単にpip install torch torchvision torchaudioとすると,CUDAを使えないので注意.著者は最初これでだいぶはまり込みました..
インストールが終わるまで少々(私の場合数分)待ちます.
CUDA Toolkitのインストール
下記ページより,適切なバージョンをインストールします.
バージョンは先ほどPytorchのところで指定したCUDA11.8を選択し,自分のOSにあったものを選びます.Installer Typeはexe(local)を選択しました.
ダウンロードが終わったら,exeを実行します.特にそのままのインストールで問題ないと思います.
NVIDIAドライバのインストール
使用しているGPUに対応したNVIDIAドライバを以下からダウンロードします.
ここでの環境ですと,以下のような感じです.
製品のタイプ → NVIDIA RTX/Quadro
製品シリーズ → NVIDIA RTX Series
製品ファミリー → NVIDIA RTX A6000
オペレーティングシステム → Windows 10 64bit
ダウンロードタイプ → 製品ブランチ/studio
言語:Japanese
こちらも普通にダウンロード→exe実行でインストールします.途中画面が暗くなったりします.
インストール後,再起動を求められますので,PCを再起動します.
確認
Jupyternotebookで以下を試してみます.
import torch
print(torch.cuda.is_available())
うまくいっていると,Trueと返してくるはずです.
あとがき
これでCUDA-GPU環境については整いました.次の記事では実際にSegmentation Modelsを動かしてみます.
※以前試したときは,cnDNNなどのインストールも必要だったような..??