gpt4 book ai didi

python - Tensorflow:在 CPU 中使用在 CUDNNLSTM 中训练的模型

转载 作者:太空狗 更新时间:2023-10-30 02:25:10 32 4
gpt4 key购买 nike

我在使用 GPU 的 tensorflow 中使用 CUDNNLSTM 训练了一个模型。当我尝试在 cpu 中使用模型进行推理时,出现此错误:

Invalid argument: No OpKernel was registered to support Op 'CudnnRNN' with these attrs.  Registered devices: [CPU], Registered kernels:
<no registered kernels>

[[Node: cudnn_lstm/CudnnRNN = CudnnRNN[T=DT_FLOAT, direction="bidirectional", dropout=0, input_mode="linear_input", is_training=false, rnn_mode="lstm", seed=87654321, seed2=4567](Reshape_1, cudnn_lstm/zeros, cudnn_lstm/zeros_1, cudnn_lstm/opaque_kernel/read)]]

那么,我们如何在 cpu 中使用这个模型呢?

最佳答案

请查看 CuDNN LSTM 层的 tensorflow 源代码中的注释:https://github.com/tensorflow/tensorflow/blob/r1.6/tensorflow/contrib/cudnn_rnn/python/layers/cudnn_rnn.py

他们从第 83 行开始描述了如何做,你想要什么。基本上,在使用 CuDNN 层进行训练后,您需要将权重转移到使用 CuDNN 兼容 LSTM 单元制作的模型。这样的模型将同时在 CPU 和 GPU 上运行。另外,据我所知,tensorflow 中的 CuDNN LSTM 层是时间主要的,所以不要忘记转置您的输入(我不确定在最新的 tensorflow 版本中,请确认这一点)。

有关基于上述内容的简短完整示例,请查看 melgor 的要点:

https://gist.github.com/melgor/41e7d9367410b71dfddc33db34cba85f?short_path=29ebfc6

关于python - Tensorflow:在 CPU 中使用在 CUDNNLSTM 中训练的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50127488/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com