我已经成功地在ML Engine上训练了模型。我可以从Cloud Storage存储桶中获取model.joblib
文件并进行加载,还可以使用gcloud
获得本地预测。但是我无法创建模型版本。
JOB_DIR=$(gcloud ml-engine jobs describe "$JOB" \
--format="value(trainingInput.jobDir)")
gcloud ml-engine versions create "$VERSION" \
--model "$MODEL_NAME" \
--origin "$JOB_DIR" \
--framework scikit-learn \
--runtime-version 1.10 \
--python-version 3.5
返回:
错误:(gcloud.ml-engine.versions.create)检测到错误的模型,并显示错误:“无法加载模型:无法加载模型:/tmp/model/0001/model.joblib。没有名为'trainer的模块'。(错误代码:0)“
如何解决此错误?
我的模型是sklearn管道。它使用FunctionTransformer
来调用trainer.model
模块中的函数。我想知道提供预测的VM是否尚未安装该trainer
软件包。但是,我一直无法确认/拒绝这个假设,也无法在文档中找到指向该软件包的方法。
答案 0 :(得分:0)
您的假设是正确的。允许您上传自定义程序包以供预测时使用的功能仅在当下可用作alpha功能。您可以通过以下注册表格访问它: https://docs.google.com/forms/d/e/1FAIpQLSc6fxgXQIyA6BDLfCKOJPu5CyCuOB_M_rGTws0629od5mlznw/viewform?usp=sf_link