神經網路模型的可執行軟體包,可以壓縮到多小?
來自專欄 量子位
原作 Nadav Rotem
Root 編譯自 GitHub量子位 出品 | 公眾號 QbitAI
據Reddit上圍觀用戶說,用機器學習編譯器及執行引擎Glow可以做到小几兆。
昨天,有一個Facebook研究人員Nadav Rotem在Reddit上放出了極簡版的教程Compile neural networks into small executables,跟著這份教程,你也可以將神經網路編譯出獨立的可執行軟體包。
這樣,不僅能把編譯時間最小化,還能方便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技術和產品新動態
推薦閱讀:
※Michael Nielsen對交叉熵的解釋(三)
※受限制玻爾茲曼機(RBM)的能量函數及其梯度求解
※RNN Part 3-Back Propagation Through Time and Vanishing Gradients(BPTT演算法和梯度消失)
※Improving Deep Neural Networks 第二周
※Recognant創始人:神經網路其實很簡單,所以,別假裝你是個天才