机器学习项目是如何开发和部署的?
本文以一个小项目带你弄清 ML 的项目流程
这周做作业查资料时,无意中看到一个 GitHub 项目ML-web-app,它以 PyTorch 训练 MNIST 文字识别模型为例,介绍了从模型训练
到部署上线
的整个流程。是非常好的学习项目!下图是效果图:
笔者浏览了项目的代码,以学习为目的,简单解读下这个项目。
模型训练
模型训练是相对独立的部分,可以由算法工程师来做。总结起来就是调用 PyTorch 接口,建立一个神经网络,然后利用 MNIST 数据进行训练,最后把训练好的模型文件存储起来,后面部署的时候要用到。
服务部署
该项目使用 Flask 框架部署服务,为了方便阅读,笔者对代码进行了精简。
下面的代码中,通过加载预训练好的模型数据,得到模型实例,可以进行预测:
核心预测 API 路由,路径是/predict
。
请求过程
默认主页是通过模板渲染的,在 index.js 中定义了两个核心函数:
onRecognition
函数通过 Ajax 向/predict
API 路由发送 POST 请求,请求中封装了要识别的图片,然后获取模型预测结果。
showResult
函数把结果渲染出来。
总结
这个项目麻雀虽小,五脏俱全。可以帮助非算法类程序员一窥 ML 从建模到上线部署整个流程,透过火爆的趋势看清本质。
如果你对人工智能/机器学习感兴趣,本号给大家准备了福利,赠送三本周志华老师的新书《机器学习理论导引》,点击https://mp.weixin.qq.com/s/arWk6n5mDtL6O_2FYL3zPw查看详情,或者点击https://mp.weixin.qq.com/s/GtIJiNjwNMabhE4tHW31dQ领取私人订制购书满减券。福利不要错过~
文章持续更新,可以微信搜索「 机器学习与系统 」阅读最新内容,回复资料、*内推*、考研获取我为你准备的惊喜~
版权声明: 本文为 InfoQ 作者【陆道峰】的原创文章。
原文链接:【http://xie.infoq.cn/article/6b3da4555a29dc34b3ba647fb】。文章转载请联系作者。
评论