标签: protocol-buffers

如何解决“AttributeError:模块'google.protobuf.descriptor'没有属性'_internal_create_key”?

from object_detection.utils import label_map_util在 jupyter notebook 中执行时遇到了它。其实就是tensorflow对象检测教程notebook(自带tensorflow对象检测api)完整的错误日志:

AttributeError                            Traceback (most recent call last)
<ipython-input-7-7035655b948a> in <module>
      1 from object_detection.utils import ops as utils_ops
----> 2 from object_detection.utils import label_map_util
      3 from object_detection.utils import visualization_utils as vis_util

~\AppData\Roaming\Python\Python37\site-packages\object_detection\utils\label_map_util.py in <module>
     25 import tensorflow as tf
     26 from google.protobuf import text_format
---> 27 from object_detection.protos import string_int_label_map_pb2
     28 
     29 

~\AppData\Roaming\Python\Python37\site-packages\object_detection\protos\string_int_label_map_pb2.py in <module>
     19   syntax='proto2',
     20   serialized_options=None,
---> 21   create_key=_descriptor._internal_create_key,
     22   serialized_pb=b'\n2object_detection/protos/string_int_label_map.proto\x12\x17object_detection.protos\"\xc0\x01\n\x15StringIntLabelMapItem\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x05\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12M\n\tkeypoints\x18\x04 \x03(\x0b\x32:.object_detection.protos.StringIntLabelMapItem.KeypointMap\x1a(\n\x0bKeypointMap\x12\n\n\x02id\x18\x01 \x01(\x05\x12\r\n\x05label\x18\x02 \x01(\t\"Q\n\x11StringIntLabelMap\x12<\n\x04item\x18\x01 \x03(\x0b\x32..object_detection.protos.StringIntLabelMapItem'
     23 ) …
Run Code Online (Sandbox Code Playgroud)

python protocol-buffers proto tensorflow object-detection-api

75
推荐指数
3
解决办法
6万
查看次数

如何将gRPC定义的API引入Web浏览器

我们想为我们的gRPC微服务构建一个Javascript/HTML gui.由于浏览器端不支持gRPC,我们考虑使用web-socket连接到node.js服务器,该服务器通过grpc调用目标服务.我们很难找到一个优雅的解决方案来做到这一点.特别是,因为我们使用gRPC流来推动我们的微服务之间的事件.似乎我们需要第二个RPC系统,只是为了在前端和node.js服务器之间进行通信.这似乎是很多开销和必须维护的额外代码.

有没有人有这方面的经验,或者知道如何解决这个问题?

javascript protocol-buffers node.js microservices grpc

71
推荐指数
5
解决办法
3万
查看次数

Thrift,Protocol Buffers,JSON,EJB等的性能比较?

我们正在研究传输/协议解决方案,并且即将进行各种性能测试,所以我想如果他们已经这样做了,我会向社区查询:

有没有人为简单的echo服务进行服务器性能测试,以及比较Linux上的EJB3,Thrift和Protocol Buffers的各种消息大小的序列化/反序列化?

主要语言是Java,C/C++,Python和PHP.

更新:我对此仍然很感兴趣,如果有人做了进一步的基准测试,请告诉我.此外,非常有趣的基准测试显示压缩JSON执行与Thrift/Protocol Buffers相似/更好,因此我也将JSON抛入此问题.

python java performance thrift protocol-buffers

68
推荐指数
5
解决办法
6万
查看次数

protobuf文本格式是什么样的?

Google Protocol Buffers不仅可以二进制格式序列化,还可以序列化为文本.但是我不能轻易找到这种文字的例子; 它会是什么样子?

预期答案:一个示例,涵盖protobuf IDL/proto文件允许的所有功能,包括文本形式的示例protobuf数据包.

serialization text protocol-buffers

67
推荐指数
3
解决办法
5万
查看次数

如何分配重复的字段?

我在python中使用协议缓冲区,我有内部Person消息

repeated uint64 id
Run Code Online (Sandbox Code Playgroud)

但是当我尝试分配时

person.id = [1, 32, 43432]
Run Code Online (Sandbox Code Playgroud)

我得到错误Assigment not allowed for repeated field "id" in protocol message object 如何分配给重复的字段?

python protocol-buffers

66
推荐指数
4
解决办法
5万
查看次数

提升序列化与谷歌协议缓冲?

有这些图书馆经验的人对他们喜欢哪一个有任何评论吗?使用中是否存在任何性能差异或困难?

c++ performance serialization protocol-buffers boost-serialization

64
推荐指数
8
解决办法
2万
查看次数

Java中是否存在用于协议缓冲区分隔I/O函数的C++等价物?

我正在尝试从C++和Java中的文件读取/写入多个Protocol Buffers消息.谷歌建议在消息之前写长度前缀,但默认情况下没办法(我可以看到).

但是,2.1.0版中的Java API收到了一组"Delimited"I/O函数,显然可以完成这项工作:

parseDelimitedFrom
mergeDelimitedFrom
writeDelimitedTo
Run Code Online (Sandbox Code Playgroud)

有C++等价物吗?如果没有,那么Java API附加的大小前缀是什么,所以我可以用C++解析这些消息?


更新:

这些现在存在于google/protobuf/util/delimited_message_util.hv3.3.0中.

c++ java serialization protocol-buffers

64
推荐指数
7
解决办法
2万
查看次数

Protobuf找不到共享库

我使用以下命令安装了protobuf:

./configure
make
make check
make install
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时,protoc我得到以下错误:

protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

protocol-buffers

63
推荐指数
3
解决办法
5万
查看次数

如何在protobuf 3中定义可选字段

我需要在protobuf(proto3语法)中指定带有可选字段的消息.就proto 2语法而言,我想表达的信息是这样的:

message Foo {
    required int32 bar = 1;
    optional int32 baz = 2;
}
Run Code Online (Sandbox Code Playgroud)

根据我的理解,"可选"概念已从语法proto 3(以及所需概念)中删除.虽然不清楚替代方法 - 使用默认值来声明尚未从发送方指定字段,但如果默认值属于有效值域,则会留下歧义(例如考虑布尔类型).

那么,我应该如何对上面的消息进行编码?谢谢.

protocol-buffers protocol-buffers-3

61
推荐指数
6
解决办法
5万
查看次数

什么是正确的Protobuf内容类型?

JSON application/json作为标准.对于一些人使用的protobuf application/x-protobuf,但我看到的东西和application/vnd.google.protobuf提议的一样奇怪.我们是否有RFC或其他一些标准可供我参考?

content-type protocol-buffers mime-types

60
推荐指数
1
解决办法
2万
查看次数