0

我有一个大数据集。它目前采用未压缩的 numpy 数组文件的形式,使用numpy.array.tofile(). 每个文件大约有 100000 行,每行 363 个浮点数。有 192 个文件,总计 52 Gb。

我想将这些数据的随机五分之一分成一个测试集,并将该测试集的随机五分之一分成一个验证集。

另外,我一次只能训练 1 Gb(GPU 板载内存的限制)所以我​​需要随机化所有数据的顺序,这样我就不会通过按顺序训练数据来引入偏差集。

我的主内存大小为 8 Gb。任何人都可以推荐一种随机化和分区这个巨大数据集的方法吗?

4

2 回答 2

1

我在 External shuffle 找到了我需要的答案:将大量数据从内存中洗牌

基本上,您会找到一个对于数字来说足够随机的哈希(在这种情况下,我使用的是Murmur3),然后您应用外部合并排序。

于 2013-03-20T00:43:45.473 回答
0

您可以为每一行分配一个唯一的序列号,然后从这些数字中选择一个随机样本,然后将每个相关行连续提取到一个新文件中。

于 2013-03-20T00:35:23.283 回答