Python 云ML引擎在线预测性能

Python 云ML引擎在线预测性能,python,tensorflow,machine-learning,google-cloud-platform,google-cloud-ml,Python,Tensorflow,Machine Learning,Google Cloud Platform,Google Cloud Ml,我创建了一个云ML引擎模型,并尝试生成在线/HTTP预测,但我发现运行预测的延迟仍然很高。下面是我用来生成预测(来自)的Python脚本: 当模型在我的笔记本电脑上运行时,一旦我有了一个tf.Session并恢复了图形和所有变量,通过网络的前向传递大约需要0.16s(批量大小为1)。然而,当我使用Cloud ML输入相同的数据时,向前传递大约需要3.6秒,即使我多次运行相同的脚本也是如此 我怀疑每次我尝试进行预测时,都会从头开始重新加载模型-有没有办法让相同的tf.Session在后台运行,以便

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

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

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

提前感谢您的帮助

  • 测量您的计算机和谷歌云之间的延迟?尝试发送格式错误的URL并测量响应时间

  • 检查部署服务的区域

  • 每隔30秒向服务发送五个请求。延迟下降了吗


  • 根据,可以使用模型的默认版本,也可以每次指定不同的版本。您每次都使用相同的版本吗?检查一下这个文件。也许也是有帮助的-检查云资源的配置方式以进行预测。感谢您的回复。我使用的模型只有一个版本(我已将其设置为默认版本),因此这不应该是一个问题-疑难解答文档中的任何问题都不适用。1。当我从Cloud Shell使用gcloud命令时,我尝试发送一个空的json文件,然后使用
    time
    对其进行计时,大约用了400毫秒,这不包括其他3000毫秒。2.它部署在美国中部,我在西海岸。3.当我发送间隔为30秒(甚至更短的间隔,如2秒)的请求时,延迟没有下降。当您在本地测量请求时,是否使用“gcloud local predict”?如果没有,您也可以尝试一下吗?我建议使用,以便在将代码从作业中剥离出来时查看性能的最终变化,留下纯粹的HTTP请求和响应。请回复结果
    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']