【PyTorch】GPUのメモリ不足エラーの対処方法

画像分類のAIを作成していると、大量の画像を処理して学習データを作成することになります。

GPUを用いて大量の画像を学習させると、GPUのメモリ不足エラーが発生します。

この記事では、GPUのメモリ不足エラーの対処方法について説明します。

GPUについて


まずは、GPUの基本知識について説明しましょう。

GPUとは画像処理装置のこと

GPU(Graphics Processing Unit)は、画像処理装置を意味します。

GPUの主な機能は、画像を描写するために必要な計算を処理することです。

AIを用いた画像処理では膨大な画像データを瞬時に計算するため、機械学習にはGPUが搭載されたパソコンが欠かせません。

建設業界において、画像認識ソリューションの活用事例が多い

GPUはデータを大量かつ速く処理する独特の仕組みをもっています。

近年の建設業では画像認識AI技術が多く活用されているため、GPUの需要も高まっています。


引用:2019年度「戦略的基盤技術高度化・連携支援事業(中小企業のAI活用促進に関する調査事業)」調査報告書

よくある事例は、「設備点検の品質向上・効率化」に画像認識AIが導入されている例です。

例えば、部品の取り付け、コンクリートのひび割れ・腐食、部品のサビ・傷、水漏れなど、従来は人が目視で確認・検査していたものを、AIが正常/異常判定をしたり、異常の種類ごとに分類します。

このような事例においても大量の画像を処理するGPUの役割は大きく、今後その重要性は高まっていくでしょう。

AIによる部資材(鉄筋)の個数カウントについて課題から開発手順まで解説!

CUDA out of memory の対処法

GPUのメモリ不足が発生すると以下のようなエラーが出ます。

実行時エラー(RuntimeError)とは、プログラムを実行した際に生じるエラー全般を指します。

要は、プログラムを異常停止させるエラーです。

このエラーの対処法は以下の通りです。

nvidia-smi コマンドでGPUのメモリー容量を確認

コマンドを実行すると以下のような画面になりますので、現状のメモリー空き容量を確認しましょう。

図の場合だと、

となっています。

taskkill /im cmd.exe コマンドでGPUのメモリー容量を解放

上記のコマンドを実行し、空き容量が増えたかどうかを確認します。

図の場合だと、以下のように空き容量が増えています。

まとめ

この記事では、CUDA out of memory の対処法を説明しました。

機械学習をしている最中に良く発生するエラーなので、参考にしてください。

アノテーション作業について 注意点や工夫点、外注コストを解説

pytorchでロジスティック回帰を実装する

【PyTorch】Dataset、Dataloaderの作成過程 詳細な理解とよくあるミス

pytorch入門  インストール方法