BunaML’s diary

機械学習、音声・自然言語、Machine Learning, NLP, Audio, Software Development

Pytorch Torch OUT OF MEMORY - GPUメモリ不足の対処法

以下はディープラーニングの作業中によく遭遇するGPUメモリ不足への対処法です。

1. 不要な変数のクリア

PyTorchのメモリキャッシュのクリア

import torch
torch.cuda.empty_cache()

使用していない変数によって占有されているメモリへの参照をクリアします。

2. Pythonガベージコレクション

Pythonのガベージコレクタを使用して変数を削除し、メモリを解放

import gc
gc.collect()

3. バッチサイズの調整

カーネルを再起動した後、バッチサイズを小さくして最適なサイズを見つける

4. ネットワーク構造の調整

  • ネットワークのレイヤーのサイズを変更
  • レイヤーを分割

5. GPUメモリ割り当ての理解

torch.cuda.memory_summary(device=None, abbreviated=False)

これでメモリ割り当ての読みやすい要約が得られます。