<p dir="auto">I'm fairly new to keras, but it seems to me that the best way to do validation with fit_generator is to create 2 generators for generating training and validation data separately, but this requires some careful orchestrating. I propose to add a validation_split parameter to model.fit_generator that would behave similarly to the same parameter in model.fit.</p>
<p dir="auto">For example with validation_split=0.1, fit_generator would train from the generator until it has seen (0.9 * samples_per_epoch) samples and then perform validation from the same generator until the end of the epoch.</p>
<p dir="auto">When calling MaxPooling2D with pool_size=(2,2) on inputs with an odd dimension (say 1x4x5) the output dimension is 1x2x2.  Thus the pooling operator is not utilizing the information in the last column of the input.  The code that produces the size of the output:  conv_output_length does an integer divide operation giving the floor of the required number of dimensions.</p>
<p dir="auto">How can I rectify this?  The simplest idea I have would be to zero pad another column making the input (1x4x6) and not messing with the pooling operation at all, but I don't think non-symmetric padding is allowed in keras.  Is this right?</p>