Python 如何存储和访问经过训练的神经网络

Python 如何存储和访问经过训练的神经网络,python,neural-network,keras,Python,Neural Network,Keras,我最近刚开始和keras一起学习python上的NN,我有一个非常明显的问题,似乎从来没有人提到过它的答案 问题很简单 获取数据、构建模型和培训网络后会发生什么? 每个教程都会对此进行详细介绍,但永远不要提及如何使用经过培训的模型或在之后如何存储它。 例如,我用keras编写了一个简单的代码来训练MNIST上的网络: model = Sequential() model.add(Convolution2D(32, kernel_size=3,data_format="channels_fir

我最近刚开始和keras一起学习python上的NN,我有一个非常明显的问题,似乎从来没有人提到过它的答案

问题很简单

获取数据、构建模型和培训网络后会发生什么?
每个教程都会对此进行详细介绍,但永远不要提及如何使用经过培训的模型或在之后如何存储它。
例如,我用keras编写了一个简单的代码来训练MNIST上的网络:

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)
现在,我如何存储最终的网络并在关闭编辑器后再次重用它

例如,如果我想构建一个简单的web界面来上传MNIST图片,并通过预先训练的模型运行它,然后检测答案

我如何用Python存储经过训练的模型,用JS或php访问它,通过它运行上传的图片,并将输出返回给用户


谢谢,如果我的问题看起来愚蠢或明显,请道歉。

这是一个如何在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))