title: How to save final model using keras?
body: <p>I use KerasClassifier to train the classifier.</p>
  
  <p>The code is below:</p>
  
  <pre><code>import numpy
  from pandas import read_csv
  from keras.models import Sequential
  from keras.layers import Dense
  from keras.wrappers.scikit_learn import KerasClassifier
  from keras.utils import np_utils
  from sklearn.model_selection import cross_val_score
  from sklearn.model_selection import KFold
  from sklearn.preprocessing import LabelEncoder
  from sklearn.pipeline import Pipeline
  # fix random seed for reproducibility
  seed = 7
  numpy.random.seed(seed)
  # load dataset
  dataframe = read_csv("iris.csv", header=None)
  dataset = dataframe.values
  X = dataset[:,0:4].astype(float)
  Y = dataset[:,4]
  # encode class values as integers
  encoder = LabelEncoder()
  encoder.fit(Y)
  encoded_Y = encoder.transform(Y)
  #print("encoded_Y")
  #print(encoded_Y)
  # convert integers to dummy variables (i.e. one hot encoded)
  dummy_y = np_utils.to_categorical(encoded_Y)
  #print("dummy_y")
  #print(dummy_y)
  # define baseline model
  def baseline_model():
      # create model
      model = Sequential()
      model.add(Dense(4, input_dim=4, init='normal', activation='relu'))
      #model.add(Dense(4, init='normal', activation='relu'))
      model.add(Dense(3, init='normal', activation='softmax'))
      # Compile model
      model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
  
      return model
  
  estimator = KerasClassifier(build_fn=baseline_model, nb_epoch=200, batch_size=5, verbose=0)
  #global_model = baseline_model()
  kfold = KFold(n_splits=10, shuffle=True, random_state=seed)
  results = cross_val_score(estimator, X, dummy_y, cv=kfold)
  print("Accuracy: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100))
  </code></pre>
  
  <p>But How to save the final model for future prediction?</p>
  
  <p>I usually use below code to save model:</p>
  
  <pre><code># 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")
  </code></pre>
  
  <p>But I don't know how to insert the saving model's code into KerasClassifier's code.</p>
  
  <p>Thank you.</p>