【问题标题】:Keras model OOM killed during trainingKeras 模型 OOM 在训练期间死亡
【发布时间】:2019-02-02 01:25:18
【问题描述】:

我正在尝试像这样训练 Keras seq2seq 编码器-解码器模型:


Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
enc_inputs (InputLayer)         (None, None)         0                                            
__________________________________________________________________________________________________
dec_inputs (InputLayer)         (None, None)         0                                            
__________________________________________________________________________________________________
enc_embedding (Embedding)       (None, None, 256)    1840384     enc_inputs[0][0]                 
__________________________________________________________________________________________________
dec_embedding (Embedding)       (None, None, 256)    1291008     dec_inputs[0][0]                 
__________________________________________________________________________________________________
encoder_lstm (LSTM)             [(None, 256), (None, 525312      enc_embedding[0][0]              
__________________________________________________________________________________________________
dec_lstm (LSTM)                 [(None, None, 256),  525312      dec_embedding[0][0]              
                                                                 encoder_lstm[0][1]               
                                                                 encoder_lstm[0][2]               
__________________________________________________________________________________________________
time_distributed_1 (TimeDistrib (None, None, 5043)   1296051     dec_lstm[0][0]                   
==================================================================================================
Total params: 5,478,067
Trainable params: 5,478,067
Non-trainable params: 0
__________________________________________________________________________________________________
None
Fit model

但它在任何训练实际发生之前就被杀死了:

Process finished with exit code 137 (interrupted by signal 9: SIGKILL)

我尝试将批处理大小从 64 减少到 16,但得到了同样的错误。

我在 macOS 上从 PyCharm 运行,在 Conda 中使用 python3.6 环境。我的 python3.6 进程正在使用大量虚拟 RAM,并且在被杀死之前似乎达到了大约 100GB。奇怪的是,这曾经与我以前的模型一起工作,总参数约为 14m,但即使是那个模型也不再训练了。我没有有意识地改变任何东西——有一些 TF 版本,一些 python/Conda 环境。

我认为唯一的区别是从 PyCharm CE 切换到 Professional。

所以问题:

  1. 我可以让 Python 在被杀死之前使用更多的虚拟内存吗?
  2. 这是 PyCharm Professional 的配置问题吗?
  3. 我能否以某种方式更改我的模型以减少所需内存但仍使用相同的数据集进行训练?

【问题讨论】:

    标签: tensorflow keras


    【解决方案1】:

    tf.__version == 1.11 似乎有问题。我做了pip install --upgrade tensorflow==1.10,模型运行良好。

    【讨论】:

    • 谢谢。我跑了pip list,实际上已经尝试过tensorflow 1.10.0。实际内存达到了大约 4GB,然后 python 给出了Killed: 9,所以我想我需要重新审视使​​用yield 加载数据的方式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2021-01-31
    相关资源
    最近更新 更多