Я использовал все варианты, предложенные разработчиком ML, но хочу знать, ПОЧЕМУ точность теста слишком низкая по сравнеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Я использовал все варианты, предложенные разработчиком ML, но хочу знать, ПОЧЕМУ точность теста слишком низкая по сравне

Сообщение Anonymous »

У меня есть папка, разделенная на Train, Val и Test. поезд содержит около 4262 изображений из 4 подпапок, val содержит 915 изображений из 4 подпапок и тест 913 из 4 подпапок. Я выполнил процесс увеличения, прежде чем разделить изображения и обобщить каждое изображение на 35 копий, затем я разделил его вручную в зависимости от разделенных наборов 70/30, где 15% для значения и 15% для теста. Я использовал модель VGG16 для классификации четырех документов. результаты обучения составляют примерно 96%, и это последний результат, которого достигает модель
134/134 [==============================] - 96s 717ms/step -
loss: 0.0311 - accuracy: 0.9916 - val_loss: 1.8162 - val_accuracy: 0.5694

Почему разрыв слишком велик и в чем проблема? Как мне добиться хотя бы 89%?
Я уже пробовал снижать скорость обучения, увеличивать и уменьшать слой отсева, использовать пакетную нормализацию, увеличивать эпохи. Мне нужна помощь, чтобы проанализировать и указать, с какой проблемой я столкнулся.
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten, BatchNormalization
from tensorflow.keras.applications import VGG16
from tensorflow.keras.optimizers import Adam
from tensorflow.keras import regularizers

# Define the directory paths
base_dir = '/content/dataset/rose_edit'
train_dir = f"{base_dir}/train"
val_dir = f"{base_dir}/val"
test_dir = f"{base_dir}/test"

# Load the datasets
train_dataset = tf.keras.preprocessing.image_dataset_from_directory(
train_dir,
image_size=(224, 224), # VGG16 expects 224x224 images
batch_size=32,
label_mode='categorical' # Use categorical for multi-class classification
)

val_dataset = tf.keras.preprocessing.image_dataset_from_directory(
val_dir,
image_size=(224, 224),
batch_size=32,
label_mode='categorical'
)

test_dataset = tf.keras.preprocessing.image_dataset_from_directory(
test_dir,
image_size=(224, 224),
batch_size=32,
label_mode='categorical'
)

# Initialize VGG16 base model without the top layers and freeze its layers
vgg_base = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
vgg_base.trainable = False # Freezing VGG16 layers

# Building the model
model = Sequential()
model.add(vgg_base)
model.add(Flatten()) # Flatten output from VGG16 for dense layers

# Custom dense layers with L2 regularization
model.add(Dense(256, activation='relu', kernel_regularizer=regularizers.l2(0.001)))
model.add(Dropout(0.5))
model.add(BatchNormalization())

model.add(Dense(64, activation='relu', kernel_regularizer=regularizers.l2(0.001)))
model.add(Dropout(0.5))
model.add(BatchNormalization())

# Output layer (4 classes with softmax)
model.add(Dense(4, activation='softmax'))

# Compile the model
model.compile(optimizer=Adam(learning_rate=0.0001),
loss='categorical_crossentropy',
metrics=['accuracy'])

# Model summary
model.summary()

# Train the model
history = model.fit(
train_dataset,
validation_data=val_dataset,
epochs=11, # Adjust the number of epochs based on your needs
)

# Evaluate the model on the test dataset
test_loss, test_accuracy = model.evaluate(test_dataset)
print(f"Test Accuracy: {test_accuracy * 100:.2f}%")


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

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

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

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

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

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

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