[Решено] CNN Image Classification: это дает мне всегда один и тот же прогноз - PullRequest
2 голосов
/ 03 мая 2020

Я новичок в этой области, все еще учусь, и мне жаль, если это считается глупыми вопросами. Поэтому недавно я попытался изучить классификацию изображений, используя Python и TensorFlow. Я следовал за учебником на некоторых видео. Но у меня есть некоторые проблемы в моем коде, потому что, когда я пробовал свою модель, потери при проверке имеют тенденцию к увеличению, в то время как моя точность проверки продолжает колебаться. Когда я пытался предсказать мой образец изображения, он продолжает давать мне тот же прогноз. Мои изображения в моих наборах данных составляют в общей сложности 730 изображений.

А вот мой код для прогнозирования:

import cv2
import tensorflow as tf

CATEGORIES = ["Bike", "Car"]
IMAGE_SIZE = 50

def prepare(filepath):
    image_array = cv2.imread(filepath, cv2.IMREAD_GRAYSCALE)
    image_array = image_array/255.0
    new_image_array = cv2.resize(image_array, (IMAGE_SIZE,IMAGE_SIZE))
    return new_image_array.reshape(-1, IMAGE_SIZE, IMAGE_SIZE, 1)

model = tf.keras.models.load_model("prototype.model")

prediction = model.predict([prepare('car.jpg')])
print( CATEGORIES[int(prediction[0][0])] )

Большое вам спасибо.

1 Ответ

1 голос
/ 03 мая 2020

У меня когда-то была похожая проблема. Поскольку вам необходимо классифицировать изображения как «Велосипед» или «Автомобиль», попробуйте изменить конечный выходной слой на

model.add(Dense(2))
model.add(Activation('softmax'))

Если он все еще не работает, попробуйте вместо этого sparse_categorical_crossentropy вместо * 1005. *.

...