我的目录为:
/ml_engine
setup.py
/trainer
__init__.py
task.py
model.py
我有一个与sklearn mixins一起使用的自定义模型,使我可以将该模型用作sklearn模型。
但是,当我尝试上传模型时,会出现错误:
gcloud alpha ml-engine versions create m_0_03 \
--model model_9281830085_204245556_prophet \
--origin gs://BUCKET/9281830085_204245556/2018-08-23T13:37:00.000218 \
--runtime-version=1.9 \
--framework SCIKIT_LEARN \
--python-version=3.5 \
--package-uris=["gs://BUCKET/model_packages/trainer/"] \
--model-class=trainer.model \
Creating version (this might take a few minutes)......
...................................................................................................failed.
ERROR: (gcloud.alpha.ml-engine.versions.create) Bad model detected with error: "Failed to load model: Could not load the model: /tmp/model/0001/model.pkl. No module named 'trainer'. (Error code: 0)"
带有alpha命令的ml-engine是否支持这种操作?
答案 0 :(得分:1)
您需要运行python setup.py --sdist
,然后将dist/trainer.tgz
上传到GCS并将其用作--package-uris
。
答案 1 :(得分:0)
我使用sklearn_crfsuite估算器
crf = sklearn_crfsuite.CRF(
algorithm='lbfgs',
c1=0.1,
c2=0.1,
max_iterations=2,
all_possible_transitions=True
)
我将按如下所述保存模型:
model = 'model.joblib'
joblib.dump(crf, model)
,当我尝试部署模型时,它报告此错误:
错误:(gcloud.alpha.ml-engine.versions.create)检测到错误的模型 出现错误:“无法加载模型:无法加载模型: /tmp/model/0001/model.joblib。未命名模块 sklearn_crfsuite.estimator。 (错误代码:0)”
部署模型: gcloud alpha ml-engine版本创建v1 --model teste --origin $ ORI --python-version 2.7 --runtime-version 1.8 --framework scikit-learn