我创建了一个 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 在后台运行,以便预测生成速度快得多?还是我做错了什么?
预先感谢您的帮助!
最佳答案
测量您的计算机和 Google 云之间的延迟?尝试发送格式错误的 URL 并测量响应时间。
检查服务部署的区域。
每隔 30 秒向服务发送 5 个请求。延迟会降低吗?
关于python - Cloud ML Engine 在线预测性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48253024/