如何在CMLE中进行预测?

时间:2019-05-23 13:45:58

标签: tensorflow model google-cloud-platform

我已经在Tensorflow中训练了具有两个功能(国家和浏览器)的模型。数据中缺少一些值。因此,我使用了默认值。

我的目标是在Cloud Machine Learning中部署模型。在CML中部署模型之前,我在浏览器中调用了缺少值的模型。我使用的json是以下内容:

{"country": "Venezuela"}

json中缺少浏览器。我设法使用此json进行预测。

我使用以下代码来获取预测:

gcloud ml-engine local predict  \
    --model-dir=${PWD}/brave_trained_missing/export/exporter/1558617476 \
    --json-instances=./test.json

我将模型部署在GCP上并重复相同的过程。但是我得到一个错误:

"error": "Prediction failed: Error during model execution: AbortionError(code=StatusCode.INVALID_ARGUMENT, details=\"input size does not match signature\")"

我更改json并添加具有空值的变量:

{"country": "Venezuela", "browser": null}

但是随后出现以下错误:

{
  "error": "Prediction failed: Error processing input: Expected string, got None of type '_Message' instead."
}

我通过以下方式创建服务功能:

def serving_input_fn():
    json_feature_placeholders = {
      'country' : tf.placeholder_with_default(
        input = ['Zimbabwe'], 
        shape = [None]
      ),

      'browser' : tf.placeholder_with_default(
        input = ['Opera'], 
        shape = [None]
      )
    }

然后我通过以下命令行调用GCP预测:

gcloud ml-engine predict --model=${MODEL_NAME} --version=${MODEL_VERSION} --json-instances=./test.json

有人知道会发生什么吗?

0 个答案:

没有答案