Kerasメモリ制限
KerasでbackendにTensorlfowを使っていると、GPUメモリを全て食ってしまう。 Kerasのバックエンドに使っているTensoflowに設定を加える。
tf.ConfigProto
で設定を加えたら好きなように制限できる。
以下の設定だと必要な分だけ確保してくれる。
import tensorlfow as tf from keras.backend import tensorflow_backend gpuConfig = tf.ConfigProto(allow_soft_placement=True, gpu_options=tf.GPUOptions(allow_growth=True, visible_device_list="0")) sess = tf.Session(config=gpuConfig) tensorflow_backend.set_session(sess)
GPUの割合で指定したかったら以下のような感じ。
gpuConfig = tf.ConfigProto() gpuConfig.gpu_options.visible_device_list = "0, 1" gpuConfig.gpu_options.per_process_gpu_memory_fraction = 0.4
tf.keras
を使うときは
import tensorlfow as tf from tensorflow.keras import backend gpuConfig = tf.ConfigProto(allow_soft_placement=True, gpu_options=tf.GPUOptions(allow_growth=True, visible_device_list="0")) sess = tf.Session(config=gpuConfig) backend.set_session(sess)