#python #tensorflow #keras #deep-learning
#python #тензорный поток #keras #глубокое обучение
Вопрос:
Я пытался изменить размер пакета во время обучения, поэтому я запускаю метод fit в цикле и изменяю размер пакета, но мы уже определяем размер пакета image_dataset_from_directory()
, что, если я помещу разные размеры пакета в эти две функции, и есть ли способ, которым я могу контролировать размер пакета в методе fitи не будет зависеть от image_dataset_from_directory()
моего кода
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
data_dir,
validation_split=0.2,
subset="training",
seed=123,
image_size=(img_height, img_width),
batch_size=batch_size)
model.fit(
train_ds,
validation_data=val_ds,
epochs=epoch,
batch_size=batch_size,
steps_per_epoch=10,
callbacks=call
)
код взят из этого руководства по tensorflow
Ответ №1:
image_dataset_from_directory
это генератор, и поэтому указание batch_size
in model.fit()
ничего не даст. Смотрите Документы по model.fit()
:
размер пакета целое число или нет. Количество выборок для каждого обновления градиента. Если не указано, batch_size по умолчанию будет равен 32. Не указывайте batch_size, если ваши данные представлены в виде наборов данных, генераторов или keras.utils.Экземпляры последовательности (поскольку они генерируют пакеты).
Как вы можете видеть в приведенном вами примере, в руководстве по Tensorflow не указано batch_size
в model.fit()
:
epochs=10
history = model.fit(
train_ds,
validation_data=val_ds,
epochs=epochs
)
Размер пакета будет таким, какой вы указали в генераторе, и аргумент будет проигнорирован в model.fit()