Question 1
Does the rotation_range: Int. Degree range for random rotations
refer to the range [0, rotation_range] or [-rotation_range, rotation_range]. If I set rotation_range=40
, will my images be randomly rotated between [-40, 40] or [0, 40]?
Question 2
Does ImageDataStore.flow
randomly generate different augmentations of an input image at every epoch or is a single augmentation generated at the start and used for all epochs.
For example, let's say I have some image A that is part of my inputs into the flow
method. Is image A augmented only once before training, and this augmented version used for all epochs? Or is image A randomly augmented every epoch?
Question 3
When the param shuffle
is set to True
in the flow
method, does this mean the batches are shuffled every epoch, or the images within the batches are shuffled every epoch?
For example, lets say our training data consists of 15 images (labeled I1 - I15) is divided into 3 batches/mini-batches before epoch 1 starts (labeled B1, B2, B3).
Lets say before epoch 1, the images were assigned to the batches as follows:
- B1 = {I1, I2, I3, I4, I5}
- B2 = {I6, I7, I8, I9, I10}
- B3 = {I11, I12, I13, I14, I15}
Now in epoch 1, the batches are trained in the order B1, B2, B3.
When epoch 2 starts, will the images in B1, B2, B3 be shuffled so that each batch will not contain the same set of 5 images?