【问题标题】:How should I divide a large (~50Gb) dataset into training, test, and validation sets?我应该如何将大型(~50Gb)数据集划分为训练、测试和验证集?
【发布时间】:2013-03-20 08:43:45
【问题描述】:

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

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

此外,我一次只能在 1 Gb 上训练(GPU 板载内存的限制)所以我​​需要随机化所有数据的顺序,这样我就不会通过对为了收集它。

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

【问题讨论】:

    标签: python numpy dataset


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我不能这样做,因为查找操作太慢了。
      猜你喜欢
      • 2019-05-01
      • 2019-10-15
      • 2017-09-30
      • 1970-01-01
      • 2016-07-04
      • 1970-01-01
      • 2015-03-23
      • 2022-11-10
      • 2013-09-27
      相关资源
      最近更新 更多