ResNet, AlexNet, VGG を,ILSVRC 2012 データセットを用いて学習(PyTorch のサンプルプログラムを使用)
ユースケース: ImageNet データセットを用いて PyTorch での学習を行いたい
次のWebページに記載の手順による.
【関連する外部ページ】 https://github.com/pytorch/examples/tree/master/imagenet
先人に感謝
PyTorch の Web ページ: http://pytorch.org
GitHub の PyTorch の Webページ: https://github.com/pytorch/pytorch
前準備
PyTorch 2.3 (NVIDIA CUDA ツールキット11.8 用)のインストール(Windows 上)
次のコマンドを実行することにより, PyTorch 2.3 (NVIDIA CUDA ツールキット 11.8 用)がインストールされる.
- Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
- PyTorch の公式ページを確認
- 次のようなコマンドを実行(実行するコマンドは,PyTorch のページの表示されるコマンドを使う).
次のコマンドを実行することにより, PyTorch 2.3 (NVIDIA CUDA 11.8 用)がインストールされる. 但し,Anaconda3を使いたい場合には別手順になる.
事前に NVIDIA CUDA のバージョンを確認しておくこと(ここでは,NVIDIA CUDA ツールキット 11.8 が前もってインストール済みであるとする).
PyTorch で,GPU が動作している場合には,「torch.cuda.is_available()」により,True が表示される.
python -m pip install -U --ignore-installed pip python -m pip uninstall -y torch torchvision torchaudio torchtext xformers python -m pip install -U torch torchvision torchaudio numpy --index-url https://download.pytorch.org/whl/cu118 python -c "import torch; print(torch.__version__, torch.cuda.is_available())"
【関連する外部ページ】
【サイト内の関連ページ】
- GPU対応PyTorch 2.3のセットアップと性能確認(Windows 上): 別ページ »で説明
- PyTorch の最新版を検証,開発者に貢献したいなどの場合には,ソースコードからビルドして,インストールする: 別ページ »で説明
【関連項目】 NVIDIA CUDA ツールキット, PyTorch
ILSVRC 2012 データセットのダウンロード
ILSVRC 2012 データセット (http://image-net.org/challenges/LSVRC/2012/index#data)
validation data と test data
- 150,000 点の validation data と test data.Flicker やその他のサーチエンジンで収集
- 1000 種のオブジェクトカテゴリについて,おのおの含まか含まないかを手作業で判定(ラベル付け)
- ランダムに選ばれた 50,000 個が validation data.これはラベル付きで公開
- 残りの 100,000個が test data.これは,ILSVRC 2012 当時は,ラベル無しで公開
ImageNet training data
- Image Net の中から,先程の 1000 オブジェクトカテゴリを含むもの 1,200,000 の画像.これを集めたものが ImageNet Training Data
- validation data と test data は,ImageNet training data には含まれない
ここでの Blender の設定
- ImageNet データセットのダウンロードディレクトリ: /usr/local/ilsvrc2012
ダウンロード手順
https://github.com/pytorch/examples/tree/master/imagenet の記述による.
- 利用条件の確認
必ず,次のページなどで,利用条件を確認すること.利用条件に反するような利用をしてはいけないのは当然である.
- ダウンロードと展開
- ILSVRC 2012 データセットの validation data を,ラベルの付いたサブディレクトリに移動
次のコマンドを実行.
cd /tmp rm -f valprep.sh wget https://raw.githubusercontent.com/soumith/imagenetloader.torch/master/valprep.sh sudo mkdir /usr/local/ilsvrc2012 cd /usr/local/ilsvrc2012 sudo bash /tmp/valprep.sh
単純な CNN を用いた画像分類(PyTorch のサンプルプログラムを使用)
Python プログラムの実行
- Windows では python (Python ランチャーは py)
- Ubuntu では python3
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
Python のまとめ: 別ページ »にまとめ
python
PyTorch の ImageNet プログラムの準備
ここでの設定
- PyTorch の example をダウンロードするディレクトリ: /usr/local/pytools/pytorch/examples
- PyTorch の「ImageNet」プログラムの準備
(https://github.com/pytorch/examples/tree/master/imagenet)を準備する.
- ダウンロード
- 前提パッケージのインストール
pip3 install -r requirements.txt
- ResNet, AlexNet, VGG を,ImageNet データセットを用いて学習
alexnet, densenet121, densenet161, densenet169, densenet201, resnet101, resnet152, resnet18, resnet34, resnet50, squeezenet1_0, squeezenet1_1, vgg11, vgg11_bn, vgg13, vgg13_bn, vgg16, vgg16_bn, vgg19, vgg19_bn (default: resnet18)
- このうち resnet18, alexnet, vgg19 を試してみる
AlexNet, VGG では,initial learning rate は 0.01 がよいとされている (https://github.com/pytorch/examples/tree/master/imagenet の記述による.)
python main.py -a resnet18 [imagenet-folder with train and val folders] python main.py -a alexnet --lr 0.01 [imagenet-folder with train and val folders] python main.py -a vgg19 --lr 0.01 [imagenet-folder with train and val folders]