【问题标题】:Why does local training with Google AI-Platform not work in a virtual environment?为什么使用 Google AI 平台进行本地培训在虚拟环境中不起作用?
【发布时间】:2020-01-24 10:33:14
【问题描述】:

我正在使用来自 Google Cloud Platform 的 AI 平台,使用来自 Google Cloud Platform GitHub 的 this template 使用 scikit-learn 训练随机森林分类器。

我已经在某些地方调整了代码以适应我自己的问题。该代码是在 Python 3.5 中使用 PyCharm 和 Ubuntu 设备编写的。使用以下终端 command(不包括附加参数)在云中训练模型非常好:

gcloud ai-platform jobs submit training

但是当我尝试在我的虚拟环境(python 3.5)中使用ai-platform的local training functionality时:

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模块解决了。这支持了我的猜测,它可能与在我的正常环境中运行在 python 2.7 上的 Google SDK 有关。因此,当在我的 venv 中运行 gcloud 命令时,它很可能在我的正常环境而不是我的 venv 中运行我的整个程序,到目前为止我无法强制它在我的 venv 中运行。请注意,我已经为参数--job-dir--package-path 尝试了许多不同的值。

经过几天的互联网搜索,我仍然找不到在安装了 python 3.5 的虚拟环境中使用 AI 平台进行本地训练的方法。希望你能帮帮我。

【问题讨论】:

    标签: python gcloud google-cloud-ml google-cloud-sdk gcp-ai-platform-training


    【解决方案1】:

    你是对的。这与 gcloud 无法在本地执行 Python3 程序有关。

    有一个非常简单的解决方法——不要使用gcloud ai-platform local train。 而是直接调用python解释器:

    export PYTHONPATH=${PYTHONPATH}:/some/dir/package/path
    python3 -m trainer.task --job-dir /tmp ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-24
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      • 2020-07-05
      • 2021-08-13
      • 1970-01-01
      • 2021-02-24
      相关资源
      最近更新 更多