我在Ubuntu中有两个程序:一个C++程序(TORCS游戏)和一个python程序.C++程序总是生成图像.我想将这些实时图像转换为python(也许是numpy.ndarray格式).所以我认为可能使用Google protobuf将图像序列化为字符串并通过ZMQ将字符串发送到python客户端是一种可行的方法.
问题:哪种值类型适合文件中的图像(指针).proto?换句话说,string在下面的例子中,我应该使用哪种值类型来替换类型?
message my_image{
repeated string image = 1
}
Run Code Online (Sandbox Code Playgroud)
这是我将图像写入内存的方式(uint8_t*image_data):
glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, (GLvoid*)image_data);
Run Code Online (Sandbox Code Playgroud)
最后,也许有更好的方法将图像(在内存中)传输到python客户端?
任何建议表示赞赏.
我在运行Ubuntu 14.04的PC上安装了pycharm-2016.1.4.我已经安装了keras(一个python包),pip install keras而pycharm 之前可以找到它.但它无法找到keras 现在.我不修改任何设置,所以这个问题可能是有线的.我的python版本是python2.7.

我pip list用来验证我是否安装了keras:
但是使用以下命令检查pycharm中的这个包:Settings - > Project - > Project Interpreter.Keras是NOT在包列表(所用的解释器是相同的结果,which python在终端).
欢迎任何建议.谢谢.
是否有任何工具可以监控PyTorch中的网络培训?就像tensorflow中的tensorboard。
我使用C++ protobuf将数据序列化为字符串.
/***** cpp code *****/
string serialized_data;
message_cpp.SerializeToString(&serialized_data);
Run Code Online (Sandbox Code Playgroud)
问题:我可以serialized_data在python中解析吗?如何?
我尝试了以下代码,但它没有用.
##### python code
message_python = foo.ParseFromString(serialized_data)
print message_python
Run Code Online (Sandbox Code Playgroud)
但我得到None的输出print message_python.我也试过了
##### python code
message_python = foo.MergeFromString(serialized_data)
print message_python
Run Code Online (Sandbox Code Playgroud)
但我得到字符串的长度serialized_data作为输出print message_python,即message_python == len(serialized_data).这个结果与python protobuf API一致.
这是否意味着我无法解析在C++中序列化的python中的二进制数据?
更新:
我的目标:C++服务器总是生成图像流,图像被发送到python服务器.
这是我的整个代码:
.proto文件:
message MyImage{
repeated int32 width = 1;
repeated int32 height = 2;
repeated bytes image = 3;
}
Run Code Online (Sandbox Code Playgroud)
C++服务器:
zmq::context_t context(1);
zmq::socket_t socket(context, …Run Code Online (Sandbox Code Playgroud)