LoginSignup
6

More than 5 years have passed since last update.

KerasのGPU使用率を制限する[チートシート]

Last updated at Posted at 2018-11-21

はじめに

Kerasは何らかの形でGPUリソースを使えるようであれば優先して使うようですが,
デフォルト設定ではGPUのメモリを最初にすべて占有してしまうようです.

また,(少なくともCUDA環境では)GPUメモリ使用率が100%を超えると
プログラムをアボートします(メモリを占有してるプログラムはそのまま).

これではGPUを利用したプログラムを2つ以上動かせません.

ということで,Keras使用時のGPUメモリ使用率に制限をかけてみます.

チートシート

できあがったものがこちらになります.

limitGPU_cheat.py
# import 
import tensorflow as tf
from keras import backend
import numpy as np

# Kerasを使う前に
config = tf.ConfigProto()
# 次のコンフィグはどちらかお好きなほうをお使いください
# GPUメモリ占有をメモリ全体の30%に制限する
config.gpu_options.per_process_gpu_memory_fraction = 0.3
# GPUメモリを必要な分だけ確保する(自動開放するわけではないので注意)
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
backend.set_session(sess)

# この後にKerasを使う

おわりに

複数の人物,もしくはプログラムで単一のGPUリソースにアクセスする場合は必須に近いんじゃないかなと思います.

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6