使用 PyTorch 和 MNIST 构建手绘数字识别器

这是一篇关于构建和部署“MNIST 思维映射器”应用的文章,主要内容如下:

  • 演示:可以观看此视频了解应用的工作方式。
  • 概述:作者作为应用和基础设施开发者,希望亲手训练和部署神经网络,并将其包装在 REST API 中,以构建允许用户与之交互的前端。文章详细介绍了构建和成功部署该应用的步骤及遇到的问题。
  • 开源代码:大部分工作都开源,此项目也不例外。
  • 应用流程图:前端提供可绘制画布,用户在其上涂鸦,定期将图像发送到后端 API,后端运行推理并返回预测数字,前端显示结果。
  • 模型训练:使用 PyTorch 定义简单神经网络架构,加载 MNIST 数据集,训练模型并保存到磁盘。还创建了一个简单的 FAST API 服务器进行自我测试。
  • 第一个挑战:Vercel 的 Python 支持不成熟,文档稀少,示例简单,错误信息不直观,如“data too long”,且缺乏常见捆绑问题的解决方案等重要细节。
  • 转换为 ONNX 并再次尝试:尝试将 PyTorch 模型转换为 ONNX 格式,以减少模型大小,但在作者的案例中未起作用,仍得到相同错误。
  • 在 Modal.com 中寻找 Python 后端主机:研究发现 Modal.com 轻量级且易于设置,将本地的 Fast API Python 后端转换为modal_function.py并部署,虽然存在冷启动问题,但开发者体验良好。
阅读 12
0 条评论