我创建了一个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
,以便更快地生成预测?或者我还有其他不正确的事情吗?
提前感谢您的帮助!
答案 0 :(得分:0)
衡量计算机与Google云之间的延迟时间?尝试发送格式错误的网址并衡量响应时间。
检查部署服务的区域。
以30秒的间隔向服务发送五个请求。延迟是否会下降?