Когда я запускаю model.fit с использованием параметров batch_size и steps_per_epoch, я получаю следующую ошибку:
ValueError: If steps_per_epoch is set, the `batch_size` must be None.
Итак, из этой ошибки и из следующей части документации из keras Model (функциональный API)
batch_size: Целое число или нет. Количество образцов на обновление градиента. Если
не указано, batch_size по умолчанию будет 32.
steps_per_epoch: Целое число или нет. Общее количество шагов (партий образцов)
прежде чем объявить одну эпоху законченной и начать следующую эпоху. Когда тренируешься
для входных тензоров, таких как тензоры данных TensorFlow, значение по умолчанию None равно числу выборок в вашем наборе данных, разделенному на размер пакета, или 1, если это невозможно определить.
Я понимаю, что оба параметра как-то эквивалентны. Но на моем ноутбуке (с графической картой GeForce 940M с 2 ГБ видеопамяти и обучением набора данных cifar10), когда я запускаю model.fit с параметром epochs, установленным на 256, сценарий работает нормально, а отзывы от keras выглядят так:
4608/50000 [=>............................] - ETA: 1:59 - loss: 0.8167 - acc: 0.7398
Обновление первого номера всегда с добавлением 256 единиц. Однако при передаче steps_per_epoch в качестве number_train // batch_size у меня заканчивается память, и я не могу запустить свой сценарий, пока не передам batch_size как 1.
Итак, как model.fit работает с этими параметрами? Какая разница, когда я использую только один из них вместо другого?