ML 引擎:"Bad model detected... No module named trainer" 创建模型版本时
ML Engine: "Bad model detected... No module named trainer" when creating a model version
我已经在 ML Engine 上成功地训练了一个模型。我可以从我的云存储桶中获取 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
Returns:
错误:(gcloud.ml-engine.versions.create)检测到错误模型错误:"Failed to load model: Could not load the model: /tmp/model/0001/model.joblib. No module named 'trainer'. (Error code: 0)"
我该如何解决这个错误?
我的模型是一个 sklearn 管道。它使用 FunctionTransformer
调用 trainer.model
模块中的函数。我想知道提供预测服务的 VM 是否没有安装 trainer
包。但是,我无法 confirm/reject 这个假设,也无法在文档中找到指向包的方法。
你的假设是正确的。允许您上传自定义包以在预测时间使用的功能目前仅作为 alpha 功能提供。您可以通过此注册表单访问它:
https://docs.google.com/forms/d/e/1FAIpQLSc6fxgXQIyA6BDLfCKOJPu5CyCuOB_M_rGTws0629od5mlznw/viewform?usp=sf_link
我已经在 ML Engine 上成功地训练了一个模型。我可以从我的云存储桶中获取 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
Returns:
错误:(gcloud.ml-engine.versions.create)检测到错误模型错误:"Failed to load model: Could not load the model: /tmp/model/0001/model.joblib. No module named 'trainer'. (Error code: 0)"
我该如何解决这个错误?
我的模型是一个 sklearn 管道。它使用 FunctionTransformer
调用 trainer.model
模块中的函数。我想知道提供预测服务的 VM 是否没有安装 trainer
包。但是,我无法 confirm/reject 这个假设,也无法在文档中找到指向包的方法。
你的假设是正确的。允许您上传自定义包以在预测时间使用的功能目前仅作为 alpha 功能提供。您可以通过此注册表单访问它: https://docs.google.com/forms/d/e/1FAIpQLSc6fxgXQIyA6BDLfCKOJPu5CyCuOB_M_rGTws0629od5mlznw/viewform?usp=sf_link