Salut les gars, je travaille sur un projet utilisant tensorflow sur la plate-forme de microservices Amazon Web Services et j'ai rencontré quelques problèmes. J'ai installé tensorflow en utilisant pip dans un virtualenv. Ensuite, j'ai pris le contenu de /env/lib/python2.7/site-packages/ et l'ai compressé avec mon code source dans un package de développement pour AWS Lambda (env est le nom de mon virtualenv). C'est le processus d'utilisation des bibliothèques python pour un processus AWS Lambda et je n'ai rencontré aucun problème avec d'autres bibliothèques. Je l'ai fait pour numpy, scipy, Pillow et un tas d'autres bibliothèques beaucoup moins prises en charge et elles ont toutes bien fonctionné avec Lambda.
Cependant, lorsque j'essaie d'utiliser tensorflow, cela renvoie ceci:
Impossible d'importer le module 'classifier' : Traceback (dernier appel le plus récent) : Fichier "/var/task/tensorflow/python/__init__.py",
ligne 52, dans
classify est le script source qu'AWS Lambda appelle lorsqu'il est invoqué et a été compressé avec le contenu de /env/lib/python2.7/site-packages/ comme je l'ai décrit.
Ces erreurs ont été corrigées à quelques autres endroits, mais aucune des solutions que j'ai trouvées sur ces pages n'a fonctionné pour moi, probablement parce qu'aucune d'entre elles n'utilisait lambda. Est-il possible que tensorflow ne fonctionne tout simplement pas avec lambda à cause de la façon dont lambda importe les bibliothèques ? Si tel est le cas, importez-vous de toute façon le package tensorflow à partir d'un dossier source que je télécharge sous forme de zip?
Étapes spécifiques à reproduire :
Il m'est venu à l'esprit que ce n'est probablement pas quelque chose que tensorflow prend probablement en charge étant donné que la plupart des gens n'utilisent pas tensorflow dans les conteneurs AWS, mais j'espère que quelqu'un pourra aider ou au moins faire de son mieux même s'il n'a pas spécifiquement d'expérience avec AWS.
Merci!!
D'accord, je n'ai aucune idée de ce que cela fait, mais cela a résolu tout ce problème ::
cd dans les packages de site
touch google/__init__.py
faites-le avant de compresser les packages de site
^bash
C'est fascinant. Je n'ai aucune idée du problème, mais il peut être endémique à AWS lambda. Je vais fermer ce sujet.
Je suis tombé dessus lors de mes voyages. Ce n'est pas Lambda, c'est le module protobuf
: https://github.com/google/protobuf/issues/1296
Commentaire le plus utile
D'accord, je n'ai aucune idée de ce que cela fait, mais cela a résolu tout ce problème ::
cd dans les packages de site
touch google/__init__.py
faites-le avant de compresser les packages de site
^bash