1、TensorFlow主要依賴包——Protocol Buffer & Bazel網絡
1. Protocol Buffer函數
首先要弄清三個概念:工具
name:張三 id:1234 email:zhangsan@abc.com
這樣的用戶信息就是一個結構化數據,name、id和email都是這個數據的屬性。測試
Protocol Buffer就是用來處理結構化數據的。ui
另外兩種常常被用來處理結構化數據的工具時XML和JSON,它們和Protocol Buffer的主要區別以下spa
XML、JSON | Protocol Buffer | |
序列化結果 | 可讀字符串 | 二進制流 |
還原操做 | 序列化結果包含格式信息,無需其餘信息便可還原 | 需事先定義數據格式,還原時也需使用這個定義好的格式。 |
因爲Protocol Buffer在序列化時可根據須要選定數據類型,它序列化出來的數據通常比XML格式小,解析時間也要快許多。code
Protocol Buffer定義數據格式的文件通常保存在.proto文件中,如blog
message user{ optional string name = 1 required int32 id = 2 repeated string email = 3 }
其中,每個message表明了一類結構化的數據,它的裏面定義了每個屬性的類型和名字。資源
屬性的類型能夠是:字符串
屬性的設置:
2. Bazel
一個自動化構建工具,用於對項目空間(workspace)中的程序進行編譯。
workspace能夠理解爲一個文件夾,它包含了編譯一個軟件所須要的源代碼以及輸出編譯結果的軟鏈接(symbolic link),其根目錄的基本結構以下:
Bazel對Python支持的編譯方式只有如下三種:
舉例見書p28-29。