kerasを使い、DeepLearningの学習をさせているときに、GPUのメモリ不足のエラーが発生したので原因と対処法をメモします。
発生したエラーは「ResourceExhaustedError」で、環境はWindows10です。Keras+TensorFlow+JupyterNotebookの環境で、DeepLearningの学習を行うとこの症状が発生しました。
GPUの使用率の確認
「nvidia-smi」コマンドを使い、GPUの使用率を確認します。
cd C:\Program Files\NVIDIA Corporation\NVSMI nvidia-smi.exe
C:\Program Files\NVIDIA Corporation\NVSMI>nvidia-smi Mon Apr 15 01:43:43 2019 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 385.54 Driver Version: 385.54 | |-------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 1060 WDDM | 00000000:01:00.0 On | N/A | | N/A 52C P3 19W / N/A | 2840MiB / 3072MiB | 0% Default | +-------------------------------+----------------------+----------------------+
GPU-Utilが0%なのに、メモリの使用率が高くなっているので、メモリの開放ができていないことがわかります。
プロセスを強制終了する(Window環境)
windowsではプロセスの停止は以下のコマンドになります。
taskkill /pid 「プロセスID」 /f
無事にメモリが解放されました。
C:\Program Files\NVIDIA Corporation\NVSMI>nvidia-smi Mon Apr 15 02:05:26 2019 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 385.54 Driver Version: 385.54 | |-------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 1060 WDDM | 00000000:01:00.0 On | N/A | | N/A 51C P3 19W / N/A | 392MiB / 3072MiB | 0% Default | +-------------------------------+----------------------+----------------------+
※JupyterNotebookのアプリを終了してもメモリは解放できます。
コメント