0

大規模なデータセットがあります。現在、 で作成された圧縮されていない numpy 配列ファイルの形式になっていますnumpy.array.tofile()。各ファイルは、それぞれ 363 個の float の約 100000 行です。合計 52 Gb の 192 個のファイルがあります。

このデータのランダムな 5 分の 1 をテスト セットに分け、そのテスト セットのランダムな 5 分の 1 を検証セットに分けたいと思います。

さらに、一度に 1 Gb でしかトレーニングできません (GPU のオンボード メモリの制限) そのため、すべてのデータの順序をランダム化して、データを元の順序でトレーニングすることによって偏りが生じないようにする必要があります。集めました。

私のメインメモリのサイズは 8 GB です。この巨大なデータセットをランダム化して分割する方法を推奨できますか?

4

2 に答える 2

1

外部シャッフルで必要な答えを見つけました:メモリから大量のデータをシャッフルする

基本的に、数値に対して十分にランダムなハッシュを見つけて (この場合はMurmur3を使用しています)、外部マージ ソートを適用します。

于 2013-03-20T00:43:45.473 に答える
0

各行に一意の連続番号を割り当て、それらの番号のランダムなサンプルを選択してから、関連する各行を新しいファイルに連続して抽出できます。

于 2013-03-20T00:35:23.283 に答える