Open Power886 opened 3 years ago
这个问题我没有做过测试(我没有大型数据集文件)。另外,我觉得出现问题的地方应该不是在generate_inputs时,而是在从文件读取至datas时,如果这部分不oom,后续的基本也不会有问题。Pytorch的Dataset加载数据是按需加载。
当然如果出现爆内存的情况,我觉得可以修改data_generator
函数的逻辑,比如改为直接用Pytorch的Dataset和Dataloader读取转化数据,将转化逻辑卸载Dataset的collate_fn
参数中。
我测了下 我120G内存,会爆掉
我测了下 我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处理数据,不用预先全部处理。
你可以试试将generate_inputs放在collate_fn中,即在generate_batch函数里调用generate_inputs。这样可以按batchsize处理数据,不用预先全部处理。 ok 已经解决了
解决方案可以在这里分享一下吗,给后续有需要的同学,或者可以提交个PR。
修改一下就没有问题了
您好,请问和CRF对比的话,单核CPU的推理速度快多少呢,我在英文测试集中的推理速度反而比CRF慢
我理解globalpointer的优势应该不在推理速度,而是crf解决序列标注不能处理的实体嵌套问题。如果你想更快的推理速度,可以试试bert+span模型只预测头尾位置。
你在generate_inputs时一次性加入所有的labels会不会导致内存爆啊,就如CMeEE数据集而言,13000 9 256 256 8=66GB