問題タブ [numpy-memmap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
528 参照

deep-learning - 深層学習におけるデータ読み込み方法の効率を比較する

ネットワークをトレーニングするために時系列データセットを読み込む必要があります。生データからこれらのファイルを抽出するときのメモリの問題のため、データセットは多くのチャンク、、、、(41 チャンク)にtrain_x_0.npy分割されました。ただし、サイズが大きすぎて (約 1000 GB)、すべてを RAM にロードできませんでした。この問題を解決するために、私は2つの方法を考えてきました。train_x_1.npytrain_x_40.npy.npy

  1. np.load()with argumentを使用してデータ チャンクをロードしますmmap_mode='r+'。メモリ マップされたチャンクは Python list に格納されますself.data__getitem__(self, idx)PytorchクラスのメソッドではDataset、 と に変換idxchunk_idxsample_idxでサンプルを取得しますself.data[chunk_idx][sample_idx]
  2. 生データからファイルを再度抽出.npyし、データをサンプルごとに保存します。つまり、1 つの.npyファイルが 1 つのサンプルであり、データ チャンクではありません。メソッドでは__getitem__(self, idx)、 を使用してロードすることで 1 つのサンプルを取得しnp.load(sample_path)ます。

PytorchDataLoaderを使用してすべてのサンプルを反復処理すると仮定すると、どの方法がより高速になりますか?

生データの抽出またはファイルのロードに関する別の提案がある場合は.npy、ご意見をお聞かせください。