繁体   English   中英

在 Heroku 中部署极其简单的 Flask 应用程序时内存不足

[英]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]

它工作正常几次,但 heroku 然后开始记录以下内容: 图像图像 691×44 18.9 KB

我不明白为什么会发生这种情况……我的直觉告诉我垃圾收集器在这里应该没问题。

这是我的要求.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM