Потери при проверке увеличиваются, а точность снижается.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Потери при проверке увеличиваются, а точность снижается.

Сообщение Anonymous »

введите здесь описание изображения
введите здесь описание изображения

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

# Importing the necessary libraries

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import os
import keras
import seaborn as sns
import tensorflow as tf
from sklearn.model_selection import train_test_split
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras import Input
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
from sklearn.metrics import classification_report, confusion_matrix
from tensorflow.keras.utils import load_img, img_to_array
from tensorflow.keras.applications import VGG16
from tensorflow.keras.models import Model
from tensorflow.keras.preprocessing import image
from tensorflow.keras.layers import BatchNormalization
from tensorflow.keras.callbacks import ReduceLROnPlateau
from tensorflow.keras.callbacks import EarlyStopping
from tensorflow.keras.optimizers import Adam
from google.colab import drive

# Dataset Loading

drive.mount('/content/drive')
train_dir = '/content/drive/MyDrive/CSE427/Project/Dataset/New Train'
test_dir = '/content/drive/MyDrive/CSE427/Project/Dataset/New Test'

# Preprocessing data & Data augmentation

train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
rotation_range=30,
brightness_range=(0.8, 1.2),
width_shift_range=0.2,
height_shift_range=0.2,
channel_shift_range=30)

test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
train_dir,
target_size=(128, 128),
batch_size=32,
class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
test_dir,
target_size=(128, 128),
batch_size=32,
class_mode='binary')

print('\n',train_generator.class_indices)

# Build a Custom CNN model
from tensorflow.keras.regularizers import l2
model = Sequential([
Input(shape=(128, 128, 3)),
Conv2D(32, (3, 3), activation='relu'),
BatchNormalization(),
MaxPooling2D(pool_size=(2, 2)),
Dropout(0.3),
Conv2D(64, (3, 3), activation='relu'),
BatchNormalization(),
MaxPooling2D(pool_size=(2, 2)),
Dropout(0.3),
Conv2D(128, (3, 3), activation='relu'),
BatchNormalization(),
MaxPooling2D(pool_size=(2, 2)),
Flatten(),
Dense(128, activation='relu',  kernel_regularizer=l2(0.01)),
Dropout(0.5),
Dense(1, activation='sigmoid')
])

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# Train the model
lr_scheduler = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=5, min_lr=1e-6, verbose=1)
early_stopping = EarlyStopping(monitor='val_loss', patience=5, restore_best_weights=True, verbose=1)

history = model.fit(
train_generator,
steps_per_epoch=len(train_generator),
epochs=30,
validation_data=validation_generator,
validation_steps=len(validation_generator),
callbacks=[early_stopping, lr_scheduler])

# Evaluate the model on test data
test_loss, test_acc = model.evaluate(validation_generator)
print(f"Test accuracy: {test_acc*100}%")
Пожалуйста, помогите мне выяснить, правильна ли реализация модели. Я новичок в этой области. Я много пробовал, но не смог решить проблему. Но за одну итерацию это дало точность 91,3%. Я классифицирую подходящие и неподходящие автобусы на основе изображений. Обучающие изображения — 482, валидационные — 46

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

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

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

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

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

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

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