【发布时间】:2018-06-13 15:17:59
【问题描述】:
我已经使用 AWS p3 实例使用 GPU 加速来训练以下模型:
x = CuDNNLSTM(128, return_sequences=True)(inputs)
x = Dropout(0.2)(x)
x = CuDNNLSTM(128, return_sequences=False)(x)
x = Dropout(0.2)(x)
predictions = Dense(1, activation='tanh')(x)
model = Model(inputs=inputs, outputs=predictions)
训练后,我使用 Keras 的 save_model 函数保存了模型,并将其移至没有 GPU 的单独生产服务器。
当我尝试在生产服务器上使用模型进行预测时,它失败并出现以下错误:
没有注册 OpKernel 以支持具有这些属性的 Op 'CudnnRNN'。注册设备:[CPU],注册内核:
我猜这是因为生产服务器不支持 GPU,但我希望这不会成为问题。有什么方法可以在没有 GPU 的生产服务器上使用这个模型?
【问题讨论】:
-
您仍然可以使用
CuDNNLSTM层进行训练,但在您的预测服务器上,它们必须替换为LSTM。你可以尝试在GPU机器上使用save_weights(而不是save_model),在CPU机器上使用load_weights。 -
似乎没有解决办法,@Yu-Yang 的解决方案有效
标签: python tensorflow keras tensorflow-gpu