Модель ResNet50 имеет высокую точность на тестовом наборе, но плохо работает на том же наборе при тестировании вручную.Python

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

Сообщение Anonymous »

Я новичок в машинном обучении и пытаюсь обучить модель ResNet50 на наборе данных из примерно 100 классов.
Для этого я сначала использую разделенные папки, чтобы разделить данные на обучающий набор, набор проверки и тестовый набор, эти наборы затем сохраняются в отдельных папках. Затем я предварительно обрабатываю данные, определяю свою конкретную модель и обучаю ее на обучающем наборе. Впоследствии я сохраняю модель и оцениваю ее на тестовом наборе. Пока что все работает нормально, и я получил точность ~0,89 на тестовом наборе.
Однако затем я попытался протестировать модель вручную, на том же тестовом наборе. Я начал с самых больших классов, и все работало нормально. Однако для более мелких классов все прогнозы оказались неверными. Как ни странно, большинство этих неправильных предсказаний были одинаковыми, например. большинство изображений в классе 63 были предсказаны как класс 62, большинство изображений в классе 15 были предсказаны как класс 7 и т. д... Так что мне кажется, что модель действительно может делать правильные прогнозы, но связывает их не к тем классам... В целом было слишком много неправильных предсказаний, чтобы достичь точности 0,89.
Я думаю, что могу совершить какую-то довольно глупую ошибку, потому что в этом нет никакого смысла. мои ручные тесты привели к такому другому результату, чем предыдущая оценка модели? Есть ли у кого-нибудь идеи, в чем может быть проблема?
Код, который я использую для проверки прогнозов для папок в моем тестовом наборе вручную, выглядит следующим образом:# Iterate over all images in the folder
for img_file in os.listdir(folder_path):
img_path = os.path.join(folder_path, img_file)

# Load and preprocess the image
img = image.load_img(img_path, target_size=(224, 224))
img_array = image.img_to_array(img)
img_array = np.expand_dims(img_array, axis=0)
img_array = tf.keras.applications.resnet50.preprocess_input(img_array)

# Make predictions
predictions = model.predict(img_array)
predicted_class = np.argmax(predictions)

print(f"Image: {img_file} - Predicted class: {predicted_class}")


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

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

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

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

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

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

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