2016-10-11 3 views
0

私はKerasでニューラルネットワークを訓練しようとしています。 私のトレーニングセットは、数百万の疎ベクトルから構成されています。フィットしかし疎なデータを使ったKeras神経回路網

model.fit(X_train, y_train, ...) 

、()密なデータを操作する:

は、トレーニングを行うためには、私はmodel.fit()関数を使用します。したがって、ベクトルをネットワークに送る前にそれを動作させるために、それらを密ベクトルに変換します。

変換後はデータが大きくなりすぎてRAMに収まりません。

私はbatch_generatorを使用してネットワークをデータのまとまりにすることができます。しかし、私はそれを実行すると、のデータがの部分で実行されていない(テストセット上にある)結果が得られます(RAMに適合する)。

私の質問は:疎ベクトルに変換することなく、疎ベクトルを持つKerasニューラルネットワークを訓練する方法はありますか?

+2

は/ Xの上に直接取り付けるのと同じ結果が得られるはずですyアレイ。おそらくあなたがより良い結果をもたらすのは実際にはオーバーフィットのケースです(データの小さなサブセット)。 – aleju

+0

私はテストのために別のセットを使用しています。テストセットでオーバーフィットがうまくいくのはなぜですか?それは意味をなさない... – Noamiko

+0

あなたの記事は、あなたが列車またはテストセットでのパフォーマンスを意味するかどうかを明確にしていませんでした。また、デフォルトで 'fit()'はデータをシャッフルしますが、ある時点でジェネレータがそのことを行うようにしてください。 – aleju

答えて

0

Kerasの代わりにLasagneを使用できる場合は、非常に設定しやすく読みやすいthis Multilayer Perceptron classをご覧ください。

ドロップアウトし、中間層

をサポートしています

密と疎の両方の行列をサポートしていますが代わりにワンホットラベルの完全な確率分布は非常にマルチラベルのトレーニングをサポートサポートします。発電機を経由してフィッティング

API(フィット、予測、精度など)のようなscikitが学習をサポート

の構成および変更は非常に簡単です
関連する問題