Я пытаюсь предсказать новый образ, используя обученную модель. Моя точность 95%. Но предикаты класса всегда возвращают первую метку [0], что бы я ни вводил.
Я думаю, одна из причин в том, что я использую featurewise_center=True
и samplewise_center=True
в ImageDataGenerator
. Я думаю, что я должен сделать то же самое на моем входном изображении. Но я не могу найти, что эти функции сделали с изображением.
Любое предложение будет оценено.
ImageDataGenerator
код:
train_datagen = ImageDataGenerator(
samplewise_center=True,
rescale=1. / 255,
shear_range=30,
zoom_range=30,
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2)
test_datagen = ImageDataGenerator(
samplewise_center=True,
rescale=1. / 255,
shear_range=30,
zoom_range=30,
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True)
Код прогноза (я использую изображение 100 * 100 * 3 для обучения модели):
model = load_model('CNN_model.h5')
img = cv2.imread('train/defect/6.png')
img = cv2.resize(img,(100,100))
img = np.reshape(img,[1,100,100,3])
img = img/255.
classes = model.predict_classes(img)
print (classes)
обновлено 11/14:
Я изменяю свой код для предсказания изображения, как показано ниже. Но модель все еще предсказывает тот же класс, даже если я передаю изображение, которое я использовал для обучения своей модели (и получил 95% -ную точность). Я что-то пропустил?
model = load_model('CNN_model.h5')
img = cv2.imread('train/defect/6.png')
img = cv2.resize(img,(100,100))
img = np.reshape(img,[1,100,100,3])
img = np.array(img, dtype=np.float64)
img = train_datagen.standardize(img)
classes = model.predict_classes(img)
print(classes)