Код: Выделить всё
import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import tensorflow as tf
import kagglehub
data_dir = kagglehub.dataset_download("ryanholbrook/car-or-truck")
from tensorflow.keras.preprocessing.image import ImageDataGenerator
tf.random.set_seed(42)
train_datagen = ImageDataGenerator(rescale=1./255)
valid_datagen = ImageDataGenerator(rescale=1./255)
train_dir = "/root/.cache/kagglehub/datasets/ryanholbrook/car-or-truck/versions/1/train/"
test_dir = "/root/.cache/kagglehub/datasets/ryanholbrook/car-or-truck/versions/1/valid/"
train_data = train_datagen.flow_from_directory(directory = train_dir, batch_size=32, target_size=(224,224), class_mode="binary", seed=42, shuffle =True)
valid_data = valid_datagen.flow_from_directory(directory = test_dir, batch_size=32, target_size=(224,224), class_mode="binary", seed=42, shuffle =True)
model_1 = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(filters=10, kernel_size=3, input_shape=(224,224,3), activation="relu"),
tf.keras.layers.Conv2D(10,3, activation="relu"),
tf.keras.layers.MaxPool2D(pool_size=2, padding="valid"),
tf.keras.layers.Conv2D(10,3, activation="relu"),
tf.keras.layers.Conv2D(10,3, activation="relu"),
tf.keras.layers.MaxPool2D(pool_size=2, padding="valid"),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(1, activation="sigmoid")
])
# Compile our CNN
model_1.compile(loss="binary_crossentropy", optimizer=tf.keras.optimizers.Adam(), metrics=["accuracy"])
# Fit the CNN to the data
history_1 = model_1.fit(train_data, epochs=25, steps_per_epoch=len(train_data), validation_data=valid_data, validation_steps=len(valid_data))
Найдено 5117 изображений, принадлежащих 2 классам.
Найдено 5051 изображение принадлежность к 2-м классам.
Эпоха 1/25
/usr/local/lib/python3.10/dist-packages/keras/src/layers/convolutional/base_conv.py:107: Предупреждение пользователя: не передавайте input_shape/
Код: Выделить всё
input_dim
super().init(activity_regularizer=activity_regularizer, **kwargs )
/usr/local/lib/python3.10/dist-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:122: Предупреждение пользователя: ваш класс PyDataset должен вызывать super().__init__(** kwargs) в его конструкторе. **kwargs может включать в себя рабочие, use_multiprocessing, max_queue_size. Не передавайте эти аргументы в fit(), так как они будут проигнорированы.
self._warn_if_super_not_ Called()
160/160 ━━━━━━━━━━━━━━ ━━━━━━ 18с 93 мс/шаг - точность: 0,6169 - потери: 0,6532 - val_accuracy: 0,6391 - val_loss: 0,6453
Эпоха 2/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0 с 109 мкс/шаг - точность: 0,0000e+00 - потери: 0,0000e+00
Эпоха 25 марта
/usr/lib/python3.10/contextlib.py:153: Предупреждение пользователя: на входе закончились данные; прерывание тренировки. Убедитесь, что ваш набор данных или генератор может генерировать пакеты как минимум шагов_на_епоху * эпох. Возможно, вам придется использовать функцию .repeat() при построении набора данных.
self.gen.throw(typ, value, Traceback)
160/160 ━━━━━━━ ━━━━━━━━━━━━━ 17с 80 мс/шаг - точность: 0,6780 - потери: 0,5921 - val_accuracy: 0,7020 - val_loss: 0,5711
Эпоха 4/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 4 с 26 мс/шаг - точность: 0,0000e+00 - потери: 0,0000e+00
Эпоха 25 мая
160/160 ━━━━━━━━━━━━━━━━━━━━ 13 с 81 мс/шаг - точность: 0,7679 - потери: 0,4824 - val_accuracy: 0,7193 - val_loss: 0.5556
Эпоха 6/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 4с 25мс/шаг - точность: 0.0000e+00 - потеря: 0.0000e+00
Эпоха 7/25
160/160 ━━━━━━━━━━━━━━━━━ ━━━ 18 с. 88 мс/шаг - точность: 0,8320 - потери: 0,3964 - val_accuracy: 0,7242 - val_loss: 0,5764
Эпоха 8/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 4 с 25 мс/шаг - точность: 0,0000e+00 - потери: 0,0000e+00
Эпоха 25 сентября
160/160 ━━━━━━━━━━━━━━━━━━━━ 15 с 78 мс/шаг - точность: 0,8764 - потери: 0,3101 - val_accuracy: 0,6995 - val_loss: 0.6768
Эпоха 10/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0 с 93 мкс/шаг - точность: 0.0000e+00 - потеря: 0.0000e+00
Эпоха 11/25
160/160 ━━━━━━━━━━━━━━━━━ ━━━ 13 с. 80 мс/шаг - точность: 0,9233 - потери: 0,2111 - val_accuracy: 0,7145 - val_loss: 0,7014
Эпоха 12/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0 с 97 мкс/шаг - точность: 0,0000e+00 - потери: 0,0000e+00
Эпоха 25.13
160/160 ━━━━━━━━━━━━━━━━━━━━ 13 с 77 мс/шаг - точность: 0,9491 - потери: 0,1485 - val_accuracy: 0,7123 - val_loss: 0.8927
Эпоха 14/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 5с 31мс/шаг - точность: 0.0000e+00 - потеря: 0.0000e+00
Эпоха 15/25
160/160 ━━━━━━━━━━━━━━━━━ ━━━ 16 с. 82 мс/шаг - точность: 0,9814 - потери: 0,0733 - val_accuracy: 0,7104 - val_loss: 1,1305
Эпоха 16/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0 с 71 мкс/шаг - точность: 0,0000e+00 - потери: 0,0000e+00
Эпоха 25.17
160/160 ━━━━━━━━━━━━━━━━━━━━ 20 с 80 мс/шаг - точность: 0,9903 - потери: 0,0431 - val_accuracy: 0,7143 - val_loss: 1.3878
Эпоха 18/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0 с 98 мкс/шаг - точность: 0.0000e+00 - потеря: 0.0000e+00
Эпоха 19/25
160/160 ━━━━━━━━━━━━━━━━━ ━━━ 20 с. 80 мс/шаг - точность: 0,9915 - потери: 0,0323 - val_accuracy: 0,7165 - val_loss: 1,5466
Эпоха 20/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 4 с 26 мс/шаг - точность: 0,0000e+00 - потери: 0,0000e+00
Эпоха 21/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 15 с 75 мс/шаг - точность: 0,9967 - потери: 0,0177 - val_accuracy: 0,7058 - val_loss: 1.6167
Эпоха 22/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0 с 144 мкс/шаг - точность: 0.0000e+00 - потеря: 0.0000e+00
Эпоха 23/25
160/160 ━━━━━━━━━━━━━━━━━ ━━━ 21с 79 мс/шаг - точность: 0,9939 - потери: 0,0196 - val_accuracy: 0,7111 - val_loss: 1,7555
Эпоха 24/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0 с 97 мкс/шаг - точность: 0,0000e+00 - потеря: 0,0000e+00
Эпоха 25/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 15 с 90 мс/шаг - точность: 0,9942 - потери: 0,0211 - val_accuracy: 0,7076 - val_loss: 1,9112
Подробнее здесь: https://stackoverflow.com/questions/793 ... sification