Я пытаюсь развернуть классификатор изображений Keras CNN как приложение flask. когда я пытаюсь загрузить изображение для классификации, появляется следующая ошибка.
Это мой flask сценарий, он считывает изображение из HTTP-запроса и отображает шаблон с результатами классификации:
classifier = load_model('e:/catVSdog_Model.h5')
def predict(iimage, target):
def predict(iimage, target):
iimage=iimage.resize(target)
iimage = img_to_array(iimage)
iimage = np.expand_dims(iimage, axis = 0)
prediction = classifier.predict(iimage)
if prediction[0][0] == 1:
result = 'dog'
else:
result = 'cat'
return result
@app.route("/", methods=["GET", "POST"])
def upload_image():
if request.method == "POST":
if request.files:
uploaded_image = request.files["image"].read()
#uploaded_image = Image.open(io.BytesIO(uploaded_image))
result=predict(uploaded_image, target=(64, 64))
print(uploaded_image)
#uploaded_image.save(os.path.join(app.config["IMAGE_UPLOADS"], uploaded_image.filename))
return render_template('index.html', result = result)
#return redirect(request.url)
return render_template("index.html")
if __name__== '__main__':
app.run()
Это исключение, которое я получаю при отправке запроса:
Traceback (most recent call last):
File "C:\Users\Ali\Anaconda3.2020\lib\site-packages\werkzeug\datastructures.py", line 3087, in __getattr__
return getattr(self.stream, name)
AttributeError: 'SpooledTemporaryFile' object has no attribute 'resize'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Ali\Anaconda3.2020\lib\site-packages\flask\app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\Ali\Anaconda3.2020\lib\site-packages\flask\app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\Ali\Anaconda3.2020\lib\site-packages\flask\app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\Ali\Anaconda3.2020\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\Ali\Anaconda3.2020\lib\site-packages\flask\app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\Ali\Anaconda3.2020\lib\site-packages\flask\app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\Ali\Desktop\FlaskCNNProject\untitled2.py", line 63, in upload_image
result=predict(iimage, target=(64, 64))
File "C:\Users\Ali\Desktop\FlaskCNNProject\untitled2.py", line 41, in predict
iimage=iimage.resize(target)
File "C:\Users\Ali\Anaconda3.2020\lib\site-packages\werkzeug\datastructures.py", line 3093, in __getattr__
return getattr(self.stream._file, name)
AttributeError: '_io.BytesIO' object has no attribute 'resize'
Как исправить эту ошибку?