review: gradient descent, epochs, validation in neural network training
Chances are, when the validation error is minimized, the current epoch isn't traversed yet, the remaining batches of training data are left unused.


Typically, validation is done only at the end of the epoch. So no batch should remain unused. For example, this is the behavior of Keras https://keras.io/models/model/#fit

validation_freq: Only relevant if validation data is provided. Integer or list/tuple/set. If an integer, specifies how many training epochs to run before a new validation run is performed, e.g.  validation_freq=2 runs validation every 2 epochs. If a list, tuple, or set, specifies the epochs on which to run validation, e.g. validation_freq=[1, 2, 10] runs validation at the end of the 1st, 2nd, and 10th epochs.


  hyper parameters: number of ConvNet filters, size of ConvNet filters,
  number of layers won't be trained or tuned?


Yes, such hyper parameters are set when model is defined.  These are not modified during training. 

However : Systems like Google AutoML are trying to change this. These systems try to learn model hyper parameters during training.