Tensorflow: ΠΈΠ· дСскриптора ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° google.protobuf ΠΊΠ°ΠΊ _descriptor ImportError: Π½Π΅Ρ‚ модуля с ΠΈΠΌΠ΅Π½Π΅ΠΌ google.protobuf

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 28 июн. 2016  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: tensorflow/tensorflow

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, рСбята, я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌ tensorflow Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ микросСрвисов Amazon Web Services, ΠΈ столкнулся с нСсколькими ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. Π― установил Ρ‚Π΅Π½Π·ΠΎΡ€Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду. Π—Π°Ρ‚Π΅ΠΌ я взял содСрТимоС /env/lib/python2.7/site-packages/ ΠΈ Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π» Π΅Π³ΠΎ вмСстС с ΠΌΠΎΠΈΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для AWS Lambda (env β€” это имя ΠΌΠΎΠ΅Π³ΠΎ virtualenv). Π­Ρ‚ΠΎ процСсс использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python для процСсса AWS Lambda, ΠΈ я Π½Π΅ сталкивался с ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ. Π― сдСлал это для numpy, scipy, Pillow ΠΈ мноТСства Π΄Ρ€ΡƒΠ³ΠΈΡ… Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΈ всС ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Lambda.

Однако, ΠΊΠΎΠ³Π΄Π° я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Π½Π·ΠΎΡ€Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ это:

НСвозмоТно ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Β«ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ»: трассировка (послСдний послСдний Π²Ρ‹Π·ΠΎΠ²): Ρ„Π°ΠΉΠ» "/var/task/tensorflow/python/__init__.py", , строка 52, Π²ΠΈΠ· Ρ„Π°ΠΉΠ»Π° tensorflow.core.framework.graph_pb2 import * "/var/task/tensorflow/core/framework/graph_pb2.py", строка 6, Π²ΠΈΠ· дСскриптора ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° google.protobuf ΠΊΠ°ΠΊ _descriptor ImportError: Π½Π΅Ρ‚ модуля с ΠΈΠΌΠ΅Π½Π΅ΠΌ google.protobuf Ошибка ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Ρ‚Π΅Π½Π·ΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Если Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ bazel, Π²Π°ΠΌ Π½Π΅ слСдуСт ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ tensorflow ΠΈΠ· Π΅Π³ΠΎ исходного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°; поТалуйста, Π²Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· исходного Π΄Π΅Ρ€Π΅Π²Π° tensorflow ΠΈ пСрСзапуститС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python ΠΎΡ‚Ρ‚ΡƒΠ΄Π°.

classify β€” это исходный скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ AWS Lambda Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ вмСстС с содСрТимым /env/lib/python2.7/site-packages/, ΠΊΠ°ΠΊ я описал.

Π­Ρ‚ΠΈ ошибки Π±Ρ‹Π»ΠΈ рассмотрСны Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… мСстах, Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я нашСл Π½Π° этих страницах, Π½Π΅ сработало для мСня, вСроятно, ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ использовало лямбда. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π½Π·ΠΎΡ€Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ просто Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с лямбдой ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ лямбда ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ? Если Π΄Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΈ способ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ tensorflow Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· исходной ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽ Π² Π²ΠΈΠ΄Π΅ zip-Π°Ρ€Ρ…ΠΈΠ²Π°?

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ шаги для воспроизвСдСния:

  • Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ срСда
  • установка env/bin/pip https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl
  • zip содСрТимоС /env/lib/python2.7/site-packages с классификациСй Ρ„Π°ΠΉΠ»Π° .py
  • Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ aws
  • Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ aws, которая Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ сталкиваСтся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Β«ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Π½Π·ΠΎΡ€Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΊΠ°ΠΊ tfΒ»

МнС ΠΏΡ€ΠΈΡˆΠ»ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ, Ρ‡Ρ‚ΠΎ это, вСроятно, Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ tensorflow, учитывая, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ tensorflow Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² AWS, Π½ΠΎ, надСюсь, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅, Π΄Π°ΠΆΠ΅ Ссли Ρƒ Π½ΠΈΡ… Π½Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с АМБ.

Бпасибо!!

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π₯ΠΎΡ€ΠΎΡˆΠΎ, я понятия Π½Π΅ имСю, Ρ‡Ρ‚ΠΎ это Π΄Π΅Π»Π°Π΅Ρ‚, Π½ΠΎ это Ρ€Π΅ΡˆΠΈΠ»ΠΎ всю эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ::

cd Π² сайт-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹
touch google/__init__.py
сдСлайтС это, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ сайта
^ Π‘Π°Ρˆ

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π₯ΠΎΡ€ΠΎΡˆΠΎ, я понятия Π½Π΅ имСю, Ρ‡Ρ‚ΠΎ это Π΄Π΅Π»Π°Π΅Ρ‚, Π½ΠΎ это Ρ€Π΅ΡˆΠΈΠ»ΠΎ всю эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ::

cd Π² сайт-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹
touch google/__init__.py
сдСлайтС это, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ сайта
^ Π‘Π°Ρˆ

Π­Ρ‚ΠΎ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Π― понятия Π½Π΅ имСю, Π² Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ эндСмичной для AWS lambda. Π― Π·Π°ΠΊΡ€ΠΎΡŽ этот вопрос.

Наткнулся Π½Π° это Π² своих ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡΡ…. Π­Ρ‚ΠΎ Π½Π΅ Lambda, это ΠΌΠΎΠ΄ΡƒΠ»ΡŒ protobuf : https://github.com/google/protobuf/issues/1296 .

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ