桐原因

Results 63 comments of 桐原因

在train的时候不去管他,在test的时候,如果有wordPiece出现,只保留第一个词。这样保证词的数量不变

if mode == "test" and len(token) > 1: token = token[0]

不好意思,之前没看到。 在train的时候,就是不考虑是否和之前的句子长度是否一样长,所以可以删掉你的这个assert。 在test的时候为了保证标签的输出一致,所以我只考虑了第一个分词

可以尝试一下这样的做法。个人认为影响不是太大

@lshowway 请问这个问题你是怎么解决的?

> 我测了下 我120G内存,会爆掉 请问你现在解决了这个问题嘛?我加载大的数据集也会爆掉

> 这个问题我没有做过测试(我没有大型数据集文件)。另外,我觉得出现问题的地方应该不是在generate_inputs时,而是在从文件读取至datas时,如果这部分不oom,后续的基本也不会有问题。Pytorch的Dataset加载数据是按需加载。 当然如果出现爆内存的情况,我觉得可以修改`data_generator`函数的逻辑,比如改为直接用Pytorch的Dataset和Dataloader读取转化数据,将转化逻辑卸载Dataset的`collate_fn`参数中。 训练数据:3万2千数据,加载到datas中没有问题,问题在generate_inputs的时候内存不足。

> > > > 你可以试试将generate_inputs放在collate_fn中,即在generate_batch函数里调用generate_inputs。这样可以按batchsize处理数据,不用预先全部处理。 ok 已经解决了

![image](https://user-images.githubusercontent.com/43271630/160241430-103acd44-d2fb-4510-b8f7-0477556cd2a4.png) ![image](https://user-images.githubusercontent.com/43271630/160241437-e568a4c1-9320-4b77-8e4f-17912ddd40ad.png) ![image](https://user-images.githubusercontent.com/43271630/160241445-853fbc42-9d10-4dc6-98c7-659222da88ef.png)

修改一下就没有问题了