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

ml-engine - no module named trainer

我有一个目录:

/ml_engine
  setup.py
  /trainer
    __init__.py
    task.py
    model.py

我有一个与 sklearn mixin 一起使用的自定义模型,允许我将该模型用作 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 是否支持这种操作?

您需要 运行 python setup.py --sdist 然后将 dist/trainer.tgz 上传到 GCS 并将其用作 --package-uris

我使用 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)

当我尝试部署模型时,它报告了这个错误:

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.joblib. No module named sklearn_crfsuite.estimator. (Error code: 0)"

部署模型: gcloud alpha ml-engine 版本创建 v1 --model teste --origin $ORI --python-version 2.7 --runtime-version 1.8 --framework scikit-learn