Google Cloud Machine Learning Engine 找不到本地执行的训练器模块
Google Cloud Machine Learning Engine cannot find trainer module for local execution
我试图通过尝试 运行 当地培训师来接触 Google Cloud Machine Learning (ML) Engine。我已遵循 Google 的设置说明并发出此命令:
gcloud ml-engine local train \
--module-name trainer \
--package-path $(pwd) \
--job-dir $JOB_DIR
我的训练器存在于文件 $(pwd)/trainer.py
中,但我收到此错误消息:
~/cmle-quickstart/bin/python: No module named trainer
我做错了什么?
代码必须在有效的 Python package 中,这将要求您有一个 __init__.py
,可以为空。
首先,创建 __init__.py
。来自与上面相同的目录 运行:
touch __init__.py
对于 运行 本地训练,您需要通过其完全限定名称引用模块,该名称现在包括模块的父目录。因此,如果您的目录结构如下所示:
- my_model
- __init__.py
- trainer.py
那么包名是my_model
,模块名当然是trainer
。因此,要 运行 训练,您将使用以下命令:
gcloud ml-engine local train \
--module-name my_model.trainer \
--package-path $(pwd) \
--job-dir $JOB_DIR
在这里,你告诉 gcloud
:我在 $(pwd)
有一个有效的 Python 包裹。我要你 运行 的包中的完全限定模块名称是 my_model.trainer
请注意,这等同于以下命令:
(cd $PACKAGE_PATH/.. && python -m my_model.trainer)
其中 PACKAGE_PATH
指向 my_model
目录。
另请参阅 recommended project structure 上的文档。
我试图通过尝试 运行 当地培训师来接触 Google Cloud Machine Learning (ML) Engine。我已遵循 Google 的设置说明并发出此命令:
gcloud ml-engine local train \
--module-name trainer \
--package-path $(pwd) \
--job-dir $JOB_DIR
我的训练器存在于文件 $(pwd)/trainer.py
中,但我收到此错误消息:
~/cmle-quickstart/bin/python: No module named trainer
我做错了什么?
代码必须在有效的 Python package 中,这将要求您有一个 __init__.py
,可以为空。
首先,创建 __init__.py
。来自与上面相同的目录 运行:
touch __init__.py
对于 运行 本地训练,您需要通过其完全限定名称引用模块,该名称现在包括模块的父目录。因此,如果您的目录结构如下所示:
- my_model
- __init__.py
- trainer.py
那么包名是my_model
,模块名当然是trainer
。因此,要 运行 训练,您将使用以下命令:
gcloud ml-engine local train \
--module-name my_model.trainer \
--package-path $(pwd) \
--job-dir $JOB_DIR
在这里,你告诉 gcloud
:我在 $(pwd)
有一个有效的 Python 包裹。我要你 运行 的包中的完全限定模块名称是 my_model.trainer
请注意,这等同于以下命令:
(cd $PACKAGE_PATH/.. && python -m my_model.trainer)
其中 PACKAGE_PATH
指向 my_model
目录。
另请参阅 recommended project structure 上的文档。