Проблема обучения кераса: «В вашем вводе не хватает предупреждения данных» и 0 потерь/точностьPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема обучения кераса: «В вашем вводе не хватает предупреждения данных» и 0 потерь/точность

Сообщение Anonymous »

Я обучаю модель CNN, используя ImageDatagerator с набором данных из 1500 обучающих изображений и 32 размера партии. Я рассчитал шаги на эпоху как

Код: Выделить всё

⌈1500/32⌉=47
, последняя партия неполна, и я использую flow_from_directory () для загрузки изображений. Однако после первой эпохи модель показывает 0 потерь и 0 точность для определенных эпох, а тренировка прерывается с предупреждением: < /p>

Код: Выделить всё

UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least 
step_per_epoch * epochs

Код: Выделить всё

 batches. You may need to use the .repeat() function when building your dataset. self.gen.throw(typ, value, traceback)

Код: Выделить всё

train_datagen = ImageDataGenerator(rescale=1./255)
valid_datagen = ImageDataGenerator(rescale=1./255)

# Import data from directories and turn it into batches
train_data = train_datagen.flow_from_directory(train_path,
batch_size=32,
target_size=(224, 224),
class_mode="binary")

valid_data = valid_datagen.flow_from_directory(test_path,
batch_size=32,
target_size=(224, 224),
class_mode="binary")

tf.random.set_seed(42)

model_1 = tf.keras.models.Sequential([
Input(shape=(224, 224, 3)),
Conv2D(filters=10,
kernel_size=3,
strides=1,
padding='valid',
activation='relu'),
Conv2D(10, 3, activation='relu'),
Conv2D(10, 3, activation='relu'),
Flatten(),
Dense(1, activation='sigmoid')
])

model_1.compile(loss="binary_crossentropy",
optimizer=tf.keras.optimizers.Adam(),
metrics=["accuracy"])

history_1 = model_1.fit(train_data,
epochs=5,
steps_per_epoch=len(train_data),
validation_data=valid_data,
validation_steps=len(valid_data))
выходной журнал
epoch 1/5
/usr/local/lib/python3.11/dist-packages/keras/src /trainers/data_adapters/py_dataset_adapter.py:122: userwarning: ваш класс pydataset должен вызвать Super (). in init __ (** kwargs) в своем конструкторе. ** kwargs может включать работников , use_multiprocessing , max_queue_size . Не передайте эти аргументы в Fit () , как их игнорируют. ━━━━━━━━━━━━━ 767S 14S/step - Точность: 0,6488 - Потеря: 0,6197 - val_accuracy: 0,7620 - val_loss: 0,4793
epoch 2/5
47/47 ━━━━━━━━━━━━━━━━━━━━ 0s 426us/step - Точность: 0,0000e+00 - Потеря: 0,0000e+00
epoch 3/5
/usr/lib/python3.11/contextlib.py:158: userwarning: в вашем вводе не хватает данных; прерывание обучения. Убедитесь, что ваш набор данных или генератор может генерировать как минимум steps_per_epoch * epochs партии. Вам может потребоваться использовать функцию .repeat () при создании вашего набора данных. ━━━━━━━━━━━━━━━━━━━━ 48S 224 мс/Шаг - Точность: 0,8120 - Потеря: 0,4131 - val_accuracy: 0,8600 - val_loss: 0,3441
EPOCH 4/5
47/47 ━━━━━━━━━━━━━━━━━━━━ 3S 54 мс/Шаг - Точность: 0,0000E+00 - Потеря: 0,0000E+00
Epoch 5/5
47/47 ━━━━━━━━━━━━━━━━━━━━ 11S 219 мс/Шаг - Точность: 0,8336 - Потеря: 0,3814 - val_accuracy: 0,8880 - val_loss: 0,3042

Подробнее здесь: https://stackoverflow.com/questions/793 ... s-accuracy
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»