Я довольно новичок в Tensorflow, и Керас и могучий Google не могут помочь мне с следующим вопросом:
Ниже вы можете увидеть выход TF / Keras после тренировки предварительно обученного CNN в шпионе (используя анаконду):
О чем эти ( жирный ) моменты времени? Насколько я мог судить, это общее время, необходимое для этой эпохи. Я прав?
Числа , выделенные курсивом , означают секунды для полной партии (шаги * размер партии) и время / партия.
Что делает TF / Keras в значительный промежуток времени между двумя тренировочными партиями
Давайте посмотрим на эпоху 2:
Вся эпоха заняла 42 секунд, а сама тренировка - 7 секунд. Что происходит в оставшиеся 42-7 = 35 секунд?
Насколько я понимаю, время обучения включает в себя:
+ все об обучении (FWD реквизит, расчет градиентов, обратный реквизит)
Является ли оставшееся время чистой загрузкой и масштабированием изображений?
Epoch 1/50
50/50 [==============================] - *9s 186ms/step* - loss: 0.6557 - acc: 0.9076
- **53s** - loss: 0.8610 - acc: 0.8472 - val_loss: 0.6557 - val_acc: 0.9076
Epoch 2/50
50/50 [==============================] - *7s 147ms/step* - loss: 0.4148 - acc: 0.9478
- **41s** - loss: 0.2432 - acc: 0.9097 - val_loss: 0.4148 - val_acc: 0.9478
Epoch 3/50
50/50 [==============================] - *8s 158ms/step* - loss: 0.5873 - acc: 0.9384 - **42s** - loss: 0.1696 - acc: 0.9335 - val_loss: 0.5873 - val_acc: 0.9384
Epoch 4/50
50/50 [==============================] - *7s 149ms/step* - loss: 0.5356 - acc: 0.9492
- **41s** - loss: 0.1274 - acc: 0.9548 - val_loss: 0.5356 - val_acc: 0.9492
.....
Если это имеет значение: я использую генератор изображений (см. Код ниже) и расширение. Небольшие (обычно <500 КБ) картинки загружаются с SSD (Samsung 960 1 ТБ). </p>
train_datagen = ImageDataGenerator(rescale=1./255.)
train_generator = train_datagen.flow_from_directory(train_dir,
batch_size=20,
class_mode='binary',
target_size=(IMAGE_WIDTH, IMAGE_HEIGHT))
Большое спасибо, ребята.