问题描述
我有一个文本文件,要由转换器进行训练。我已经构建了我的标记器。
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 (将#修改为@)