如何在ML Engine上调试预测,预测返回空数组

时间:2019-05-16 08:35:53

标签: google-cloud-platform tensorflow-serving google-cloud-ml tfx

我正在实现tfx管道,类似于芝加哥出租车示例 推入模型的预测返回{"predictions": []}。 如何调试此问题?

我可以看到所做预测的日志。但是因为它返回一个空数组,所以状态码为200,并且没有关于出错原因的有用信息。我希望预测请求数据没有正确传递给估算器。

芝加哥示例将其用作服务接收者,并且可以正常工作。我认为它也适用于我的示例

def _example_serving_receiver_fn(transform_output, schema):
    """Build the serving in inputs.
    Args:
        transform_output: directory in which the tf-transform model was written
        during the preprocessing step.
        schema: the schema of the input data.
    Returns:
        Tensorflow graph which parses examples, applying tf-transform to them.
    """

    raw_feature_spec = _get_raw_feature_spec(schema)
    raw_feature_spec.pop(_LABEL_KEY)

    raw_input_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(
        raw_feature_spec, default_batch_size=None)

    serving_input_receiver = raw_input_fn()

    transformed_features = transform_output.transform_raw_features(
        serving_input_receiver.features)

    return tf.estimator.export.ServingInputReceiver(
        transformed_features, serving_input_receiver.receiver_tensors)

主要区别在于,我只希望输入1个:用'|': 'java|python'分隔的一串编程语言。

然后我在预处理函数中将该字符串分割开,并使其成为形状为500的多个热编码数组(我正好有500个选项)

也可能是tf转换未正确转换预测的情况。 (tf转换是tfx管道的一部分,可以正常运行)

请求:{"instances": ["javascript|python"]}

响应:{"predictions": []}

预期的响应:{"predictions": [520]}(其为回归模型)

0 个答案:

没有答案