ml-engine-没有名为Trainer的模块

时间:2018-08-23 21:08:35

标签: python google-cloud-ml

我的目录为:

/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是否支持这种操作?

2 个答案:

答案 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