2017-04-21 1 views
0

私は文の予測感覚のためにナイーブベイズアルゴリズムを使用しています。私は将来の使用のためのモデルを作成しています。私はcpickleを使ってモデルを保存しています。しかし、文を読み込んで予測すると、時間がかかりすぎる。約100MBの.pklファイルをロードするには時間がかかります。 3つのモデルがあります。私はPythonでFlaskマイクロサービスを使用しています。したがって、各要求(.pkl)ごとにロードして出力します。要求ごとに約30-45秒かかります。Naive Bayesモデル(.pkl)が予測に時間がかかりすぎる

def predict(sentence): 
    test = cPickle.load(open('model.pkl')) 
    print test.predict([sentence])[0] 
    print max(test.predict_proba([sentence])[0]) 

私はまた、要求の前にモデルをロードしようとしましたが、WSGIサーバは毎回新しいフラスコのインスタンスを起動すると、それはメモリにモデルをロードします。それはあまりにも多くのメモリを必要とする。

私の質問は、私はRedisの/任意のDbの
またはどのように私はcpickelファイルのロード時間を短縮することができ、モデルを保存することができますどのような方法があります
です。??

おかげ

答えて

0

それはすぐにサービス要求にメモリ内のモデルを保持するのが最善です。

新しいリクエストが来るたびに、他の方法ではモデルを読み込むしかないと言っているように、あなたのサーバーは非常に過負荷になります。

あなたが示唆しているように、モデルをメモリ内のソリューションであるredisに保存することは実際には良い考えです。

関連する問題