如何在网页上部署深度学习模型?
当训练好你的深度学习模型后,就可以考虑部署了。
今天介绍一种简易的部署方式:使用Flask作为后端,将PyTorch模型部署到网页上。
网络模型使用的是torchvision中集成的densenet121,并且已经在imagenet数据集上进行了预训练,网络的输入是1张图片,输出是这张图片的类别(1 from 1000)。
简而言之,这是一个用于1000分类的模型。
原代码来自PyTorch官方教程,本文在此基础上做了些小的改动:
- 增加将用户上传的图片保存至服务器的
static
文件夹的功能,图片采用时间戳进行命名,防止因重名而被覆盖。 - 微调前端代码,使得在预测完成后能够在前端同时展示图片和对应的预测结果。
代码文件的结构如下:
配置好环境后,直接运行app.py
即可,根据提示在浏览器中打开地址(蓝色):
进入这个界面:
(南极logo,逃~)
单击选择文件按钮,选择一张jpg,jpeg或png格式的图片,点击上传按钮,等候几秒,就能看到预测结果了:
本来想着在heroku上部署一下,结果发现整个项目占用内存900多兆,而免费版的heroku只提供最大500兆的服务,不能白嫖的话就算了~~~
项目的部分代码如下:
完整代码可以在公众号后台回复demo获取。
写在最后:我自己本科非科班,对于前后端没有太多了解,仅仅是凭感觉改了些东西,如有不妥之处,欢迎大佬提出宝贵意见!
参考: