Почему локальное обучение с Google AI-Platform не работает в виртуальной среде? - PullRequest
1 голос
/ 24 сентября 2019

Я использую AI-платформу из Google Cloud Platform для обучения классификатора случайных лесов с помощью scikit-learn, используя этот шаблон из Google Cloud Platform GitHub.

Я настроилкод в некоторых местах, чтобы соответствовать моей собственной проблеме.Код написан на Python 3.5 с использованием PyCharm и на устройстве Ubuntu.Обучение модели в облаке работает отлично, используя следующую терминальную команду (исключая дополнительные аргументы):

gcloud ai-platform jobs submit training

Но когда я пытаюсь использовать локальную функцию обучения ai-платформы внутри моей виртуальной среды (python 3.5):

gcloud ai-platform local train

(исключая дополнительные аргументы).Он возвращает следующую ошибку:

Traceback (most recent call last):
  File "/snap/google-cloud-sdk/99/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/snap/google-cloud-sdk/99/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/merijn/PycharmProjects/user-matching/trainer/task.py", line 28, in <module>
    from trainer import model
  File "trainer/model.py", line 28, in <module>
    from trainer import utils
  File "trainer/utils.py", line 23, in <module>
    from tensorflow import gfile
ImportError: No module named tensorflow

Все зависимости правильно установлены в моей виртуальной среде, включая TensorFlow.До ошибки импорта TensorFlow это была ошибка импорта sklearn, которую я решил, установив модуль sklearn в моей обычной среде.Это подтверждает мое предположение, что это, вероятно, связано с Google SDK, работающим на python 2.7 в моей обычной среде.Поэтому, когда я запускаю команду gcloud в моем venv, она, скорее всего, запускает всю мою программу в моем обычном окружении, а не в venv, и до сих пор я не могу заставить ее работать в моем venv.Обратите внимание, что я уже пробовал много разных значений для аргументов --job-dir и --package-path.

После нескольких дней поиска в интернете я все еще не могу найти способ локального обучения с AI-платформой в виртуальной среде.среда с установленным Python 3.5.Надеюсь, вы поможете мне.

1 Ответ

1 голос
/ 25 сентября 2019

Вы правы.Это связано с тем, что gcloud не может выполнять программы Python3 локально.

Существует очень простой обходной путь - не используйте gcloud ai-cloud local train.Вместо этого просто вызовите интерпретатор Python напрямую:

export PYTHONPATH=${PYTHONPATH}:/some/dir/package/path
python3 -m trainer.task --job-dir /tmp ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...