CUDA_ERROR_OUT_OF_MEMORY:如何在Tensorflow中从Keras激活多个GPU

时间:2017-08-07 12:19:18

标签: memory deep-learning keras

我正在使用Keras在tensorflow上运行一个大型模型,并且在训练结束时jupyter笔记本内核停止并且在命令行中我有以下错误:

 2017-08-07 12:18:57.819952: E tensorflow/stream_executor/cuda/cuda_driver.cc:955] failed to alloc 34359738368 bytes on host: CUDA_ERROR_OUT_OF_MEMORY

我觉得这很简单 - 我的内存耗尽。我有4个NVIDIA 1080ti GPU。我知道TF只使用一个,除非指定。因此,我有两个问题:

  1. 有关如何利用Keras中所有GPU的良好工作示例

  2. 在Keras中,似乎可以更改gpu_options.allow_growth = True,但我看不清楚到底是怎么做的(我知道这是一个帮助吸血鬼,但我对DL完全不熟悉GPU)的

  3. 请参阅CUDA_ERROR_OUT_OF_MEMORY in tensorflow

1 个答案:

答案 0 :(得分:0)

  1. 请参阅此Official Keras Blog

  2. 试试这个:

    import keras.backend as K
    
    config = K.tf.ConfigProto()
    config.gpu_options.allow_growth = True
    session = K.tf.Session(config=config)