python - 为什么使用 Google AI-Platform 进行本地训练无法在虚拟环境中进行?

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

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

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

gcloud ai-platform jobs submit training

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

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

最佳答案

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

存在一个非常简单的解决方法 - 不要使用gcloud ai-platform local train。 相反,只需直接调用 python 解释器即可:

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

关于python - 为什么使用 Google AI-Platform 进行本地训练无法在虚拟环境中进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58077958/

相关文章:

python - Seaborn clustermap 不显示所有行注释

google-cloud-platform - 将文件上传到 Google Persistent Disk

python - 估计器预测无限循环

tensorflow - 如何在 tf contrib estimator 中使用 GPU

docker - 有没有办法在 Cloud Run 中指定 `--build-arg`?

google-cloud-ml - 如何将base64编码图像传递给Tensorflow预测?

python - 使用seaborn/matplotlib创建具有特定特征的条形图

python - Pandas datetime 查找给定日期之前最近的日期。如果不存在,则获取最近的日期

python - 使变量彼此不相等

python-2.7 - 使用多个版本的 py2.7 安装 Google Cloud SDK 时出现 sqlite3 错误