Cloud ML Engine在线预测性能

时间:2018-01-14 18:52:53

标签: python tensorflow machine-learning google-cloud-platform google-cloud-ml

我创建了一个Cloud ML Engine模型并试图生成在线/ HTTP预测,但我发现运行预测的延迟仍然很高。下面是我用来生成预测的Python脚本(来自here):

def predict_json(project, model, instances, version=None):
    service = googleapiclient.discovery.build('ml', 'v1')
    name = 'projects/{}/models/{}'.format(project, model)

    if version is not None:
        name += '/versions/{}'.format(version)

    response = service.projects().predict(
        name=name,
        body={'instances': instances}
    ).execute()

    if 'error' in response:
        raise RuntimeError(response['error'])

    return response['predictions']

当我的笔记本电脑上运行模型时,一旦我有一个tf.Session的图表并且所有变量都已恢复,正向传递通过网络需要大约0.16秒(批量大小为1)。但是,当我使用Cloud ML输入相同的数据时,即使我多次运行相同的脚本,前向传递大约需要3.6秒。

我怀疑每次尝试进行预测时都会从头开始重新加载模型 - 有没有办法在后台运行相同的tf.Session,以便更快地生成预测?或者我还有其他不正确的事情吗?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  1. 衡量计算机与Google云之间的延迟时间?尝试发送格式错误的网址并衡量响应时间。

  2. 检查部署服务的区域。

  3. 以30秒的间隔向服务发送五个请求。延迟是否会下降?