PythonMania

普段はロボットとAIを組み合わせて色々作ってます。Python関係以外も色々投稿していくと思います。

【Python】Kerasで学習したモデルをアプリに組み込む際の注意点【DeepLearning】

f:id:mizuhiki0111:20190430180019p:plain



学習済のモデルをアプリに組み込んで使おうとしたときに以下のようなエラーが出ることがある。




Cannot interpret feed_dict key as Tensor


これはkerasがスレッドセーフではないために、読み込んだモデルが別のスレッドでは動作しないために発生するエラーである。


解決策として推論の度にモデルを呼び出すのではなく、

事前にモデルを読み込んでコンパイルしておく方法が良いらしい。




以下のようなコードで解決しました。


model = model_from_json(open("~/model.json", 'r').read())
model.load_weights("~/resnet50_model.h5")
model._make_predict_function()