python-2.7 - Caffe 到 Tensorflow(Ethereon 的 Kaffe): TypeError: Descriptors should not be created directly,,但仅从其父级检索

标签 python-2.7 tensorflow caffe protocol-buffers

我想使用 ethereon 的精彩包 caffe-tensorflow,但遇到了相同的问题
this closed issue :

当我运行示例或尝试 import 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.

我在带有 protobuf 3.0.0b2.post(但它也发生在 3.0.0a4 和 3.0.0b2 上)的 Linux 64 位 UBUNTU 14.04 机器上使用 Tensorflow 0.7.0 和 Python 2.7 和 anaconda。

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

你有什么建议?

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

最佳答案

将任何创建描述符的文件重命名为具有后缀“_pb2.py”将解决此问题。

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

关于python-2.7 - Caffe 到 Tensorflow(Ethereon 的 Kaffe): TypeError: Descriptors should not be created directly,,但仅从其父级检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38616620/

相关文章:

python - 我如何让 Python 计算一个单词中有多少个字母?

python - 使用Python AudioTools编辑Wave文件样本

tensorflow - tensorflow中恢复的模型对relu操作给出了不同的结果

python - Tensorflow 2.0 未使用所有 CPU 核心

python - 如何读取一个 hdf5 数据文件中的批处理进行训练?

macos - 在 Mac 上安装 Caffe 错误 : "fatal error: ' cblas. h' 文件未找到”

python-2.7 - Python argparse 不带字符 -

android - 运行 Kivy 应用程序,仍然可以看到电池和时间以及其他图标

python - 在 Caffe 中绘制网络时出错

c++ - 如何理解 Cifar10 预测输出?