Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Azure函数部署python机器学习模型_Python_Azure_Machine Learning_Httprequest_Azure Functions - Fatal编程技术网

使用Azure函数部署python机器学习模型

使用Azure函数部署python机器学习模型,python,azure,machine-learning,httprequest,azure-functions,Python,Azure,Machine Learning,Httprequest,Azure Functions,我在本地开发了一个机器学习模型,并希望使用Azure函数将其部署为web服务 首先,使用pickle模块将模型保存为二进制,然后上传到与Azure函数(python语言,http触发器服务)实例关联的blob存储中 然后,在安装所有必需的模块后,使用以下代码对样本数据进行预测: import json import pickle import time postreqdata = json.loads(open(os.environ['req']).read()) with open('D:

我在本地开发了一个机器学习模型,并希望使用Azure函数将其部署为web服务

首先,使用pickle模块将模型保存为二进制,然后上传到与Azure函数(python语言,http触发器服务)实例关联的blob存储中

然后,在安装所有必需的模块后,使用以下代码对样本数据进行预测:

import json
import pickle
import time

postreqdata = json.loads(open(os.environ['req']).read())

with open('D:/home/site/wwwroot/functionName/model_test.pkl', 'rb') as txt:
    mod  = txt.read()
txt.close()

model = pickle.loads(mod)
scs= [[postreqdata['var_1'],postreqdata['var_2']]]

prediciton = model.predict_proba(scs)[0][1]

response = open(os.environ['res'], 'w')
response.write(str(prediciton))
response.close()
其中:predict\u proba是一种用于训练的训练模型方法,scs变量定义用于从POST请求中提取特定值(模型变量值)

整个代码工作正常,预测作为响应发送,值是正确的,但发送请求后的执行持续150秒!(局部小于1s)。此外,在尝试测量代码的哪一部分花费了这么长时间之后:它是第10行(pickle.loads(mod))

你知道为什么要花这么多时间吗?模型大小非常小(几kB)

谢谢

向AML发出呼叫时,第一次呼叫必须使AML预热 容器。默认情况下,web服务有20个容器。每个容器 温度较低,且冷容器可能导致较大(30秒)延迟

我建议您参考此线程并了解Azure ML性能


希望它能帮助您。

注意,我的代码中没有调用AML。这是一个简单的HTTP触发Azure函数。只有解钩部分速度很慢。@a_kord抱歉。您可以参考此问题:。也许你能找到一些线索。