首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在tensorflow序列模型中添加CRF层?

如何在tensorflow序列模型中添加CRF层?
EN

Stack Overflow用户
提问于 2019-11-24 15:30:00
回答 1查看 6.8K关注 0票数 5

我试图在TensorFlow顺序模型中实现一个CRF层,以解决NER问题。我不知道该怎么做。以前,当我实现CRF时,我使用以tensorflow为后端的keras中的CRF,即我在keras中创建了整个模型,而不是tensorflow,然后通过CRF传递整个模型。啊,真灵。

但是现在我想在Tensorflow中开发模型,因为Tensorflow 2.0.0 beta已经内置了keras,我正在尝试构建一个顺序层,并在双向lstm层之后添加CRF层。虽然我不知道该怎么做。我已经看过tensorflow加载项中的CRF文档,它包含不同的功能,如前向CRF等,但不确定如何将它们作为一个层来实现?我想知道在顺序的tensorflow模型中是否有可能实现CRF层,还是需要从头开始构建模型图,然后使用CRF函数?有人能帮我一下吗。提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-18 05:16:13

在培训过程中

您可以参考这个API

代码语言:javascript
复制
tfa.text.crf_log_likelihood(
    inputs,
    tag_indices,
    sequence_lengths,
    transition_params=None
)

输入是一元势(就像logistic回归中的那样,您可以参考这个答案),在这里,它们是逻辑(通常不是softmax激活函数之后的分布)或编码器中每个字符(上图中的P1、P2、P3、P4 )的状态;

tag_indices是目标标记索引,sequence_lengths表示批处理中的序列长度。

transition_params是二进制势(也是标记从一个时间步骤转换到另一个时间步骤的方式),您可以自己创建矩阵,也可以让API为您创建矩阵。

在推理过程中的

你只要利用这个API

代码语言:javascript
复制
tfa.text.viterbi_decode(
    score,
    transition_params
) 

分数代表着与训练相同的输入( P1,P2,P3,P4状态),transition_params也是在训练过程中训练的。

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

https://stackoverflow.com/questions/59019290

复制
相关文章

相似问题

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