Я думаю, что в передаче обучения мой model.fit_generator зацикливается на бесконечном цикле. Я не знаю как. Вот ссылка на мою записную книжку Colab https://colab.research.google.com/drive/1o9GNCQdMeh4HZdiZ5QAjiDDkixn-OsXx
Передача обучения с помощью Tensorflow (MobileNet)
Ответы (1)
Если вы обновите последнюю строку следующим образом, это займет около 40 секунд для 5 эпох.
из
model.fit_generator(train_generator, epochs=5, validation_data=valid_generator)
to
model.fit_generator(train_generator, epochs=5, steps_per_epoch=len(train_generator), validation_data=valid_generator, validation_steps=len(valid_generator))
Пожалуйста, проверьте описание того, что ожидается, когда входом в model.fit является генератор. Поэтому, когда 'steps_per_epoch' равно None, эпоха будет выполняться до тех пор, пока не будет исчерпан входной набор данных. Таким образом, генератор работает бесконечно, если ваш набор данных бесконечно повторяет набор данных.
steps_per_epoch: целое число или нет. Общее количество шагов (пакетов образцов) перед объявлением одной эпохи завершенной и началом следующей эпохи. При обучении с использованием входных тензоров, таких как тензоры данных TensorFlow, значение по умолчанию None равно количеству выборок в вашем наборе данных, разделенному на размер пакета, или 1, если это невозможно определить. Если x - это набор данных tf.data, а 'steps_per_epoch' - None, эпоха будет выполняться до тех пор, пока входной набор данных не будет исчерпан. При передаче бесконечно повторяющегося набора данных необходимо указать аргумент steps_per_epoch. Этот аргумент не поддерживается для входных данных массива.