原作 Nadav Rotem
Root 编译自 GitHub
量子位 出品 | 公众号 QbitAI
据Reddit上围观用户说,用机器学习编译器及执行引擎Glow可以做到小几兆。
昨天,有一个Facebook研究人员Nadav Rotem在Reddit上放出了极简版的教程Compile neural networks into small executables,跟着这份教程,你也可以将神经网络编译出独立的可执行软件包。
也在苹果、英特尔工作过两三年的Nadav Rotem
这样,不仅能把编译时间最小化,还能方便Glow用户提前编译成软件包。
美滋滋。
编译前你要知道的事
软件包(Bundle)可以独立执行,是已经编译好的神经网络模型。下面以Makefile为例,向大家演示如何一步步把卷积神经网络编译成极小的可执行文件。举个栗子:
造个软件包
可以用Glow库创建软件包。
在CPU上,软件包是可以和某些可执行文件关联的目标文件。在其他架构体系上,软件包完全是另外一回事。
这份文档讲的主要是怎么用图像分类器工具,给主CPU创建软件包。
用-emit-bundle标签标出输出目录。
以上的指令按network_model_directory_name把神经网络模型编译好,然后生成一份软件包,其中包含两个文件,在output_directory_name目录里。
第一份文件以network_model_name.o命名,包含编译好的网络模型代码。这是个常规的目标文件,可导向项目的其他文件。
第二份文件是以network_model_name.weights命名,包含运行这份编译模型所需的权重。
最后,想一步步跟着压缩神经网络模型的胖友们,请前往:
https://github.com/pytorch/glow/blob/master/docs/AOT.md
想进一步了解Glow架构设计思想的话,可参考原作和他同事们发在arXiv的文章:
https://arxiv.org/pdf/1805.00907
— 完 —
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վ’ᴗ’ ի 追踪AI技术和产品新动态
“