首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CTC + BLSTM架构在第一阶段前暂停/挂起

CTC + BLSTM架构在第一阶段前暂停/挂起
EN

Stack Overflow用户
提问于 2019-12-19 20:15:08
回答 1查看 255关注 0票数 0

我正在研究一个识别在线手写识别的代码。它与CTC丢失函数和字束搜索(自定义实现: githubharald)一起工作。

TF版本: 1.14.0

以下是所使用的参数:

代码语言:javascript
复制
batch_size: 128
total_epoches: 300
hidden_unit_size: 128
num_layers: 2
input_dims: 10 (number of input Features)
num_classes: 80 (CTC output logits)
save_freq: 5
learning_rate: 0.001
decay_rate: 0.99
momentum: 0.9
max_length: 1940.0 (BLSTM with variable length time stamps)
label_pad: 63

我面临的问题是,在将解码器从CTC贪婪解码器更改为字束搜索之后,我的代码在执行特定步骤后就会停止。它没有显示出第一个时代的输出,而是停留了大约5-6个小时。

它在后面的步骤:tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcublas.so.10

我正在使用Nvidia DGX-2来训练(名称:TeslaV100SXM3-32GB)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-21 20:20:57

这是报纸描述词束搜索,也许它包含了一些有用的信息给你(我是论文的作者)。

我将把你的任务分为两部分:

  1. 光学模型,即通过“看”来训练一个尽可能善于阅读文本的模型。
  2. 语言模型,即使用足够大的文本语料库,使用足够快的解码器模式。

要为第(1)部分选择最佳模型,使用最佳路径(贪婪)解码进行验证就足够了。如果最佳路径包含错误的字符,那么波束搜索也很有可能无法恢复(即使使用语言模型)。

现在转到第(2)部分。关于字束搜索的运行时:您正在使用"NGramsForecast“模式,这是所有模式中最慢的。它有运行时间O(W*log(W)),W是字典中的单词数。"NGrams“有O(log(W))。如果您查看该论文并转到表1,您会发现当使用预测模式("NGramsForecast“或"NGramsForecastAndSample")时,运行时会变得更糟,而字符错误率可能会更好,也可能不会更好。“Word”模式有90ms运行时,而"NGramsForecast“对于IAM数据集有超过16s )。

对于实际用例,我建议如下:

  • 如果你有一本字典(意思是一个唯一单词的列表),那么使用“单词”模式。
  • 如果您有一个包含目标语言中足够多句子的大型文本语料库,则使用"NGrams“模式。
  • 不要使用预测模式,而是使用“Word”或"NGrams“模式,如果需要更好的字符错误率,则增加波束宽度。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59416387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档