Код: Выделить всё
⌈1500/32⌉=47
Код: Выделить всё
UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least
Код: Выделить всё
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