微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何逐行读取数据并添加到批量编码中避免内存错误

如何解决如何逐行读取数据并添加到批量编码中避免内存错误

我有一个文本文件,要由转换器进行训练。我已经构建了我的标记器。

from transformers import LineByLineTextDataset
dataset = LineByLineTextDataset(
    tokenizer=tokenizer,file_path="test.txt",block_size=128
)

我不想将文本文件作为一个整体读取,而是逐行读取以避免内存错误。这是将数据作为一个整体读取时:

with open(file_path,encoding="utf-8") as f:
        lines = [line for line in f.read().splitlines() if (len(line) > 0 and not line.isspace())]



batch_encoding = tokenizer(lines,add_special_tokens=True,truncation=True,max_length=block_size)
    print(batch_encoding)
self.examples = batch_encoding["input_ids"]
self.examples = [{"input_ids": torch.tensor(e,dtype=torch.long)} for e in self.examples]

如何逐行读取数据但得到相同的结果?我想通过线路上的循环获得批量编码。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。