Я столкнулся с этим недавно после обновления моего TensorFlow Object Detection API и исправил его, обновив привязки protobuf.
Такое сообщение об ошибке может возникать, если у вас установлены неправильные привязки protobuf, поскольку новые привязки могут быть несовместимы с привязками старой версии, на которые все еще ссылаются. Вы можете исправить это, загрузив новейшую версию protobuf и скомпилировав новые привязки.
Чтобы сделать это, следуйте инструкциям для «Ручной установки и использования protobuf-компилятора», найденным здесь: Ссылка на раздел , но чтобы доказать это в будущем в случае неработающей ссылки в будущем, я отмечу, что в настоящее время они проинструктируют вас чтобы:
- Сделать
tensorflow/models/research
текущим каталогом
- Загрузите и установите последнюю версию
protoc
(она же protobuf)
- Запустите процесс компиляции с загруженной версией (старая версия все еще может находиться на вашем пути, и она может вам понадобиться в другом месте).
./bin/protoc object_detection/protos/*.proto --python_out=.
- Добавить библиотеки к
PYTHONPATH
export PYTHONPATH=$PYTHONPATH:
`pwd`
:
`pwd`
/slim
- Проверка установки
python object_detection/builders/model_builder_test.py