ΠΡΠΈΠ²Π΅Ρ, ΡΠ΅Π±ΡΡΠ°, Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ 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, Π²
classify β ΡΡΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ AWS Lambda Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π·Π°Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ /env/lib/python2.7/site-packages/, ΠΊΠ°ΠΊ Ρ ΠΎΠΏΠΈΡΠ°Π».
ΠΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅ΡΡΠ°Ρ , Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½Π°ΡΠ΅Π» Π½Π° ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ , Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎ Π»ΡΠΌΠ±Π΄Π°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ, ΡΡΠΎ ΡΠ΅Π½Π·ΠΎΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΡΠΌΠ±Π΄ΠΎΠΉ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π»ΡΠΌΠ±Π΄Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ? ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ Π΅ΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ tensorflow ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ Ρ Π·Π°Π³ΡΡΠΆΠ°Ρ Π² Π²ΠΈΠ΄Π΅ zip-Π°ΡΡ ΠΈΠ²Π°?
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ°Π³ΠΈ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ:
ΠΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρ, ΡΡΠΎ ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ tensorflow, ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ tensorflow Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² AWS, Π½ΠΎ, Π½Π°Π΄Π΅ΡΡΡ, ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Ρ Π½ΠΈΡ Π½Π΅Ρ ΠΎΠΏΡΡΠ° ΡΠ°Π±ΠΎΡΡ Ρ ΠΠΠ‘.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!!
Π₯ΠΎΡΠΎΡΠΎ, Ρ ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ, Π½ΠΎ ΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ Π²ΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ::
cd Π² ΡΠ°ΠΉΡ-ΠΏΠ°ΠΊΠ΅ΡΡ
touch google/__init__.py
ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π·Π°Π°ΡΡ
ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠ°ΠΉΡΠ°
^ ΠΠ°Ρ
ΠΡΠΎ ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎ. Π― ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Ρ, Π² ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ½Π΄Π΅ΠΌΠΈΡΠ½ΠΎΠΉ Π΄Π»Ρ AWS lambda. Π― Π·Π°ΠΊΡΠΎΡ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ.
ΠΠ°ΡΠΊΠ½ΡΠ»ΡΡ Π½Π° ΡΡΠΎ Π² ΡΠ²ΠΎΠΈΡ
ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡΡ
. ΠΡΠΎ Π½Π΅ Lambda, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ protobuf
: https://github.com/google/protobuf/issues/1296 .
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π₯ΠΎΡΠΎΡΠΎ, Ρ ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ, Π½ΠΎ ΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ Π²ΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ::
cd Π² ΡΠ°ΠΉΡ-ΠΏΠ°ΠΊΠ΅ΡΡ
touch google/__init__.py
ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π·Π°Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠ°ΠΉΡΠ°
^ ΠΠ°Ρ