1. 小程序简介
AI Pocket 是一款能在微信小程序端运行 TensorFlow 模型的小程序,支持包括但不限于文本分类(计划中)、语音识别(计划中)、图像识别等领域的模型。
1.1 小程序特点
在需要使用机器学习算法(尤其涉及到神经网络模型时),通常的做法是前端(比如小程序)采集数据,通过网络调用后台提供的 API,从而实现模型预测。
AI Pocket 采用的是非主流做法:
1. 对训练得到的模型进行压缩,得到一个体积相对小、准确率尚可的模型;
2. 将模型缓存在 CDN 服务商的服务器上;
3. 在进行模型预测前,通过网络把模型下载到本机,然后在本地实时预测。
2. 开发故事
2.1 导火索
某一天,大佬和我聊到 Tfjs,问我有没可能搬到小程序上,说是没准可以做个爆款。
经过一番魔改,我成功把 tfjs 移植到了微信小程序上。然而,由于小程序 API 诸多的不完善,以及没有办法优雅地用上 webgl,模型预测速度实在太慢,就没有了爆款的下文。
2.2 首次开源
过了几个月,有人看到我写的一篇关于魔改 tfjs 的文章,留言表示很有兴趣,希望能开源。然后,我就整理了下旧代码并开源在了 GitHub 上。
2.3 改良优化
又过了几个月,同事给我分享了一篇文章,里面有提到 TensorFlow 官方对小程序的支持插件。我掐指一算,感觉可以继续搞搞。
我连夜瞄了 tfjs 最近的更新和小程序插件的代码,发现 tfjs 开始考虑对多平台的支持,而且小程序也开放了更多有利的 API。
于是,我就把之前开源的 Demo 再完善了下,用上了 webgl 加速,预测速度飞起,便有了现在的 AI Pocket。
2.4 把 AI 装进口袋
我希望把更多的 AI 模型装到 AI Pocket 上,在小程序上就可以跑机器学习/深度学习模型,打造一个「流弊」的 AI 口袋。
3. 代码开源
目前,代码开源并托管在 HunterXuan/wx-tfjs-demo 仓库中,欢迎各位大佬提建议 or 贡献代码!