2017-05-12 10 views
2

ラムよりも大きいニューラルネットワークを訓練する方法について、具体的な質問があります。ケラスとテンソルフローのようなデファクトスタンダードを使いたいです。具体的には、ラムよりも神経ネットワークを鍛える方法は?

  1. キークラスと私は私のわずかな8ギガバイトのRAMを超えないようにするためにkerasに、パンダ、h5pyに、scipyのダウンロードし、numpyのから を使用する必要があります方法は何ですか?モデルをトレーニングする時間があります。私は現金を持っていません。データセットには200 GBのRAMが必要です。

  2. ケラスでは、model_fit()メソッドがあります。 XとYのnumpy配列が必要です。ディスク上にhdf5 numpy配列を受け入れるにはどうしたらいいですか?また、モデルアーキテクチャ自体を指定するときに、作業メモリが8GBを超える時間を必要としないため、RAMを節約するにはどうすればよいですか?

  3. fit_generatorに関しては、hdf5ファイルを受け入れますか? model_fit()メソッドがhdf5を受け入れることができる場合は、ジェネレータに適合する必要がありますか?これらの方法でもモデル全体をRAMに収める必要があるようです。

  4. kerasでは、モデルにはそのメモリ要件を計算する際のトレーニングデータが含まれていますか?もしそうなら私は困っていると思う。本質的には

私は時間がない時、私はどうか1つのホットエンコーディングからのサンプルでも小ロットでのトレーニングにモデルをロードするには、ラムの私の8ギガビットを超える可能性があるという仮定の下にいます。私はこれを具体的に達成する方法がわかりません。

+1

あなたのニューラルネットワークはRAMよりも大きくトレーニングデータはRAMよりも大きいですか? –

+0

あなたのデータは何ですか? –

答えて

0

私はすべてに答えることができません。私もその8GBの問題に直面しているので、これらの答えにも非常に興味があります。

私は一度に少しのバッチを渡す方法しか示唆できません。

質問2:

私はKerasがh5pyファイルを渡すサポートします(ただし、私は本当に知らない)とは思いませんが、ファイルが正しく保存されている場合は(load the file partiallyにループを作成することができますそのために)。それだけで少し配列を渡す方法train_on_batchを使用したファイル

  • から1つまたは2つのサンプルと少し配列を作成

    • あなたがに外側のループを作成することができます。

    • 配列のメモリーを解放するか、この同じ配列を次のサンプルで埋めます。

    質問3:

    はまたh5pyファイルについて知らない、ファイルにPythonのジェネレータを開き、オブジェクトがありますか?

    そうでない場合は、generatorを自分で作成することができます。

    考え方は、ジェネレータをファイルの一部だけにロードし、1つまたは2つのデータサンプルを含むバッチ配列を生成しないことです。 (質問2で行われたのとほぼ同じですが、ループはジェネレータの内部に入ります。

  • +0

    私は以来、pysparkを使用しています。アルゴリズムはすべてのニューラルネットワークオプションがなければさらに基本的ですが、私はまだアルゴリズムの重要性が低く、より多くのデータが役立つ段階にあります。私はアルゴリズムが最も重要なケースを個人的に見ていませんでした。 – user798719

    0

    通常、非常に大きなサンプルセットの場合、「オンライン」トレーニング方法が使用されます。これは、大規模なバッチであなたのニューラルネットワークを訓練する代わりに、より多くのサンプルが得られるにつれて、ニューラルネットワークが段階的に更新されることを可能にすることを意味します。参照:確率的勾配降下

    関連する問題