はじめに
ImageNet-22kというのもありますが今回はImageNet-1kで妥協しました。1000クラスの画像分類で、訓練用画像だけで約129万枚あります。Kaggleからダウンロードできます。今回の学習は「swinv2_cr_large_224」というモデルを使いました。こちらは現時点でTIMM(PyTorch Image Models)に学習済みweightが公開されていません。なければ自分で作ってしまおうというのが事の始まりです。PC
プロセッサ Intel(R) Core(TM) i7-14700K 実装 RAM 96.0 GB GPU RTX 4090 (VRAM 24GB)
WSL2のUbuntu 24.04を使いました。
AutoGluonの設定
紛らわしいですが「batch_size」と「per_gpu_batch_size」の二つの設定項目があります。「batch_size」はどの頻度でパラメーターを更新するかを表しているようです。「per_gpu_batch_size」が何枚の画像をまとめてGPUで処理するかを表しているようです。いろいろ試した結果が以下です。- batch_sizeを変えてもVRAM消費量は増えません。
- per_gpu_batch_sizeを増やすとVRAM消費量が増えます。
per_gpu_batch_size: 32 batch_size: 128 GPU 0 - Used memory: 14.39/23.99 GB
per_gpu_batch_size: 64 batch_size: 128 GPU 0 - Used memory: 22.06/23.99 GB
per_gpu_batch_size: 64 batch_size: 256 GPU 0 - Used memory: 22.12/23.99 GB
per_gpu_batch_size: 64 batch_size: 512 GPU 0 - Used memory: 22.10/23.99 GB
実際の学習
以下の条件で行いました。per_gpu_batch_size: 64 batch_size: 1024
1 epochに約2時間かかりました。
5 epoch、約10時間動かしたのですが、クーラーをつけていても部屋が爆熱になりました。
続きは冬にやろうと思います(笑)