title: Keras early stopping callback error, val_loss metric not available
body: <p>I am training a Keras (Tensorflow backend, Python, on MacBook) and am getting an error in the early stopping callback in fit_generator function.  The error is as follows:</p>
  
  <pre><code>RuntimeWarning: Early stopping conditioned on metric `val_loss` which is not available. Available metrics are:
    (self.monitor, ','.join(list(logs.keys()))),
  RuntimeWarning: Can save best model only with val_acc available, skipping.
  
  'skipping.' % (self.monitor), RuntimeWarning
  [local-dir]/lib/python3.6/site-packages/keras/callbacks.py:497: RuntimeWarning: Early stopping conditioned on metric `val_loss` which is not available. Available metrics are:
    (self.monitor, ','.join(list(logs.keys()))), RuntimeWarning
  [local-dir]/lib/python3.6/site-packages/keras/callbacks.py:406: RuntimeWarning: Can save best model only with val_acc available, skipping.
    'skipping.' % (self.monitor), RuntimeWarning)
  Traceback (most recent call last):
    :
    [my-code]
    :
    File "[local-dir]/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
  return func(*args, **kwargs)
    File "[local-dir]/lib/python3.6/site-packages/keras/engine/training.py", line 2213, in fit_generator
  callbacks.on_epoch_end(epoch, epoch_logs)
    File "[local-dir]/lib/python3.6/site-packages/keras/callbacks.py", line 76, in on_epoch_end
  callback.on_epoch_end(epoch, logs)
    File "[local-dir]/lib/python3.6/site-packages/keras/callbacks.py", line 310, in on_epoch_end
  self.progbar.update(self.seen, self.log_values, force=True)
  AttributeError: 'ProgbarLogger' object has no attribute 'log_values'
  </code></pre>
  
  <p>My code is as follows (which looks OK):</p>
  
  <pre><code>:
  ES = EarlyStopping(monitor="val_loss", min_delta=0.001, patience=3, mode="min", verbose=1)
  :
  self.model.fit_generator(
          generator        = train_batch,
          validation_data  = valid_batch,
          validation_steps = validation_steps,
          steps_per_epoch  = steps_per_epoch,
          epochs           = epochs,
          callbacks        = [ES],
          verbose          = 1,
          workers          = 3,
          max_queue_size   = 8)
  </code></pre>
  
  <p>The error message appears to relate to the early stopping callback but the callback looks OK.  Also the error states that the val_loss is not appropriate, but I am not sure why... one more unusual thing about this is that the error only occurs when I use smaller data sets.</p>
  
  <p>Any help is appreciated.</p>