画像分類をします。
cat、dogの画像を用意して、分類をしました。
ex. dog5.jpgの分類結果 pngファイルと csvファイル
ここではpytorch-image-modelsの使い方をご紹介しています。
(ubuntu22.04 cuda12.4 cudNN12×(9.1.1)の環境で行いました)
インストール方法
pytorch-image-modelsフォルダをgithubよりダウンロードする
git clone https://github.com/NIBB-Neurophysiology-Lab/pytorch-image-models
動かすのに必要なライブラリをインストールしておく
pip3 install huggingface_hub
pip3 install pandas
pip3 install torchcam
pip3 install torchvision
ダウンロードしたpytorch-image-models
フォルダにディレクトリを変える
cd pytorch-image-models
動かし方
事前準備
フォルダ作成とデータを用意します
mkdir data_cd
作成したdata_cd
フォルダ内にテスト用、学習用、評価用の画像を入れておきます。
data_cdフォルダの中の構成は以下を参考にしてください
ex. catとdogの画像分類
class_map_cd.txt を作成し、train.pyと同じディレクトリに保存してください。
ex. catとdogフォルダを作成した場合のclass_map_cd.txt
学習をします
python3 train.py data_cd/train --pretrained --model tf_efficientnetv2_s_in21ft1k -b 16 --epochs 30 --num-classes 2 --class-map class_map_cd.txt
学習をした結果はoutput/train/に保存されます。
保存された学習結果をもとにテストをします。
output/train/に保存されたファイル名をコピーします(日付等の数字は異なります)
次のpythonコードの 20240522-155044-tf_efficientnetv2_s_in21ft1k-300
の部分をコピーしたファイル名に置き換えて実行してください。
python3 inference.py data_cd/test --model tf_efficientnetv2_s_in21ft1k --checkpoint output/train/20240522-155044-tf_efficientnetv2_s_in21ft1k-300/model_best.pth.tar --topk 0 -b 16 --num-classes 2 --class-map
分類結果を保存するため、フォルダを作成します(cat,dogの場合)
mkdir torchcam
mkdir torchcam/cat torchcam/dog
実行(先ほどと同様に学習したファイル名に置き換えてください)
python3 torch_cam.py data_cd/test --model tf_efficientnetv2_s_in21ft1k --checkpoint output/train/20240522-155044-tf_efficientnetv2_s_in21ft1k-300/model_best.pth.tar --num-classes 2 --layer-names conv_head blocks
torchcamフォルダに結果(pngファイル)が保存されます。
CSVファイルはpytorch-image-models
フォルダ内のtf_efficientnetv2_s_in21ft1k-300.csv
です。