Skip to content Skip to sidebar Skip to footer

Caffe To Tensorflow (kaffe By Ethereon) : Typeerror: Descriptors Should Not Be Created Directly, But Only Retrieved From Their Parent

I wanted to use the wonderful package caffe-tensorflow by ethereon and I ran into the same problem described in this closed issue: When I run the example or try to import caffepb

Solution 1:

Renaming any file creating descriptors to have suffix "_pb2.py" will solve this problem.

UPDATE(April 4, 2017): In the "caffe-tensorflow" project, I renamed the "kaffe/caffe/caffepb.py" to "caffe_pb2.py", and this solved the problem. This is the only file I found in this project that creates PB descriptors.

Solution 2:

I met the same problem too. My solution (workaround) was the same as one of the comments in the issue - install/run tf and protobuf3 (and anything) in virtualenv.

I have no more idea about what the problem exactly is. This is just one workaround that you can give a try.

Solution 3:

Kai Yu's solution also worked for me. However, I also recommend deleting the "caffepb.pyc" file in caffe-tensorflow/kaffe/caffe to ensure that none of the code can still be using the caffe_pb2 module with the old name.

I believe that this module is only used in the file caffe-tensorflow/kaffe/caffe/resolver.py.

Post a Comment for "Caffe To Tensorflow (kaffe By Ethereon) : Typeerror: Descriptors Should Not Be Created Directly, But Only Retrieved From Their Parent"