2017-08-15 14 views
0

最近、kerasを使ってPythonでNNを学習し始めたばかりですが、誰もその答えを言及していないようです。訓練されたニューラルネットワークを保存してアクセスする方法

質問は非常に簡単です。

データを取得してモデルを作成し、ネットワークをトレーニングした後にはどうなりますか?
すべてのチュートリアルでこれを完全に実行しますが、訓練されたモデルの使用方法やそれ以降の格納方法は決して言及しません。

model = Sequential() 
model.add(Convolution2D(32, kernel_size=3,data_format="channels_first", 
activation='relu', input_shape=(1,28,28))) 
model.add(Convolution2D(32, (3 ,3), activation='relu')) 
model.add(MaxPooling2D(pool_size=(2,2))) 
model.add(Dropout(0.25)) 
model.add(Flatten()) 
model.add(Dense(128, activation='relu')) 
model.add(Dropout(0.5)) 
model.add(Dense(10, activation='softmax')) 
#compiling 
model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy']) 
#fitting and training 
model.fit(X_train, Y_train,batch_size=32, epochs=1, verbose=1) 

は今どのように私は、最終的なネットワークを保存しないと私は、エディタを閉じた後、再びそれを再利用:?例えば、私はMNISTにネットワークを訓練するためにkerasで、この単純なコードを書かれたので、

たとえば、単純なWebインターフェイスを構築して、MNISTピクチャをアップロードし、事前に訓練されたモデルを実行して回答を検出したい場合は、

トレーニングされたモデルをPythonで保存し、JSまたはPHPでアクセスし、アップロードされた画像を実行し、出力をユーザーに返します。

ご迷惑をおかけして申し訳ございません。

答えて

0

これは、あなたがJSONとH5にkerasであなたのニューラルネットワークを保存することができます方法の例です:

# serialize model to JSON 
model_json = model.to_json() 
with open("model.json", "w") as json_file: 
    json_file.write(model_json) 
# serialize weights to HDF5 
model.save_weights("model.h5") 
print("Saved model to disk") 

、これはあなたが再びそれを読み込むことができる方法です。

# load json and create model 
json_file = open('model.json', 'r') 
loaded_model_json = json_file.read() 
json_file.close() 
loaded_model = model_from_json(loaded_model_json) 
# load weights into new model 
loaded_model.load_weights("model.h5") 
print("Loaded model from disk") 

最後にあなたが評価することができます新しいテストデータのロードされたモデル:

# evaluate loaded model on test data 
loaded_model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy']) 
score = loaded_model.evaluate(X, Y, verbose=0) 
print("%s: %.2f%%" % (loaded_model.metrics_names[1], score[1]*100)) 
関連する問題