Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问博主,测试样本有650条,但是输出output文件只有645个结果,请问是哪里被截断了吗? #7

Open
pymLovelyq opened this issue Jun 12, 2021 · 8 comments

Comments

@pymLovelyq
Copy link

loading weights file bert/chinese_bert/pytorch_model.bin
[2021-06-11 21:12:15,450 INFO] loading Word2VecKeyedVectors object from pretrain_emb/word2vec
[2021-06-11 21:12:15,493 INFO] setting ignored attribute vectors_norm to None
[2021-06-11 21:12:15,493 INFO] loaded pretrain_emb/word2vec
[2021-06-11 21:12:20,943 INFO] Loading test dataset from bert_data/ali.test.0.bert.pt, number of examples: 650

结果只有645个输出,然后对比了下,发现是样本中不是存在中间某几个测试样本被抛弃了?还是没有生成?
个人初步怀疑是对话太长了,导致整个被截断了,然后没有生成?
但是改了几个参数,发现max设置成很大,依然只有645个样本输出,请问博主知道是什么问题吗?或者有什么思路?谢谢!!!

(测试另外一个数据集,也出现类似的情况,少了10条测试样本的结果数据)

@RowitZou
Copy link
Owner

参考代码 models/data_loader.py 的 352行至369行,出现这种情况的原因可能是:某一个 example 的 token 总数目超过了 batch size(训练时默认是 2000,测试时默认是 20000),就会将其丢弃,否则可能会 OOM。

另一种可能的原因是,preprocess 时,对话的句子数目小于参数-min_turns 的设置值,就会将其丢弃。但此参数默认是1,只要对话有至少一句话,就会将其保留,除非数据有噪声导致此 example 为空。

@pymLovelyq
Copy link
Author

preprocess 时,对话的句子数目小于参数-min_turns 的设置值,就会将其丢弃,是不是也说明如果max_turns大于默认值100,也会丢弃?

@RowitZou
Copy link
Owner

max_turns 大于100,后续句子会被截断。

@pymLovelyq
Copy link
Author

尝试了修改batchsize,还是原样,650个测试样本,总是得到645个结果输出。是不是跟模型初始训练有关,是不是初始训练时候就要正确的参数,不然仅仅靠测试时修改参数也没有影响。

@RowitZou
Copy link
Owner

测试和训练使用的数据格式相同,使用了同样的预处理和数据载入过程。如果训练没有问题,测试也应该没有问题。

  1. 可以检查是否在训练时也出现了部分训练数据被舍弃的现象。
  2. 为测试样例添加标记,查看是哪些样例被丢弃。
  3. 检查ali.test.0.bert.pt是否有650个样例,如果有,说明样例在数据载入后被丢弃,如果没有,说明样例在数据处理时就被丢弃。

@pymLovelyq
Copy link
Author

确定ali.test.0.bert.pt有650个样例,应该是载入后被丢弃。修改了载入后处理数据的代码,发现并不奏效,不知道是哪一部分的代码强制丢弃了。。。

@RowitZou
Copy link
Owner

建议先找出被丢弃的具体样例,然后将其整合成一个小测试集(由被丢弃的样例组成)。再输入模型进行单步调试。

@SCU-JJkinging
Copy link

确定ali.test.0.bert.pt有650个样例,应该是载入后被丢弃。修改了载入后处理数据的代码,发现并不奏效,不知道是哪一部分的代码强制丢弃了。。。

请问您最后解决了吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants