【问题标题】:Can't deploy a model created with scikit-learn on ML Engine无法在 ML Engine 上部署使用 scikit-learn 创建的模型
【发布时间】:2018-05-11 22:28:26
【问题描述】:

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

【问题讨论】:

    标签: deployment scikit-learn google-cloud-ml


    【解决方案1】:

    如果您运行的是 Datalab,则您运行的是不支持 scikit learn 的旧版本。 Datalab 的新更新将随时发布。

    但是,解决方法很简单。跑吧

    %bash
     gcloud components update
    

    在笔记本的单元格中

    【讨论】:

      【解决方案2】:

      您需要设置一些标志,特别是--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

      【讨论】:

      • 谢谢@rhaertel80,但似乎 --framework--python-version 不是有效参数,即使确实参考中的示例使用它...这是我收到的错误消息: (gcloud.beta.ml-engine.versions.create) unrecognized arguments: --framework SCIKIT_LEARN --python-version=2.7 (did you意思是'--runtime-version'?)
      • 嗨@David,很可能您正在运行旧版本的 SDK,因为最近向 SDK 添加了 --framework--python-version 标志(您将能够在Release Notes documentation page)。您可以通过运行gcloud version 检查您当前的版本,并使用gcloud components update 更新它。这应该可以解决您的 unrecognized arguments 错误问题。
      猜你喜欢
      • 1970-01-01
      • 2019-03-20
      • 2019-10-03
      • 1970-01-01
      • 2020-04-21
      • 2013-07-29
      • 2021-12-13
      • 2019-02-08
      • 1970-01-01
      相关资源
      最近更新 更多