TensorFlow中結構化資料工具Protocol Buffer
Protocol Buffer是Google開發的處理結構化資料的工具.
什麼是結構化資料?
假設要記錄一些使用者資訊,每個使用者的資訊中都包括使用者的名字,ID和email地址,那麼每個使用者的資訊可以表示成一下的形式:
name:張三id:12345email:zhangsan@abc.com
這就是一個結構化的資料。是指擁有多種屬性的資料,比如上述擁有三個不同的屬性。
當要將這些結構化的使用者資訊持久化或者進行網路傳輸時,就需要先將它們序列化;所謂序列化就是將結構化的資料變成資料流的形式,簡單來說就是變成字串。如何將結構化的資料序列化,並從結構化之後的資料流中還原出原來的結構化資料,統稱為處理結構化資料,這就是Protocol Buffer解決的主要問題。
Protocol Buffer格式的資料與XML和json格式的資料有著比較大的差別。首先,Protocol Buffer序列化之後得到的資料不是可讀的字串,而是二進位制流;其次,XML或者json格式資料資訊都包含在了序列化之後的資料中,不需要任何其他資訊就能還原資料;但使用Protocol Buffer時需要先定義資料的格式(schema),還原一個序列化之後的資料將需要使用這個定義好的資料格式。
以下是資料格式定義檔案:
message user { optional string name = 1; required int32 id = 2; repeated string email = 3; }
因為這樣的差別,Protocol Buffer序列化出來的資料要比XML格式的資料小3到10倍,解析時間要快20到100倍。
Protocol Buffer定義資料格式的檔案一般儲存在.proto中。每一個message代表了一類結構化資料,比如這裡的使用者資訊,message裡面定義了每一個屬性的型別和名字,屬性的型別可以布林型,整數型,實數型,字元型這樣的基本型別。也可以是另一個message,Protocol Buffer也定義了一個屬性是必須的(required),還是可選的(optional),或者是可重複的(repeated),在最新的Protocol Buffer3中已經不再支援required型別。
Protocol Buffer是TensorFlow系統中使用到的重要工具,TensorFlow中的資料基本上都是透過Protocol Buffer來組織的,分散式TensorFlow的通訊協議gRPC也是以這個作為基礎的。
作者:富城
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1747/viewspace-2812206/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- protocol bufferProtocol
- Protocol Buffer序列化Java框架-ProtostuffProtocolJava框架
- TarsGo支援Protocol BufferGoProtocol
- Protocol Buffer 使用指北Protocol
- TarsGo 支援 protocol bufferGoProtocol
- 解密gRPC: Protocol Buffer解密RPCProtocol
- 結構化資料、半結構化資料和非結構化資料
- Spring Cloud OpenFeign整合Protocol BufferSpringCloudProtocol
- 【Tensorflow_DL_Note4】Tensorflow中的常量、變數和資料型別的結構變數資料型別
- 結構化資料與非結構化資料的差異
- protocol buffer的高效編碼方式Protocol
- 資料結構 中綴表示式轉化資料結構
- Netty使用Google Protocol Buffer完成伺服器高效能資料傳輸NettyGoProtocol伺服器
- Protocol buffer---Protobuf3開發指南Protocol
- 可持久化資料結構持久化資料結構
- gRPC in ASP.NET Core 3.0 -- Protocol Buffer(1)RPCASP.NETProtocol
- google protocol buffer——protobuf的編碼原理二GoProtocol
- 資料結構中樹形結構簡介資料結構
- 資料庫結構的優化資料庫優化
- python字典和結構化資料Python
- 可持久化資料結構1持久化資料結構
- 資料結構最佳化DP資料結構
- Redis中的資料結構Redis資料結構
- JavaScript 中的 資料結構JavaScript資料結構
- Spark效能優化:優化資料結構Spark優化資料結構
- google protocol buffer——protobuf的基本使用和模型分析GoProtocol模型
- 透過結構化資料構建頁面
- Android序列化:Google出品的序列化神器Protocol Buffer不瞭解一下?AndroidGoProtocol
- 【Immutable.js】可持久化資料結構以及結構分享JS持久化資料結構
- C#中的資料結構C#資料結構
- Python中資料結構與特性Python資料結構
- 【資料結構篇】認識資料結構資料結構
- google protocol buffer——protobuf的使用特性及編碼原理GoProtocol
- google protocol buffer——protobuf的問題及改進一GoProtocol
- google protocol buffer——protobuf的問題和改進2GoProtocol
- 谷歌機器學習實戰的7個步驟:用於結構化資料的TensorFlow示例谷歌機器學習
- PostgreSQL 資料庫結構(DDL)比對工具 pgquarrelSQL資料庫
- 【SqlServer】 理解資料庫中的資料頁結構SQLServer資料庫