python輕量化解析proto標頭檔案

2021-10-07 13:43:10 字數 892 閱讀 1397

protobuf 是什麼?

google protocol buffer(簡稱 protobuf)是一種輕便高效的結構化資料儲存格式,平台無關、語言無關、可擴充套件,可用於通訊協議和資料儲存等領域。

使用protobuf的好處?

下面是python解析c++編譯的protobuf例項。

首先,需要獲取定義的proto標頭檔案(簡單選取乙個變數如下)

message imagemsg{

required string session_id = 1;

required int32 frame_index = 2;

required bytes image_data = 3;

required int32 image_size = 4; //memory size of compressed jpg image

required: 表示是乙個必須字段,必須相對於傳送方,在傳送訊息之前必須設定該字段的值,對於接收方,必須能夠識別該字段的意思。傳送之前沒有設定required欄位或者無法識別required欄位都會引發編譯碼異常,導致訊息被丟棄。

另外常用的字段還有:

optional:表示是乙個可選字段,可選對於傳送方,在傳送訊息時,可以有選擇性的設定或者不設定該字段的值。對於接收方,如果能夠識別可選字段就進行相應的處理,如果無法識別,則忽略該欄位,訊息中的其它字段正常處理。

repeated:表示該欄位可以包含0~n個元素。其特性和optional一樣,但是每一次可以包含多個值。可以看作是在傳遞乙個陣列的值。

python將protobuf轉換成.py檔案

import protobuf

protoc --python_out=. +proto格式檔案

模型輕量化

1.輕量化網路 參考 mobilenet v1核心是把卷積拆分為depthwise pointwise兩部分。圖5為了解釋mobilenet,假設有 的輸入,同時有 個的卷積。如果設定 且,那麼普通卷積輸出為 如圖6。圖6 普通3x3卷積,k 2 depthwise是指將 的輸入分為 組,然後每一組...

Python 輕量化簡繁轉換

最近專案中用到了簡單的簡繁轉換,如果用opencc太重了,於是搜到了 zhconv 這個庫。zhconv提供基於 mediawiki 詞彙表的最大正向匹配簡繁轉換,python 2,3 通用。支援以下地區詞轉換 正好適合我不求轉換質量的輕量需求,所以介紹給更多需要的人。而且雖然該專案stars很少,...

Python 輕量化簡繁轉換

最近專案中用到了簡單的簡繁轉換,如果用opencc太重了,於是搜到了 zhconv 這個庫。zhconv提供基於 mediawiki 詞彙表的最大正向匹配簡繁轉換,python 2,3 通用。支援以下地區詞轉換 正好適合我不求轉換質量的輕量需求,所以介紹給更多需要的人。而且雖然該專案stars很少,...