Модель распознавания моды на основе Tensorflow CNN постоянно оказывается неточной, хотя ее так называемая точность приблPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Модель распознавания моды на основе Tensorflow CNN постоянно оказывается неточной, хотя ее так называемая точность прибл

Сообщение Anonymous »

Я пытаюсь автоматизировать сервис, который получает изображение клиента и возвращает его одежду, например пальто.
Я пытался написать специальный модуль на основе тензорного потока, который обеспечит это сервис, и его точность кажется хорошей. Модель обучена на основе набора данных fashion_mnist (https://www.kaggle.com/datasets/zalando ... shionmnist) и правильно работает с изображениями, предоставляемыми набором данных.
Однако всякий раз, когда я попробуйте загрузить в модель собственное изображение и настроить его в соответствии с требованиями, я всегда получаю классификацию «сумка». Я предполагаю, что это так, потому что сумка — это всего лишь «базовый» и бездонный объект, и ИИ легче перенаправить на него свой прогноз.
Это код, который я пытался запустить:

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

import tensorflow as tf
from tensorflow import keras
import numpy as np
import cv2

fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
train_images = train_images.reshape(train_images.shape[0], 28, 28, 1) / 255.0
test_images = test_images.reshape(test_images.shape[0], 28, 28, 1) / 255.0

model = keras.Sequential([
keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Conv2D(64, (3, 3), activation='relu'),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Flatten(),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5)

model.save('fashion_mnist_cnn_model.h5')

model = keras.models.load_model('fashion_mnist_cnn_model.h5')

image_path = 'path_to_your_image.jpg'
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
image = cv2.resize(image, (28, 28))
image = image.astype('float32') / 255.0
image = np.expand_dims(image, axis=-1)

prediction = model.predict(np.array([image]))
predicted_class = np.argmax(prediction)

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
print(f'Predicted Class: {class_names[predicted_class]}')
Есть ли у вас идеи, как сделать его более точным или как решить проблему в целом? (возможно, это что-то не связанное с его точностью)
Пример простой неточности, допущенной моделью, таков:
Приведенное изображение:
Изображение

Классификация:
[img]https: //i.stack.imgur.com/27n1Y.png[/img]


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

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

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

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

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

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

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