简体   繁体   中英

Keras Sequence, fit_generator and steps_per_epoch

I've noticed that with fit_generator , the steps_per_epoch parameter is usually assigned total_samples//batch_size , where one can create a generator/use ImageDataGenerator and pass it as an argument to fit_generator .

However I am using the Sequence class ( keras.utils.Sequence() ) to create my generator and passing steps_per_epoch an integer less than total_samples//batch_size .

What I would like to know is would the generation of data start in the generator start from the beginning once each epoch is completed?

For example, I have 3200 samples in my training set and I use a batch size of 32. So ideally for one complete epoch I should set steps_per_epoch to 100. However what would happen if I set my steps_per_epoch to 50? Once the first epoch is completed would data point number 1601 (32*50) be generated or would it start from the beginning (data point number 1) ?

When using Sequence , you do not need to pass steps_per_epoch , as this information can be inferred from the __len__ method of your Sequence.

If you pass steps_per_epoch while using Sequence , this will override any use of the __len__ method and it will effectively only use steps_per_epoch samples from your sequence (from 0 to steps_per_epoch - 1 ), and it will reset back to zero at the end of the epoch. You can check this behavior in the keras source code .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM