- 标题:chunk_eval中的num_chunk_types取不同的值,训练loss差异不大,但是指标计算结果(F1、Precision、Recall)差异很大。
- 版本、环境信息:
1)PaddlePaddle版本:paddlepaddle-gpu-1.6.3.post107
2)python2.7.13
- 训练信息
1)单机单卡 K40
chunk_eval 这个op中的num_chunk_types参数,这个取值要怎么设置啊,我的真实label是7个,当我把num_chunk_types设置成3、4、5的时候,计算出来的结果差异很多,按理来说输入为4和5时应该出错才对 。
label=7, num_chunk_types=3
label=7, num_chunk_types = 4
label=7, num_chunk_types = 5
4条答案
按热度按时间t0ybt7op1#
` def forward(self, fields_dict, phase):
"""前向计算组网部分包括loss值的计算,必须由子类实现
:param: fields_dict: 序列化好的id
:param: phase: 当前调用的阶段,如训练、预测,不同的阶段组网可以不一样
:return: 一个dict数据,存放TARGET_FEED_NAMES, TARGET_PREDICTS, PREDICT_RESULT,LABEL,LOSS等所有你希望获取的数据
"""
instance_text_a = fields_dict["text_a"]
record_id_text_a = instance_text_a[InstanceName.RECORD_ID]
text_a_src = record_id_text_a[InstanceName.SRC_IDS]
text_a_pos = record_id_text_a[InstanceName.POS_IDS]
text_a_sent = record_id_text_a[InstanceName.SENTENCE_IDS]
text_a_mask = record_id_text_a[InstanceName.MASK_IDS]
text_a_task = record_id_text_a[InstanceName.TASK_IDS]
text_a_lens = record_id_text_a[InstanceName.SEQ_LENS]
`
0x6upsns2#
补充一下组网代码。chunk_eval应该只是指标计算,并不会影响反向传播吧?
mf98qq943#
chunk_eval应该只是指标计算,并不会影响反向传播吧?
是的,不会影响反向传播
chunk_eval 这个op中的num_chunk_types参数,这个取值要怎么设置啊,我的真实label是7个,当我把num_chunk_types设置成3、4、5的时候,计算出来的结果差异很多,按理来说输入为4和5时应该出错才对 。
使用IOB真实label是7个的话,num_chunk_types的正确设置应该3,输入为4和5时目前不会报错。请问7个label分别是什么呢
另外可否对num_chunk_types=3时指标不符合预期的case,在layers.chunk_eval前使用
layers.Print
使用出下贴出来,我们这边复现下b4lqfgs44#
嗯嗯,有的,方便的话你可以登我的机器看看,复现环境是好的。