我正在使用来自谷歌云平台的AI-platform来训练一个带有scikit的随机森林分类器-使用来自谷歌云平台GitHub的this template学习。
我已经在一些地方调整了代码,以适应我自己的问题。代码是用Python3.5编写的,使用PyCharm,在Ubuntu设备上。使用以下终端command在云中训练模型可以很好地工作(不包括额外的参数):
gcloud ai-platform jobs submit training但是当我试图在我的虚拟环境(Python3.5)中使用ai- 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模块解决了这个问题。这支持了我的猜测,即它可能与在我的正常环境中运行在python2.7上的Google SDK有关。因此,当在venv中运行gcloud命令时,它很可能在我的正常环境中运行整个程序,而不是在venv中,到目前为止,我无法强制它在venv中运行。请注意,我已经为参数--job-dir和--package-path尝试了许多不同的值。
在互联网上搜索了几天后,我仍然找不到在安装了Python3.5的虚拟环境中使用AI-platform进行本地训练的方法。希望你能帮我。
发布于 2019-09-25 15:33:13
你是正确的。这与gcloud无法在本地执行Python3程序有关。
有一个非常简单的解决方法--不要使用gcloud ai-platform local train。相反,只需直接调用python解释器:
export PYTHONPATH=${PYTHONPATH}:/some/dir/package/path
python3 -m trainer.task --job-dir /tmp ...https://stackoverflow.com/questions/58077958
复制相似问题