2017-12-21 5 views
0

私はMLプロジェクトに取り組んでおり、Tensorflowを使ってkerasを使っています。私は、Python 3.5私のローカルWindowsマシンでモデルを保存し、モデルをバーチャルマシン(3.5も稼働している)にコピーして、モデルを予測に使用する必要があります。Keras>別のPythonバージョンの別のマシンで訓練されたモデルを使用

タスクは非常に明確で簡単ですが、predict関数を呼び出すときにエラーが発生します。

ValueError: Tensor Tensor("activation_1/Sigmoid:0", shape=(?, 1), dtype=float32) is not an element of this graph. 

私はそれは、プラットフォームの違いの問題かもしれないと思ったので、私は(Pythonの3.4で)Linuxマシン上で私のモデルを訓練し、私はまだ予測する仮想マシン上で同じエラーを取得します。

エラーの原因がOSやPythonのバージョンの違いなのか、それとも別のものなのでしょうか?それぞれのプラットフォームで別々にトレーニングをモデル化し、保存し、読み込みと予測をうまく動作させます。

+0

2つの質問 1.同じマシンで動作すると言うと、モデルのシリアル化が含まれますか? 2.ピックル/ JSONを使用してモデルを保存していますか? 実際には、3つの質問...あなたのモデルの入口層は何ですか? –

+0

1.はい、私はモデルとpythonセッションを閉じて保存します。その後、別のPythonセッションからロードします。 2. JSONを使用してアーキテクチャを保存し、h5をウェイトに使用します。入口層は、256個のニューロンを有する「密」である。 – nabroyan

+0

何が問題なのかわからない、うまくいくはずです。 –

答えて

0

保存部に問題があることが判明しました。私は、ウェブ上でいくつかの検索を行うと、私はその部分を削除した、いくつかの異なるアドバイスをしようとした後、最適なモデル

model.fit(..., callbacks = [ModelCheckpoint(filepath='model.h5', save_best_only=True)]) 

を保存するためのModelCheckpointコールバックを使用していたし、モデルを保存し、次のように

model.save('model.h5') 

にこれを解決しました問題。

関連する問題