2017-08-31 26 views
3

kerasのモデルをmodel.load()でロードしていて、最初の予測が計算に10倍以上かかるこれが発生する可能性のある考え方や、ロード初期化の最初の予測サイクルを高速化するための提案は、非常に高く評価されます。kerasはmodel.load()の後に最初の予測を行うのに非常に時間がかかります

CPU処理でTensorflowバックエンドを使用しています。あなたは多くのモデルをロードしている場合は、同時に保存、keras model.load機能を使用していない

:OK助けを

おかげで、 Denym

+0

最初の予測ではなく、読み込みに時間がかかりすぎますか? 「最初の予測」とはどういう意味ですか? 'model.predict()'を複数回実行していますか? – McLawrence

+0

保存したモデルをmodel.load()で読み込み、データセットを構築してmodel.predict()を実行した後、データセットを変更して別の予測を実行した後、データセットを変更して別の予測を実行します。 model.loadは非常に迅速に完了したように見えますが、最初の予測では、予測に従うたびに約10倍の時間がかかります。 – Denym

+0

どのようにデータセットを変更しますか?同じサイズを予測するすべてのデータセットですか? – McLawrence

答えて

0

ので、私は私の作品の答えを発見しましたあなたの構造はjson/yamlとして、重みは.h5として、ケラスの例に応じて読み込みます。

モデルが5つ未満のモデルを扱う場合は、モデルの読み込み機能がはるかに速いですが、同時にロードするモデルの数が指数関数的に増加します。

ロード時に100個のモデルを同時にロードすると、jsonからのロードと.h5からのロードが10倍速くなりました。ストラクチャとウェイトのロード時にモデルごとにいくつかのスローダウンがありましたが、指数ではなく線形です。一度にモデル化。

+0

あなたはモデルの読み込み時間についてここで話していますが、最初にあなたは予測時間について不平を言っていました...私は単一のモデルの私のケースでは、model.predictへの最初の呼び出しが〜5秒かかり、約0.9秒かかる...私はあなたがこれのための解決策を見つけたのだろうか? –