Почему даже эпохи не дают соответствующих результатов в проблеме бинарной классификацииPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему даже эпохи не дают соответствующих результатов в проблеме бинарной классификации

Сообщение Anonymous »

Я хотел выполнить классификацию изображений, используя CNN, и теперь я получаю ненормальные результаты, потому что даже нет эпох, не работает, как ожидалось, даже если я изменю не эпохи < /p>
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))
< /code>
Получение этого типа результата: < /p>
Found 5117 images belonging to 2 classes.
Found 5051 images belonging to 2 classes.
Epoch 1/25
/usr/local/lib/python3.10/dist-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.
super().__init__(activity_regularizer=activity_regularizer, **kwargs)
/usr/local/lib/python3.10/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()
160/160 ━━━━━━━━━━━━━━━━━━━━ 18s 93ms/step - accuracy: 0.6169 - loss: 0.6532 - val_accuracy: 0.6391 - val_loss: 0.6453

Epoch 2/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0s 109us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 3/25
/usr/lib/python3.10/contextlib.py:153: 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)
160/160 ━━━━━━━━━━━━━━━━━━━━ 17s 80ms/step - accuracy: 0.6780 - loss: 0.5921 - val_accuracy: 0.7020 - val_loss: 0.5711

Epoch 4/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 4s 26ms/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 5/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 13s 81ms/step - accuracy: 0.7679 - loss: 0.4824 - val_accuracy: 0.7193 - val_loss: 0.5556

Epoch 6/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 4s 25ms/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 7/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 18s 88ms/step - accuracy: 0.8320 - loss: 0.3964 - val_accuracy: 0.7242 - val_loss: 0.5764

Epoch 8/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 4s 25ms/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 9/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 15s 78ms/step - accuracy: 0.8764 - loss: 0.3101 - val_accuracy: 0.6995 - val_loss: 0.6768

Epoch 10/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0s 93us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 11/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 13s 80ms/step - accuracy: 0.9233 - loss: 0.2111 - val_accuracy: 0.7145 - val_loss: 0.7014

Epoch 12/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0s 97us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 13/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 13s 77ms/step - accuracy: 0.9491 - loss: 0.1485 - val_accuracy: 0.7123 - val_loss: 0.8927

Epoch 14/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 5s 31ms/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 15/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 16s 82ms/step - accuracy: 0.9814 - loss: 0.0733 - val_accuracy: 0.7104 - val_loss: 1.1305

Epoch 16/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0s 71us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 17/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 20s 80ms/step - accuracy: 0.9903 - loss: 0.0431 - val_accuracy: 0.7143 - val_loss: 1.3878

Epoch 18/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0s 98us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 19/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 20s 80ms/step - accuracy: 0.9915 - loss: 0.0323 - val_accuracy: 0.7165 - val_loss: 1.5466

Epoch 20/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 4s 26ms/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 21/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 15s 75ms/step - accuracy: 0.9967 - loss: 0.0177 - val_accuracy: 0.7058 - val_loss: 1.6167

Epoch 22/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0s 144us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 23/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 21s 79ms/step - accuracy: 0.9939 - loss: 0.0196 - val_accuracy: 0.7111 - val_loss: 1.7555

Epoch 24/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 0s 97us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00

Epoch 25/25
160/160 ━━━━━━━━━━━━━━━━━━━━ 15s 90ms/step - accuracy: 0.9942 - loss: 0.0211 - val_accuracy: 0.7076 - val_loss: 1.9112


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

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

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

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

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

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

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