protobuf生成prototxt文件

使用protobuf可以分为以下几步:
1 .proto文件的定义,在这个文件中定义了最终生成的prototxt格式
举个例子如下所示:

syntax = "proto2";
package label_proto;

message DetectLabel {
	optional string name = 1;
	optional int32 label = 2;
	optional string display_name = 3;
	optional string group = 4;
}

message DetectLabels {
	repeated DetectLabel item = 1;
}

2 将上述proto文件转换成python的py文件
执行命令:

	protoc -I=$SRC_DIR --python_out=$DST_DIR $SRC_DIR/addressbook.proto

3 将message转换成prototxt定义的string格式

import label_pb2
from google.protobuf.text_format import MessageToString
categories = [{"group":"gender", "name":"male", "full_name":"gender_male", "value":0 },{"group":"gender", "name":"famale", "full_name":"gender_famale", "value":1 }]
label = label_pb2.DetectLabels()
with open("labelmap_attributes.prototxt", "w") as f:
 	for idx, category in enumerate(categories):
    	each_item = label.item.add()
    	each_item.name = category.get("name")
    	each_item.label = category.get("value")
    	each_item.display_name = category.get("full_name")
    	each_item.group = category.get("group")
 	f.write(MessageToString(label))
	f.close()
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值