tensorflow - 在 TensorFlow CTC(语言模型)中使用自定义光束评分器

标签 tensorflow language-model

是否可以从 Python 端自定义 TensorFlow CTC 实现中的光束评分器?我在 CTCBeamSearchDecoder C++ 类构造函数的评论中看到了这种可能性,但想知道如何为 Python 用户提供此功能?

我们遇到的具体问题是将语言模型插入基于 CTC 的语音解码器中。语言模型可能是一个预训练的 TensorFlow 子图,能够输出用于光束分数调整的概率。但我们需要一种方法将其注入(inject)光束计分器。

最佳答案

目前没有用于 Python 的 API 可以将语言模型与自定义记分器一起使用。欢迎贡献,但在 Python API 中实现这一点有一些困难,因为它需要在解码器操作内的独立 session 中运行 TF LM 子图,并且这些不会很好地融合在一起。

最简单的方法是在 C++ 中,并且需要扩展 BaseBeamScorer 类以及 BeamState(类似于在测试中可以看到的),并在通常会进入的 tensorflow 图的输出之上进一步运行 CTCBeamSearchDecoder::Decode ctc_beam_search_decoder 操作。

通过这样做,您的 BeamScorer 实现可以利用您手头的任何语言模型,并且只需要在将光束从一种状态扩展到另一种状态时返回适当的分数。

关于tensorflow - 在 TensorFlow CTC(语言模型)中使用自定义光束评分器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37947619/

相关文章:

python - 如何在python中计算skipgrams?

tensorflow - 您将使用哪种模型(GPT2、BERT、XLNet 等)进行文本分类任务?为什么?

python-3.x - 输入维度 Tensorflow v1.8 ConvLSTMCell

tensorflow - 具有迁移学习的自定义模型热图

tensorflow - 将预训练保存的模型从 NCHW 转换为 NHWC,使其与 Tensorflow Lite 兼容

python - Tensorflow : bucketize a tensor, 然后生成分类张量

java - 语言建模工具包

python - 前馈神经网络语言模型

elasticsearch - LM在 Elasticsearch 中

tensorflow - 如果所需的setuptools版本早于默认版本,如何安装Keras?