首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义层搜索模式断言错误

自定义层搜索模式断言错误
EN

Stack Overflow用户
提问于 2018-12-01 09:20:28
回答 1查看 58关注 0票数 1

我实现了一个自定义RETURNN层(HMM分解),它在培训期间按预期工作,但在搜索模式中使用时抛出一个断言错误。该层的输出与softmax层的输出相同。

下面是所使用的配置:变压器+ HMM分解

使用RETURNN的最新版本对此进行了测试。

失败的确切行是(代码链接):

代码语言:javascript
复制
assert fixed_seq_len is not None

这是全错误日志 (太大了,不能粘贴在这里)

这是培训初始化

有谁知道这个错误可能是什么吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-01 15:41:01

这实际上是RETURNN中的一个bug。我创建了一个拉请求这里来修复这个问题,并将其合并到现在。

问题不在于您的自定义层,而在于您的RecLayer中的一个层,它实际上是完全独立的,即这个层:

代码语言:javascript
复制
'encoder_int': {'activation': None,
                'class': 'linear',
                'from': ['base:encoder'],
                'n_out': 1000,
                'with_bias': False}

它只是依赖于一个基本层("base:encoder"),而不是其他。因此它(正确地)从循环循环中优化这一层,因为它是独立的。

但是,它会看到您正在访问循环中的这个层,而且随着时间的推移,这是一个循环,它假设这个循环是在"base:encoder"的这个时间维度上。然后,它尝试在rec层的seq中展开"base:encoder" (TensorArray.unroll),但是它失败了,因为此时它不知道rec层的seq。

现在,我的修正做了一些更高级的检查,检查这个假设是否正确,即循环确实在同一时间维度上。不过,检查有点脆弱,而且不确定这在所有情况下是否正确。但是,我创建了一个测试用例,它复制了您的问题,现在已经修复了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53569363

复制
相关文章

相似问题

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