无法在 ML Engine 上部署使用 scikit-learn 创建的模型

Can't deploy a model created with scikit-learn on ML Engine

我正在尝试在 ML Engine 上部署使用 scikit-learn 创建的模型。我在 Datalab 笔记本上工作,在创建模型后,我使用 joblib.dump (model, 'model.joblib') 将其导出到文件中。获得该文件后,我将其复制到云存储中:gsutil cp ./model.joblib gs://..。最后,我通过键入以下命令创建了一个模型资源:gcloud ml-engine models create model --regions=us-central1。 当我尝试创建模型版本时出现问题,因为它说它希望找到一个 .pb/.pbtxt 保存的模型文件。 有谁知道如何处理这个问题而不必转移到 TensorFlow 模型? 任何帮助将不胜感激。

您需要设置一些标志,特别是 --framework(默认为 TensorFlow),还有 --runtime-version(必须是 1.4 或更高版本)和(可能)--python-version(默认为 2.7)。尝试类似 (reference):

gcloud beta ml-engine versions create v1 \
  --model my_model \
  --origin gs://path/to/model \
  --runtime-version="1.8" \
  --framework SCIKIT_LEARN
  --python-version="3.5"

有关每个运行时版本中包含的内容的列表(即帮助您选择哪个版本),请参阅 here

如果您运行正在使用 Datalab,那么您正在 运行正在使用不支持 scikit 学习的旧版本。 Datalab 的新更新随时都会发布。

但是,解决方法很简单。刚刚 运行

%bash
 gcloud components update

在笔记本的某个单元格中