首页 文章

我应该如何将大型(~50Gb)数据集划分为训练,测试和验证集?

提问于
浏览
0

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

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

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

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

2 回答

  • 1

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

  • 0

    我在External shuffle: shuffling large amount of data out of memory找到了我需要的答案

    基本上,你找到一个足够随机的数字哈希(在这种情况下我使用Murmur3),然后你应用外部合并排序 .

相关问题