Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Caffe到Tensorflow(Ethereon的Kaffe):TypeError:不应直接创建描述符,而应仅从其父级检索描述符_Python 2.7_Tensorflow_Caffe_Protocol Buffers - Fatal编程技术网

Python 2.7 Caffe到Tensorflow(Ethereon的Kaffe):TypeError:不应直接创建描述符,而应仅从其父级检索描述符

Python 2.7 Caffe到Tensorflow(Ethereon的Kaffe):TypeError:不应直接创建描述符,而应仅从其父级检索描述符,python-2.7,tensorflow,caffe,protocol-buffers,Python 2.7,Tensorflow,Caffe,Protocol Buffers,我想使用ethereon的精彩软件包caffe tensorflow,我遇到了中描述的相同问题 : 当我运行示例或尝试导入caffepb时,收到错误消息: >>> import caffepb Traceback (most recent call last): File "<stdin>", line 1, in <module> File "caffepb.py", line 28, in <module> typ

我想使用ethereon的精彩软件包caffe tensorflow,我遇到了中描述的相同问题 :

当我运行示例或尝试导入caffepb时,收到错误消息:

>>> import caffepb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "caffepb.py", line 28, in <module>
        type=None),
  File "/home/me/anaconda/python2.7/site-packages/google/protobuf/descriptor.py", line 652, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors should not be created directly, but only retrieved from their parent.
>>导入caffepb
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“caffepb.py”,第28行,在
类型=无),
文件“/home/me/anaconda/python2.7/site packages/google/protobuf/descriptor.py”,第652行,新__
_message.message.\u CheckCalledFromGeneratedFile()
TypeError:不应直接创建描述符,而应仅从其父级检索描述符。
我在linux 64位UBUNTU 14.04机器上使用Tensorflow 0.7.0,protobuf 3.0.0b2.post(但在3.0.0a4和3.0.0b2上也使用了Tensorflow)和Python 2.7和anaconda

我多次尝试重新安装protobuf和tensorflow,因为我认为不同的protobuf安装之间很可能存在冲突(或者至少这是github问题的结论),但即使在组合使用pip安装protobuf之后,我也无法使其工作,pip卸载protobuf或直接安装protobuf.whl

你有什么建议


编辑:使用虚拟环境可能是一个解决方案,但如果可能的话,我想避免它

我也遇到了同样的问题。我的解决方案(变通方法)与问题中的一条评论相同-在virtualenv中安装/运行tf和protobuf3(以及任何东西)


我不知道到底是什么问题。这只是一个可以尝试的解决方法。

将任何文件创建描述符重命名为后缀“\u pb2.py”将解决此问题

更新(2017年4月4日):
在“caffe tensorflow”项目中,我将“kaffe/caffe/caffepb.py”重命名为“caffe_pb2.py”,解决了这个问题。这是我在这个项目中找到的唯一一个创建PB描述符的文件。

Kai Yu的解决方案也对我有用。但是,我还建议删除caffe tensorflow/kaffe/caffe中的“caffepb.pyc”文件,以确保所有代码都不能使用旧名称的caffe_pb2模块


我相信这个模块只在文件caffe tensorflow/kaffe/caffe/resolver.py中使用。

感谢您的回答,但是这个解决方法在github问题中已经提到了,并没有说服我,因为它是一个太激进的解决方案。非常有趣的解决方案如果是真的,我将很快尝试!你能说得更具体些吗?您指的是存储库中的文件还是系统中安装的文件?