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

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

Сообщение Anonymous »

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

userwarning: ваш ввод закончился данных; прерывание обучения. Убедитесь, что ваш набор данных или генератор может генерировать как минимум steps_per_epoch * epochs партии. Вам может потребоваться использовать функцию .repeat () при создании вашего набора данных.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))
< /code>
log вывода: < /p>
Epoch 1/5
/usr/local/lib/python3.11/dist-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:122: UserWarning: Your `PyDataset` class should call `super().__init__(**kwargs)` in its constructor. `**kwargs` can include `workers`, `use_multiprocessing`, `max_queue_size`. Do not pass these arguments to `fit()`, as they will be ignored.
self._warn_if_super_not_called()

47/47 ━━━━━━━━━━━━━━━━━━━━ 767s 14s/step - accuracy: 0.6488 - loss: 0.6197 - val_accuracy: 0.7620 - val_loss: 0.4793

Epoch 2/5
47/47 ━━━━━━━━━━━━━━━━━━━━ 0s 426us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 3/5
/usr/lib/python3.11/contextlib.py:158: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
self.gen.throw(typ, value, traceback)

47/47 ━━━━━━━━━━━━━━━━━━━━ 48s 224ms/step - accuracy: 0.8120 - loss: 0.4131 - val_accuracy: 0.8600 - val_loss: 0.3441

Epoch 4/5
47/47 ━━━━━━━━━━━━━━━━━━━━ 3s 54ms/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 5/5
47/47 ━━━━━━━━━━━━━━━━━━━━ 11s 219ms/step - accuracy: 0.8336 - loss: 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»