全部产品
云市场

PAI AL模型部署及调用

更新时间:2019-11-19 11:07:39

PAI AutoLearning模型部署

在得到PAI AutoLearning模型后,模型出口即PAI EAS,可一键部署为模型在线服务,对外提供API调用服务。

1. 前往PAI EAS模型部署

在PAI AutoLearning模型试用页面,点击“前往PAI EAS部署”按钮,进入PAI-EAS服务部署页。

2. 选择模型服务资源种类

PAI EAS内置了PAI AutoLearning的Processor,支持模型CPU及GPU部署。

3. 输入模型名称及部署资源

输入模型名称、选择部署资源,进入下一步完成部署。到这一步即完成了模型部署。

PAI AutoLearning模型调用

1. 找到待调用模型

在已部署模型列表中找到待调用的模型,查看其服务方式,点击调用信息,如下所示。

2. 获取模型调用信息

在模型调用说明页面,点击创建获取模型调用信息,如下所示。

3. 调用模型预测图片分类

到这一步即生成服务API。可通过服务URL地址及密钥信息来调用PAI AutoLearning模型来预测输入图片的分类信息。PAI EAS模型调用分为两种:公网地址调用和VPC地址调用,两种调用方式说明如下:

  • 公网地址模型调用(常用)
  1. 公网调用模型代码的说明:
  2. 1)运行环境:python2
  3. 2)依赖api gateway sdkhttps://github.com/aliyun/api-gateway-demo-sign-python

调用模型示例如下:

  1. #!/usr/bin/env python
  2. # -*- coding: UTF-8 -*-
  3. import json
  4. from urlparse import urlparse
  5. from com.aliyun.api.gateway.sdk import client
  6. from com.aliyun.api.gateway.sdk.http import request
  7. from com.aliyun.api.gateway.sdk.common import constant
  8. #predict.jpeg即待预测的图片名称
  9. with open('predict.jpeg', 'rb') as infile:
  10. buf = infile.read()
  11. def predict(url, app_key, app_secret, request_data):
  12. cli = client.DefaultClient(app_key=app_key, app_secret=app_secret)
  13. body = request_data
  14. url_ele = urlparse(url)
  15. host = 'http://' + url_ele.hostname
  16. path = url_ele.path
  17. headers = {'content-type':'charset=utf-8'}
  18. req_post = request.Request(host=host, headers = headers,protocol=constant.HTTP,url=path, method="POST", time_out=6000)
  19. req_post.set_body(body)
  20. req_post.set_content_type(constant.CONTENT_TYPE_STREAM)
  21. stat,header, content = cli.execute(req_post)
  22. return stat, dict(header) if header is not None else {}, content
  23. def demo():
  24. # 输入模型信息,参照上图的url、appkey以及appsecret三项信息
  25. app_key = '250477'
  26. app_secret = 'd4e17c1a866ae2a2246fbe23ee8'
  27. url = 'http://3804146ff9844364b0c3d19c821ea229-cn-beijing.alicloudapi.com/EAPI_1295715995194599_autodl_bj_xzh004'
  28. request_data = buf
  29. stat, header, content = predict(url, app_key, app_secret, request_data)
  30. if stat != 200:
  31. print('Http status code: ', stat)
  32. print('Error msg in header: ', header['x-ca-error-message'] if 'x-ca-error-message' in header else '')
  33. print('Error msg in body: ', content)
  34. else:
  35. print(content)
  36. if __name__ == '__main__':
  37. demo()

更多模型公网调用方式说明详见EAS调用文档:公网地址调用

  • VPC地址模型调用
  1. ###VPC调用参考例子,注意VPC地址调用需保证调用环境与部署模型在同一个region的vpc环境。
  2. # -*- coding: UTF-8 -*-
  3. import requests
  4. # url取自VPC地址调用界面的访问地址栏,可直接复制过来
  5. url="http://pai-eas-vpc.cn-beijing.aliyuncs.com/api/predict/alxxx1"
  6. # Authorization是服务的鉴权密钥,在控制台需要调用的服务-调用信息-VPC地址调用中的密钥信息
  7. headers = {"Authorization":"MDBiYjg1YmE1YzMwN2Y5xxxxg=="}
  8. with open('predict.jpeg', 'rb') as infile:
  9. buf = infile.read()
  10. resp = requests.post(url, data=buf, headers=headers)
  11. print(resp.content)

模型VPC调用方式更多详细说明见EAS调用文档:VPC地址调用