title: Show Model Validation Progress with Keras model.fit()
body: <p>I am training a CNN model using <code>tf.keras</code> passing training and validation generators as follows:</p>
  
  <pre><code>model.fit(
      x=training_data_generator,
      validation_data=validation_data_generator,
      epochs=n_epochs,
      use_multiprocessing=False,
      max_queue_size=100,
      workers=50
  )
  </code></pre>
  
  <p>The generators are based on <code>tf.keras.Sequence</code>.</p>
  
  <p>The problem is, my data set is huge. Training one epoch takes about a day (despite training on two Titan RTX GPUs) and validation after each epoch takes a few hours.</p>
  
  <p>During training I can see the progress displayed, but during validation all I see is the last snapshot of the training progress bar:</p>
  
  <p><code>130339/130340 [==============================] - 147432s 1s/step</code></p>
  
  <p>until the validation finishes and finally I see my validation acuracy, loss etc.</p>
  
  <p><em>Is there a way to display a progress bar for validation?</em></p>
  
  <p>I'm thinking of doing something like this:</p>
  
  <pre><code>for epoch in range(n_epochs):
      model.fit(
          x=training_data_generator,
          epochs=1,
          use_multiprocessing=False,
          max_queue_size=100,
          workers=50
      )
      validation_results = model.evaluate(
          x=validation_data_generator,
          use_multiprocessing=False,
          max_queue_size=100,
          workers=50
      )
      print(validation_results)
  </code></pre>
  
  <p>Another option I was considering is to create a custom callback that validates the model <code>on_epoch_end</code>, but this seems very non-standard.</p>
  
  <p>Is there a better approach to this?</p>