protobuf

安装RPM包或源码包

匿名 (未验证) 提交于 2019-12-03 00:22:01
在Windows系统下安装软件很简单,双击后缀为.exe的文件不停下一步即可,但在Linux系统下面并不是那么简单。 Linux系统有三种安装软件的方式:RPM工具、yum工具、安装源码包。 RPM 是Red Hat Package Manager的缩写,由Red Hat公司开发。Linux系统中存在着一个关于 RPM 的数据库,记录着安装的包以及包与包之间的依赖关系, RPM包 是预先在Linux机器上编译并打包的文件。 每个 RPM包 的名称都由 . 和 - 分成了若干部分, RPM包 格式:包名、版本信息、发布版本号、运行平台。 常见的运行平台有: 32位:i386、i586、i686;64位:x86_64 。CentOS7不区分32位和64位,全部为64位。 安装 RPM包 的命令如下: [root@localhost ~]# mount /dev/cdrom /mnt mount: /dev/sr0 写保护,将以只读方式挂载 [root@localhost ~]# ls /mnt/ CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7 EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL [root@localhost ~

protobuf使用版本问题

匿名 (未验证) 提交于 2019-12-03 00:22:01
在使用protobuf编译后的.pb.h和.pb.cc文件时,报错 #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. .pb.h:731: error: 'kEmptyString' is not a member of 'google:: 确定应该是protobuf版本的问题。 因为第一次使用protobuf,不晓得自己Ubuntu上已经存在了protobuf。 命令which protoc 可以查看默认选用protoc的路径 命令 protoc --version 可以查看当前protoc版本 使用命令: root@hi3531:/home/work/protobuff/pc_protobuf/bin# protoc --version libprotoc 2.4.1 root@hi3531:/home/work/protobuff/pc_protobuf/bin# ./protoc --version libprotoc 2.6.1 可以看出

深度学习模型部署加密

匿名 (未验证) 提交于 2019-12-03 00:19:01
url:https://blog.csdn.net/leozwang/article/details/79392628 保护模型文件不易于复制 默认情况下,您的模型将以磁盘上的标准序列化probuf格式存储。理论上这意味着任何人都可以复制你的模型,所以我经常被问及如何防止这种情况。在实践中,大多数模型都是特定于应用程序的,并且通过优化来混淆,风险类似于拆解和重新使用代码的竞争对手的风险。如果你想让临时用户更难访问你的文件,可以采取一些基本的步骤。 我们的大多数示例使用ReadBinaryProto便捷调用来从磁盘加载GraphDef。这一步需要磁盘上的未加密的protobuf。幸运的是,调用的实现非常简单,编写一个可以在内存中解密的等价物是很容易的。以下是一些代码,展示了如何使用自己的解密过程来读取和解密protobuf: ``` Status ReadEncryptedProto(Env* env, const string& fname, ::tensorflow::protobuf::MessageLite* proto) { string data; TF RETURN IF_ERROR(ReadFileToString(env, fname, &data)); DecryptData(&data); // Your own function here. if (

Android使用gRPC

匿名 (未验证) 提交于 2019-12-03 00:19:01
首先需要配置Android studio对protobuf的支持 参考资料 https://blog.csdn.net/Dream_go888/article/details/80092991 https://plugins.gradle.org/plugin/com.google.protobuf#new-plugin-mechanism-info-body https://github.com/google/protobuf-gradle-plugin 第一步,添加protobuf-gradle-plugin插件 参考https://github.com/google/protobuf-gradle-plugin,在项目根目录build.gradle里添加 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.5' } } 完整示例如下 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories {

GOlang服务器使用CapnProto, Protobuf, RapidJson, SBE, FlatterBuff协议调研比较以及最后选择。

匿名 (未验证) 提交于 2019-12-03 00:18:01
1.先排除RapidJson. 2. 参看 CapnProto官方给出的图 给出的解释是SBE,FlatterBuff,和CapnProto相对于ProtoBuf最大的优点是0拷贝(不需要编码和解码过程)。 FlatterBuf和CapnProto采用随机存取。 SBE没有自己的SchemeLanguage采用XML,格式不美观。 3.过滤掉SBE后,发现CapnProto对Go的支持太弱,都是2015年可以跑的代码。现在跑不起来,要手动修改配置和代码搭建环境。 4.同样参考上图,CapnProto说这些序列化库的作者刚偏向于库的使用方向,FlatterBuff是游戏。 5.至此花了8小时选择FlatterBuff昨晚Golang游戏服务器的协议。Period. 文章来源: GOlang服务器使用CapnProto, Protobuf, RapidJson, SBE, FlatterBuff协议调研比较以及最后选择。

Google Protocol Buffer ѧϰ

匿名 (未验证) 提交于 2019-12-03 00:05:01
1. 概念 Protocol Buffer 是一种类似于 XML 的灵活高效的结构化数据存储格式,和XML相比,Protocol具有以下优势: 1) simpler 2) smaller:3-10倍 3) faster:20-100倍 4) less ambiguous 5) generate data access classes that are easier to use programmatically. 由于protocol buffer简单、高效的特点,其非常适用于作为模块、系统及平台无关的结构化数据描述格式,目前其支持C++、JAVA、PYTHON三种语言。 2. 使用 安装pb c++支持: 1)去http://code.google.com/p/protobuf/downloads/list下载最新版本:http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gz 2)解压,tar -zxvf protobuf-2.4.1.tar.gz 3) 安装: $ cd protobuf - 2.4 . 1 $ ./ configure ; $ make $ make check $ make install 此处需要注意,在ubuntu下,需要添加共享库路径: export LD_LIBRARY_PATH=/usr

九.Protobuf3特殊类型

匿名 (未验证) 提交于 2019-12-03 00:03:02
Protobuf3 Any类型 Any消息类型允许您将消息作为嵌入类型,而不需要它们 .proto定义。Any包含任意序列化的消息(字节),以及一个URL,该URL充当该消息的全局唯一标识符并解析为该消息的类型。要使用Any类型,你需要导入google/protobuf/any.proto. import "google/protobuf/any.proto" ; message ErrorStatus { string message = 1 ; repeated google . protobuf . Any details = 2 ; } 指定消息类型的默认类型URL是type.googleapis.com/packagename.messagename. 不同的语言实现将支持运行时库助手以typesafe方式打包和解压缩ANY类型的值――例如,在Java中,任何类型都有特殊的pack()和unpack()访问器,而在c++中有PackFrom()和UnpackTo()方法: // Storing an arbitrary message type in Any. NetworkErrorDetails details = ...; ErrorStatus status ; status . add_details ()-> PackFrom ( details ); //

ubuntu16.04安装官方cartographer

匿名 (未验证) 提交于 2019-12-02 23:56:01
工作空间名为catkin_cart 1.安装步骤:    https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html 2.按照他的步骤来,会在最后编译的时候出错 3.解决思路。   删除掉之前安装的cere和protobuf。 4.安装官方提供的cere和protobuf 5.分开编译   安装cartographer    cd cartographer mkdir build cd build cmake .. - G Ninja DProtobuf_DIR = "/usr/local/lib/cmake/protobuf/" - DPROTOBUF_INCLUDE_DIR = "/usr/local/include/google/protobuf/" - DPROTOBUF_LIBRARY = "/usr/local/lib/libprotobuf.a" ninja CTEST_OUTPUT_ON_FAILURE = 1 ninja test sudo ninja install 安装carographerROS sudo apt - get install - y python - wstool python - rosdep ninja - build cd ~ /catkin

gprc 环境搭建 多语言调用

匿名 (未验证) 提交于 2019-12-02 23:55:01
一、golang 1、protocal buffer安装 https://github.com/google/protobuf/releases下载安装包 解压后看到protoc.exe 我这里是windows 最后设置环境变量即可 2、安装 golang protobuf go get -u github.com/golang/protobuf/proto // golang protobuf 库 go get -u github.com/golang/protobuf/protoc-gen-go //protoc --go_out 工具 3、安装 gRPC-go go get google.golang.org/grpc 好啦开始写代码,我们就用网上的helloworld来测试 4、项目结构 golang 为服务端,其它语言都为客服端。 syntax = "proto3"; package helloworld; // The greeting service definition. service Greeter { // Sends a greeting rpc SayHello (HelloRequest) returns (HelloReply) {} } // The request message containing the user's name.

protobuf解析以及在android端反序列化Demo

匿名 (未验证) 提交于 2019-12-02 23:40:02
最近看了下protobuf,研究的版本还是比较老的2.6.1,最主要的原因是对protobuf能否压缩传输数据的原理感兴趣。写个博客记录一下,免得以后忘了。 先附上github的demo地址: https://github.com/aa5279aa/protobuff_androiddemo demo当中包含 1、客户端工程ProtobufClient,客户端通过注解进行反序列化 2、服务端工程ProtobufWeb,单纯的使用原生的protobuf生成的文件,依赖的jar包在lib文件夹当中。 3、contract工程ProtobufContract,定义契约的工程。当前工程用于生成google原生的.java契约文件。 4、单独的javaSE工程ProtobufForEclipse,里面包含Test测试类,提供序列化和反序列化测试。 一、protobuf的定义模型结构 首先,先看一下protobuf的数据定义结构,下面是一个例子。 option java_package = "com.lxl.servlet.pbmodel"; option java_outer_classname = "DemoRequestProto"; message DemoRequest{ optional int32 valueInt32 = 1; //请求参数1 optional int64