Open dh12306 opened 5 years ago
max_seq_len 直接改就行。你用生成的predict.txt 去做submit.txt。卡住的地方,自己人工看原因,解决就行了。没有几条的,有可能是模型还是有点小问题。
max_seq_len 直接改就行。你用生成的predict.txt 去做submit.txt。卡住的地方,自己人工看原因,解决就行了。没有几条的,有可能是模型还是有点小问题。
改了报错啊,二楼
我改成过300,没有报错.可能是别的参数不太对吧. 我猜是5个epoch的问题.你得增加增加
关于句子长度问题:语料库、训练集、测试集中的句子长度在200以下的占比在96%-98%之间。与训练所需时间相比,这个长度我觉得是比较合理的。所以在训练模型的时候我把句子长度定为200。当然,对于长度大于200的句子,超过200之后的实体肯定是被丢弃掉了,但这个在最后的成绩中并不会是占主导因素。如果你有更好的机器,那你句子长度可以更大,我之前统计的是如果你设置为512,可以覆盖所有的训练和测试集。
第二个问题:由于设置的学习率比较小,lstm的学习速度会比较慢,如果迭代次数比较小的话会出现大量的错误标签,而我写的标签转换方法只考虑了生成的标签符合规则。出现不符合规则的标签样式肯定是不能自动转换,这个时候就需要你手动去改为正常的样式。
比如,在正常规则下,a-B 后面只能跟a-E a-M 这两种标签,如果出现其它的标签你可以大概判断一下后面接哪个,改为正确的就行。
关于句子长度问题:语料库、训练集、测试集中的句子长度在200以下的占比在96%-98%之间。与训练所需时间相比,这个长度我觉得是比较合理的。所以在训练模型的时候我把句子长度定为200。当然,对于长度大于200的句子,超过200之后的实体肯定是被丢弃掉了,但这个在最后的成绩中并不会是占主导因素。如果你有更好的机器,那你句子长度可以更大,我之前统计的是如果你设置为512,可以覆盖所有的训练和测试集。
第二个问题:由于设置的学习率比较小,lstm的学习速度会比较慢,如果迭代次数比较小的话会出现大量的错误标签,而我写的标签转换方法只考虑了生成的标签符合规则。出现不符合规则的标签样式肯定是不能自动转换,这个时候就需要你手动去改为正常的样式。
比如,在正常规则下,a-B 后面只能跟a-E a-M 这两种标签,如果出现其它的标签你可以大概判断一下后面接哪个,改为正确的就行。
get~,谢谢
如题,训练了5个epoch,生成submit时,发现第79行的预测有问题,因为max_seq_len=200,当文本长度大于200时,预测结果只有198个,submit的样本最大长度436,当改了max_seq_len的时候,就会报错,大概是维度不匹配的错,如下图,想请教下@wenyu332 大神这个max_seq_len 改了之后还需要改哪里: gpu 报错如下:
cpu 报错如下: