[英]Running out of memory when deploying an extremely simple Flask app in Heroku
我想将使用 Fast AI 制作的简单机器学习模型 (resnet34) 部署到 Heroku。
我的整个烧瓶应用程序是一个文件:
from flask import Flask
from fastai.vision.all import *
app = Flask(__name__)
learn = load_learner("./export.pkl")
@app.route("/<path:image_url>")
def hello_world(image_url):
print(image_url)
response = requests.get(image_url)
img = PILImage.create(response.content)
predictions = learn.predict(img)
print(predictions)
return predictions[0]
我不明白为什么会发生这种情况……我的直觉告诉我垃圾收集器在这里应该没问题。
这是我的要求.txt
-f https://download.pytorch.org/whl/torch_stable.html
torch==1.8.1+cpu
torchvision==0.9.1+cpu
fastai>=2.3.1
Flask==2.0.1
gunicorn==20.1.0
Pillow
requests==2.26.0
编辑:我自己发布的答案并不完全正确。 根本原因是我没有关闭图像:正确的代码:
@app.route("/<path:image_url>")
def hello_world(image_url):
print(image_url)
response = requests.get(image_url)
img = PILImage.create(response.content)
predictions = learn.predict(img)
img.close()
return predictions[0]
我相信问题是pycache越来越大。
请务必使用以下环境变量集运行您的应用程序:
PYTHONDONTWRITEBYTECODE=1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.