Я сохранил и загрузил модель классификации тензора Кераса.При обучении этой модели я просто обращал внимание на точность и теперь то, что на самом деле возвращал model.predict
.Теперь, когда я пытаюсь протестировать развертывание этой модели, я нахожу путаницу в том, что на самом деле работает model.predict
.
Это проблема двоичной классификации для распознавания изображений.
Ниже приведена функция, которая берет кодированное в base64 изображение, декодирует его и передает его в модель:
def dapply(input):
def stringToRGB(base64_string):
imgdata = base64.b64decode(str(base64_string))
image = Image.open(BytesIO(imgdata))
return cv2.cvtColor(np.array(image), cv2.IMREAD_GRAYSCALE)
array = stringToRGB(input)
new_array = cv2.resize(array, (125, 125))
x = np.array(new_array).reshape(-1, 125, 125, 1)
pred = model.predict_classes(x)
return pred
Я запускаю два экземпляра.Один с каждым классом:
#Class 0
dapply(image_n)
Возвращает:
array([[1],
[0],
[1],
[1]])
#Class 1
dapply(image)
Возвращает
array([[1],
[1],
[1],
[1]])
Я ожидал 1 число (либо 0
, либо 1
),Кто-нибудь может объяснить, что я на самом деле вижу?