代码之家  ›  专栏  ›  技术社区  ›  duhaime

Keras:在没有GPU的主机上加载用CuDNNLSTM构建的模型

  •  0
  • duhaime  · 技术社区  · 7 年前

    CuDNNLSTM 单元,现在希望将模型加载到缺少GPU的主机设备上。因为 CuDNNLSTM公司 单元需要一个GPU,但是,加载过程会爆炸,抛出:

    没有注册操作内核来支持具有这些属性的Op'CudnnRNN'。

    1 回复  |  直到 7 年前
        1
  •  6
  •   David Arenburg Ulrik    6 年前

    注:我使用的是Keras 2.2.4和TensorFlow 1.12.0。

    1) 使用CudnnLSTM训练模型,并保存模型(model\ GPU.json)和权重(*.h5)。

    2*)在LSTM细胞组中激活=“tanh”,反复激活=“sigmoid”。因为这些是CudnnLSTM中的默认值。

    3) 然后您可以使用CudnnLSTM训练的权重加载model_CPU.json。

    具体来说,我使用了以下方法

    中央处理器:

    from keras.layers import LSTM
    
    Bidirectional(LSTM(hidden_units_LSTM, return_sequences=True,activation='tanh',recurrent_activation='sigmoid'))(output)
    

    GPU:

    from keras.layers import CuDNNLSTM
    
    Bidirectional(CuDNNLSTM(hidden_units_LSTM, return_sequences=True))(output)
    
    推荐文章