Изменение размера фигуры - отправка изображения в Flask - PullRequest
0 голосов
/ 27 октября 2018

Я использую следующее приложение Flask в качестве API, для которого я публикую изображение для модели keras, чтобы классифицировать его как одно из двух изображений.Изображение, которое я публикую (через curl), представляет собой изображение размером 64 на 64 пикселя, и модель использовала изображения того же размера для обучения.Я получаю ошибку изменения размера каждый раз, когда я отправляю изображение в API через curl:

from flask import Flask, jsonify, request
import numpy as np
import PIL
from PIL import Image
from keras.models import load_model
import keras
import tensorflow as tf

app = Flask(__name__)

def auc(y_true, y_pred):
    auc = tf.metrics.auc(y_true, y_pred)[1]
    keras.backend.get_session().run(tf.local_variables_initializer())
    return auc

model = load_model('image_model_2.h5',custom_objects={'auc': auc})
@app.route('/predict', methods=["POST"])

def predict_image():
        # Preprocess the image so that it matches the training input
        image = request.files['file']
        image = Image.open(image)
        image = np.asarray(image.resize((64,64)))
        image = image.reshape(1,1,64,64)

        # Use the loaded model to generate a prediction.
        pred = model.predict(image)

        # Prepare and send the response.
        digit = np.argmax(pred)
        prediction = {'digit':int(digit)}
        return jsonify(prediction)
if __name__ == "__main__":
    app.run()

Вот команда curl:

curl -F 'file=@small_cat.png' 127.0.0.1:5000/predict

, а вот ошибка:

ValueError: cannot reshape array of size 12288 into shape (1,1,64,64)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...