title: Plotting learning curve in keras gives KeyError: 'val_acc'
body: <p>I was trying to plot train and test learning curve in keras, however, the following code produces <code>KeyError: 'val_acc error</code>.</p>
  
  <p>The official document <code>&lt;https://keras.io/callbacks/&gt;</code> states that in order to use <code>'val_acc'</code> I need to enable  validation and accuracy monitoring which I dont understand and dont know how to use in my code.</p>
  
  <p>Any help would be much appreciated. 
  Thanks.</p>
  
  <pre><code>seed = 7
  np.random.seed(seed)
  
  dataframe = pandas.read_csv("iris.csv", header=None)
  dataset = dataframe.values
  X = dataset[:,0:4].astype(float)
  Y = dataset[:,4]
  
  encoder = LabelEncoder()
  encoder.fit(Y)
  encoded_Y = encoder.transform(Y)
  dummy_y = np_utils.to_categorical(encoded_Y)
  
  kfold = StratifiedKFold(y=Y, n_folds=10, shuffle=True, random_state=seed)
  cvscores = []
  
  for i, (train, test) in enumerate(kfold):
  
      model = Sequential()
      model.add(Dense(12, input_dim=4, init='uniform', activation='relu'))
      model.add(Dense(3, init='uniform', activation='sigmoid'))
      model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
      history=model.fit(X[train], dummy_y[train], nb_epoch=200, batch_size=5, verbose=0)
      scores = model.evaluate(X[test], dummy_y[test], verbose=0)
      print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
      cvscores.append(scores[1] * 100)
  
  print( "%.2f%% (+/- %.2f%%)" % (np.mean(cvscores), np.std(cvscores))) 
  
  
  print(history.history.keys())
  # summarize history for accuracy
  plt.plot(history.history['acc'])
  plt.plot(history.history['val_acc'])
  plt.title('model accuracy')
  plt.ylabel('accuracy')
  plt.xlabel('epoch')
  plt.legend(['train', 'test'], loc='upper left')
  plt.show()
  </code></pre>