Уважаемые! Что делаю не так?
На входе получаю картинку в base64.
Если сохраняю на диск с помощью PIL,то все работает
im = Image.open(io.BytesIO(base64.b64decode(data_obj['link'].split(',')[1])))
im.save('img.png')
im.close()
image = tf.keras.preprocessing.image.load_img(
'img.png', target_size=(obj['size'], obj['size'])
)
input_arr = tf.keras.preprocessing.image.img_to_array(image)
input_arr = np.array([input_arr])
predictions = obj['main'].predict(input_arr)
result = obj['classes'][np.argmax(predictions[0])]
Но если отправить массив numpy:
nparr = np.fromstring(base64.b64decode(data_obj['link'].split(',')[1]), np.uint8)
img = cv2.imdecode(nparr, cv2.IMREAD_UNCHANGED)
predictions = obj['main'].predict(np.array([img]))
result = obj['classes'][np.argmax(predictions[0])]
Получаю ошибку:
ValueError: Input 0 of layer sequential is incompatible with the layer: expected axis -1 of input shape to have value 3 but received input with shape [None, 116, 116, 4]