問題タブ [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.
deep-learning - 深層学習におけるデータ読み込み方法の効率を比較する
ネットワークをトレーニングするために時系列データセットを読み込む必要があります。生データからこれらのファイルを抽出するときのメモリの問題のため、データセットは多くのチャンク、、、、(41 チャンク)にtrain_x_0.npy
分割されました。ただし、サイズが大きすぎて (約 1000 GB)、すべてを RAM にロードできませんでした。この問題を解決するために、私は2つの方法を考えてきました。train_x_1.npy
train_x_40.npy
.npy
np.load()
with argumentを使用してデータ チャンクをロードしますmmap_mode='r+'
。メモリ マップされたチャンクは Python list に格納されますself.data
。__getitem__(self, idx)
PytorchクラスのメソッドではDataset
、 と に変換idx
しchunk_idx
、sample_idx
でサンプルを取得しますself.data[chunk_idx][sample_idx]
。- 生データからファイルを再度抽出
.npy
し、データをサンプルごとに保存します。つまり、1 つの.npy
ファイルが 1 つのサンプルであり、データ チャンクではありません。メソッドでは__getitem__(self, idx)
、 を使用してロードすることで 1 つのサンプルを取得しnp.load(sample_path)
ます。
PytorchDataLoader
を使用してすべてのサンプルを反復処理すると仮定すると、どの方法がより高速になりますか?
生データの抽出またはファイルのロードに関する別の提案がある場合は.npy
、ご意見をお聞かせください。