如何在Google ML Engine上部署使用自定义程序包训练的模型?

时间:2019-03-26 13:42:39

标签: python scikit-learn google-cloud-ml

通过这样的调用,我可以在Google ML Engine上训练包含自定义功能的scikit学习模型:

gcloud ml-engine jobs submit training "module_name" \
  --job-dir gs://my_bucket/scikit_learn_job_dir \
  --package-path ./my_package/ \
  --module-name my_package.trainer.train \
  --region us-east1 \
  --runtime-version='1.12' \
  --python-version='3.5' \
  --scale-tier BASIC

此代码训练模型,并向model.pkl上载一个pickle文件gs://my_bucket/models

但是,尝试通过:部署时出现错误:

gcloud ml-engine versions create "version_name" \
  --model model_name \
  --origin gs://my_bucket/models \
  --runtime-version='1.12' \
  --framework "SCIKIT_LEARN" \
  --python-version='3.5'

该错误表明无法加载my_package。实际上,在--package-path命令documentation中找不到与version create等效的任何选项。

1 个答案:

答案 0 :(得分:0)

这可能为时已晚,但是如果您使用一些自定义程序包训练了模型,则还需要在部署期间提供相同的自定义程序包(仅pickle文件没有您的自定义代码)。这可能是您的部署失败的原因。有关更多信息,请参见this