项目名称
web 上运行 mge 模型 (210040016)
方案描述
使用WebAssembly将MegEngine与Web建立联系。
我的实现将保留大部分C++源代码,使用Typescript重写Python的部分,最后使用WebAssembly将Typescript和C++连接起来。
这样做的好处是,复用MegEngine中的运算符,甚至包括模型的定义和序列化方法,可以保证Megjs与MegEngine最大程度的兼容。
时间安排
L0 加载模型和数据 7.1-7.15
复用MegEngine核心代码,读取MegEngine模型。
op前向单测通过 7.16 - 8.1
将MegEngine中的算子(Naive)实现编译成WASM,然后使用ts编写接口,进行模型前向计算。
L2 - L3 线性回归模型 8.1 - 8.15
使用Tensor直接计算,完成线性回归模型
L4 - L5 mnist模型 8.16 - 8.30
使用High Level的模型实现Mnist
L6 mnist web demo 9.1 - 9.30
完成整个项目展示
造轮子之前,最好先明确这个轮子的价值,避免重复造轮子。而 Megengine.js 的价值主要体现在两个方面:
深度学习不断发展,用户对于自己隐私和数据的保护意识也逐渐增强,如果应用需要将一些敏感数据(身份证照片等)上传到服务器,那用户一定会心有疑虑。边缘设备的计算能力不断增加,也让端上运算变得可行。除了系统层面调用 API 来计算,像微信小程序这类需要运行在另一个程序内部,无法直接接触系统 API 的应用,并没有比较合适的方法来计算,许多深度学习应用小程序依然需要将数据发送到服务器上进行计算,在高风险场景下是行不通的。