tensorflow 2系 GPUの使用メモリ上限を設定する(CUDA_ERROR_OUT_OF_MEMORY: out of memory)

AutoKerasで学習を実行していると、GPUメモリの確保に失敗したというエラーが発生しました。


W tensorflow/core/framework/op_kernel.cc:1767] OP_REQUIRES failed at cwise_ops_common.h:120 : Resource exhausted: OOM when allocating tensor with shape[32,128,98,98] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
I tensorflow/stream_executor/cuda/cuda_driver.cc:775] failed to allocate 5.33G (5717907200 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory




GPUメモリ上限の指定はこちら
https://www.tensorflow.org/guide/gpu

7GBに制限してみます。
ソースコードの先頭に以下の記載を追加。


  1. gpus = tf.config.experimental.list_physical_devices('GPU')
  2. if gpus:
  3. # Restrict TensorFlow to only allocate 1GB of memory on the first GPU
  4. try:
  5.     tf.config.experimental.set_virtual_device_configuration(
  6.         gpus[0],
  7.         [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=1024*7)])
  8.     logical_gpus = tf.config.experimental.list_logical_devices('GPU')
  9.     print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
  10. except RuntimeError as e:
  11.     # Virtual devices must be set before GPUs have been initialized
  12.     print(e)




これで最後まで処理が実行できるようになりました。
関連記事

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ