当训练好你的深度学习模型后,就可以考虑部署了。

今天介绍一种简易的部署方式:使用Flask作为后端,将PyTorch模型部署到网页上。

网络模型使用的是torchvision中集成的densenet121,并且已经在imagenet数据集上进行了预训练,网络的输入是1张图片,输出是这张图片的类别(1 from 1000)。

简而言之,这是一个用于1000分类的模型。

原代码来自PyTorch官方教程,本文在此基础上做了些小的改动:

  • 增加将用户上传的图片保存至服务器的static文件夹的功能,图片采用时间戳进行命名,防止因重名而被覆盖。
  • 微调前端代码,使得在预测完成后能够在前端同时展示图片和对应的预测结果。

代码文件的结构如下:
Alt text

配置好环境后,直接运行app.py即可,根据提示在浏览器中打开地址(蓝色):
Alt text

进入这个界面:
Alt text

(南极logo,逃~)

单击选择文件按钮,选择一张jpg,jpeg或png格式的图片,点击上传按钮,等候几秒,就能看到预测结果了:
Alt text

本来想着在heroku上部署一下,结果发现整个项目占用内存900多兆,而免费版的heroku只提供最大500兆的服务,不能白嫖的话就算了~~~
Alt text

项目的部分代码如下:
Alt text

完整代码可以在公众号后台回复demo获取。

写在最后:我自己本科非科班,对于前后端没有太多了解,仅仅是凭感觉改了些东西,如有不妥之处,欢迎大佬提出宝贵意见!

参考: