我想加快我的 LSTM 网络,但是当我将它用于 OCR(其中序列具有可变长度)时,我不能使用普通的 LSTM 实现。这就是我使用“tf.nn.dynamic_rnn”的原因。
基于 tensorflow 中的 RNN 基准(https://github.com/tensorflow/tensorflow/blob/754048a0453a04a761e112ae5d99c149eb9910dd/tensorflow/contrib/cudnn_rnn/python/kernel_tests/cudnn_rnn_ops_benchmark.py#L77),CUDNN实现用于创建所有模型一次(它不像其他人那样使用“tf.nn.rnn”结构)。我认为使用可变长度的 CUDNN 可能是不可能的,但也许有人成功了吗?
其次,这是使用“tf.nn.bidirectional_dynamic_rnn”,因为我想将 Bi-LSTM 用于 OCR。但这应该在实施第一部分后解决。
编辑:看起来“tf.contrib.cudnn_rnn.CudnnLSTM”内部有“双向”实现。所以唯一未知的是 CUDNN 可以与可变输入序列一起使用。
或者,任何使用“CudnnLSTM”的工作示例都会有所帮助。