如何解决快速保存/加载无符号整数列表
我有一个无符号整数列表,其中每个列表代表文本中的句子,每个整数表示与单词相关的唯一ID。
我需要根据这些“句子”在pytorch Dataset
中创建(目标,上下文)或(目标[[c1,c2,...,cN])对。
目前,我使用pickle
模块存储这些句子,并在创建Dataset
实例时读取了所有句子(如果我有很多句子的话,这对于内存是不好的)。
我也已经尝试过依次保存和读取它们,一次一次“句子”到同一文件(由于连续不断地从磁盘读取,所以很糟糕)。
我还尝试将它们保存到txt文件中,并一次加载一个句子,然后使用map(int,line)
重新创建列表(但由于从磁盘读取和处理时间的原因,我认为这很糟糕)。 br />
有没有一种方法可以尽可能高效地保存和读取它们,从而节省内存并提高加载速度?
还是有办法部分加载一个pickle文件,例如,加载前N行并将其转换回它们代表的列表对象?
谢谢大家
编辑
回答@Jerome的问题:
- 您是否拥有Python 2或Python 3? Python 3
- 您需要文件可在多台计算机或OS上移植吗?否
- 您要精确加载什么(例如,提取一个列表或所有列表中的一项,或者仅提取一项,等等)?我需要一次获取一个列表,然后从中构造一批(上下文,目标)单词的示例,以将其输入到PyTorch模型中,因此我需要列表中的所有项目,而且我需要所有这些项目
- N和每个列表的平均大小是多少? N取决于
window size
的超参数,其范围可以从2到10或20。每个列表的平均大小大约为1000个整数,但即使这个数字也取决于多个因素(单词频率等)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。