2016-07-21 1 views
0

работает мой новейший код Python (который использует keras/tensorflow), я получаю эту ошибку:Ошибка при помощи tensorflow: потребности Protobuf 3.0.0, но находит 2.6.1 - PIP3 показывает 3.0.0b2 установлен

[libprotobuf FATAL google/protobuf/stubs/common.cc:61] This program requires version 3.0.0 of the Protocol Buffer runtime library, but the installed version is 2.6.1. Please update your library. If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library. (Version verification failed in "external/protobuf/src/google/protobuf/any.pb.cc".) terminate called after throwing an instance of 'google::protobuf::FatalException' what(): This program requires version 3.0.0 of the Protocol Buffer runtime library, but the installed version is 2.6.1. Please update your library. If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library. (Version verification failed in "external/protobuf/src/google/protobuf/any.pb.cc".) 

Однако , при выполнении списка PIP3 я получаю:

protobuf (3.0.0b2) 
tensorflow (0.9.0) 

(среди прочих)

Я использую Ubuntu 16.04, работает CUDA 7.5 на Nvidia 1070 GTX. Я обновил до последних версий всех соответствующих пакетов для моего кода, и я удалил и переустановил protobuf и tensorflow.

Эта ошибка возникает только с кодом, который я написал сегодня, а не с каким-либо другим кодом, который я запускал на этом компьютере раньше. Поэтому, вероятно, что-то не так с моим кодом, но сообщение об ошибке на самом деле не указывает на меня.

Может ли кто-нибудь помочь? Благодарю.

+0

Я просто столкнулся с этой проблемой. Переустановка «tensorflow» и «protobuf» с помощью 'pip' решила проблему. Надеюсь, это поможет! – Chris

+0

К сожалению, это мне не помогло. Тем временем я случайно убил свою материнскую плату, не смогу работать с этой машиной в течение 10 дней. –

+0

Bummer! Если вы вернетесь к этому, вы можете попробовать импортировать 'tensorflow' перед чем-либо еще. – Chris

ответ

1

Я использую Ubuntu 16.04, с тензорным потоком 0.90, установленным из источника, с cuda 8.0RC & cudann5. У меня была такая же ошибка с некоторым кодом keras, в котором использовалась бэкэндором tensorflow.

Это не 100% -ная проблема, когда проблема лежит, но она не появляется при запуске любого кода тензорного потока напрямую или с помощью skflow. До сих пор я столкнулся с проблемой при использовании keras, но после изучения кода keras backend я не вижу ничего подозрительного.

Однако, у меня есть решение, которое работает для меня. Как предложил Крис, если я гарантирую, что самый первый импорт, который происходит, это import tensorflow as tf, он загружается, как ожидалось, и все работает. Я предполагаю, что есть некоторый конфликт с модулем, где некоторые другие пакеты загружаются в другую версию protobuf до того, как, возможно, может возникнуть тензор.

Смежные вопросы