通过这样的调用,我可以在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
等效的任何选项。
答案 0 :(得分:0)
这可能为时已晚,但是如果您使用一些自定义程序包训练了模型,则还需要在部署期间提供相同的自定义程序包(仅pickle文件没有您的自定义代码)。这可能是您的部署失败的原因。有关更多信息,请参见this。