博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
双向lstm-crf源码的问题和细微修改
阅读量:5860 次
发布时间:2019-06-19

本文共 800 字,大约阅读时间需要 2 分钟。

别人的源码地址:https://github.com/chilynn/sequence-labeling/

如果你训练就会发现loss降到0以下,按照他设定的目标函数,loss理论上应该是大于0的,仔细详细读源代码后,发现了问题所在(helper.py中):

def getTransition(y_train_batch):    transition_batch = []    for m in range(len(y_train_batch)):        y = [5] + list(y_train_batch[m]) + [0]        for t in range(len(y)):            if t + 1 == len(y):                continue            i = y[t]            j = y[t + 1]            if i == 0:  #改为j==0                break            transition_batch.append(i * 6 + j)    transition_batch = np.array(transition_batch)    return transition_batch

源码中标红的地方应该改成   j==0 ,因为用i==0会让目标路径多加了一个最后一个字母到填充符的转移量,而计算整体路径得分只计算到最后一个字母自身得分没有加之后的转移得分,所以改后的loss最终降到0(int类型显示的其实稍微大于0),没有降到0以下,符合理论和预期,这个修正对大样本的最终的正确率有没有影响我还没试过,有兴趣的可以试一下

转载于:https://www.cnblogs.com/tomsonsgs/p/7263412.html

你可能感兴趣的文章
页面滚动条滚动后返回事件----JS
查看>>
攻读计算机研究生的合理性
查看>>
LVS负载均衡(5)——LVS+Keepalived
查看>>
转发接口或下一跳网关的使用情况
查看>>
Windows Phone 8 常用UI控件 (一)
查看>>
CSS渐变色效果的实现方法与效果演示
查看>>
Sort如何进行排序,如何根据出现次数取IP
查看>>
fedora15 ubuntu 11.04
查看>>
composer遇到Your configuration does not allow connection to http://的问题怎么解决
查看>>
Cobbler-CentOS6.7-无人值守安装
查看>>
我的友情链接
查看>>
Python装饰器(Decorate)使用图解
查看>>
簡單使用 tcpdump GNU Linux 範例
查看>>
飞机大战源码
查看>>
Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境
查看>>
LINUX-DHCP中继-超级作用域
查看>>
如何建立域信任关系
查看>>
pycharm license activation
查看>>
java异常机制 及 浅谈嵌套try-catch
查看>>
基于 Node.js 的轻量「持续集成」工具 CIZE
查看>>