setup.py 未在 google 云 ml 中执行

setup.py not getting executed in google cloud ml

我正在尝试在 google 云 ml 上训练 keras 模型。我已按照此处的每条说明进行操作:https://github.com/clintonreece/keras-cloud-ml-engine 当我尝试在本地 运行 它时,我得到了 scikit-learn 的导入错误,当我尝试在云上 运行 它时,作业失败了。 我认为 setup.py 文件没有被执行。 这是 setup.py 文件的内容:

'''Cloud ML Engine package configuration.'''
from setuptools import setup, find_packages

REQUIRED_PACKAGES = ['keras',
                     'pandas',
                     'sklearn',
                     'numpy',
                     'h5py']

setup(name='iris_classifier',
      version='1.0',
      packages=find_packages(),
      include_package_data=True,
      description='IRIS classifier keras model on Cloud ML Engine',
      author='Loonycorn',
      author_email='contact@loonycorn.com',
      license='MIT',
      install_requires=[REQUIRED_PACKAGES],
      zip_safe=False)

为什么我的包裹没有安装?

训练命令如下:

gcloud ml-engine jobs submit training $JOB_NAME \
    --job-dir $JOB_DIR \
    --runtime-version 1.0 \
    --module-name trainer.iris_classifier \
    --package-path ./trainer \
    --region $REGION \
    -- \
    --train-file gs://$BUCKET_NAME/data/iris.csv

Setup.py 位于根目录中,其中包含数据文件夹(包含 csv)和训练文件夹(包含 iris_classifier.py 和 init.py 文件)。

这是作业失败时的错误:

{
 insertId:  "2sbguefffpjr1"  
 logName:  "projects/loonycorn-kerasdeployment/logs/ml.googleapis.com%2Firis_classifier_train_220180511_200703"  
 receiveTimestamp:  "2018-05-11T14:38:18.976968299Z"  
 resource: {…}  
 severity:  "ERROR"  
 textPayload:  "The replica master 0 exited with a non-zero status of 1."  
 timestamp:  "2018-05-11T14:38:18.976968299Z"  
}

我已经授予了 cloud-ml 服务帐户的日志写入权限,这仍然是我得到的所有日志。

使用 gcloud ml-engine jobs stream-logs $JOB_NAME 命令流式传输日志。显然 setup.py 正在执行,但由于我没有提到要安装的依赖项的版本,正在安装的 scikit 学习版本没有 model_selection 模块。 使用所有依赖项的版本编辑 setup.py 后,一切正常。 我建议将要安装的依赖项的版本明确设置为本地计算机上的依赖项版本,这样您就知道支持和包含了所有内容。