增量保存序列化数据的正确方法

时间:2018-07-12 13:43:40

标签: python memory scikit-learn pickle feature-extraction

这必须是一个非常标准的问题,也必须有一个标准的解决方案:

增量保存从数据中提取的特征向量,而不是累加形成整个数据集的所有向量并然后一次保存所有向量的正确方法是什么? / p>

详细信息:

我已经编写了一个脚本,用于从文本文档中提取文字文本特征(例如next_tokenprefix-3is_number)。提取完成后,我得到一大堆scipy稀疏向量。最后,当我想训练模型时,我会腌制该列表以有效地存储空间并在时间上有效地加载它。但是问题是,我在这里受到公羊的限制。我只能使矢量列表变得如此之大,否则酸洗会超出我的内存。

当然可以将这些向量的字符串表示形式增量附加。一个人可以累积k个向量,将它们附加到文本文件中,然后为下一个k个向量再次清除列表。但是存储向量和字符串空间效率低下,并且需要在加载时解析表示形式。听起来这不是一个好的解决方案。 我还可以腌制k个向量的集合,最后得到一堆k个向量的泡菜文件。但这听起来很混乱。

因此,这必须是带有更优雅解决方案的标准问题。解决此问题的正确方法是什么?在scikit-learn中甚至可能已经存在一些我已经忽略的功能,而我却忽略了这种情况?

我发现了这个:How to load one line at a time from a pickle file?

但是它不适用于Python3。

0 个答案:

没有答案