Professional Documents
Culture Documents
API 参考
文档版本 02
发布日期 2018-05-17
华为技术有限公司
版权所有 © 华为技术有限公司 2018。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传
播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或
特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声
明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文
档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司
地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129
网址: http://www.huawei.com
客户服务邮箱: support@huawei.com
客户服务电话: 4008302118
目录
1 概述................................................................................................................................................... 1
2 接口使用方法................................................................................................................................... 2
2.1 服务使用方法................................................................................................................................................................ 2
2.2 Token 认证..................................................................................................................................................................... 4
2.3 AK/SK 认证................................................................................................................................................................... 5
2.4 查看项目 ID................................................................................................................................................................. 14
3 公共消息头..................................................................................................................................... 15
3.1 公共请求消息头.......................................................................................................................................................... 15
3.2 公共响应消息头.......................................................................................................................................................... 16
4 作业管理接口................................................................................................................................. 17
4.1 训练作业...................................................................................................................................................................... 17
4.1.1 创建训练作业........................................................................................................................................................... 17
4.1.2 查询训练作业........................................................................................................................................................... 20
4.1.3 查看训练作业........................................................................................................................................................... 23
4.1.4 更新训练作业描述................................................................................................................................................... 26
4.1.5 删除训练作业........................................................................................................................................................... 28
4.1.6 停止训练作业........................................................................................................................................................... 29
4.1.7 获取训练作业日志的文件名................................................................................................................................... 31
4.1.8 查看训练作业日志................................................................................................................................................... 32
4.2 预测作业...................................................................................................................................................................... 34
4.2.1 创建预测作业........................................................................................................................................................... 34
4.2.2 查询预测作业........................................................................................................................................................... 37
4.2.3 查看预测作业........................................................................................................................................................... 40
4.2.4 更新预测作业描述................................................................................................................................................... 43
4.2.5 删除预测作业........................................................................................................................................................... 44
4.2.6 停止预测作业........................................................................................................................................................... 46
4.2.7 重启预测作业........................................................................................................................................................... 47
4.3 可视化作业.................................................................................................................................................................. 49
4.3.1 创建可视化作业....................................................................................................................................................... 49
4.3.2 查询可视化作业....................................................................................................................................................... 51
4.3.3 更新可视化作业描述............................................................................................................................................... 53
4.3.4 删除可视化作业....................................................................................................................................................... 55
4.3.5 停止可视化作业....................................................................................................................................................... 56
4.3.6 重启可视化作业....................................................................................................................................................... 58
4.4 Notebook 作业............................................................................................................................................................. 59
4.4.1 创建 Notebook 作业................................................................................................................................................. 59
4.4.2 查询 Notebook 作业................................................................................................................................................. 61
4.4.3 删除 Notebook 作业................................................................................................................................................. 64
4.4.4 更新 Notebook 作业描述......................................................................................................................................... 66
5 配置参数接口................................................................................................................................. 68
5.1 训练作业参数.............................................................................................................................................................. 68
5.1.1 创建训练作业参数................................................................................................................................................... 68
5.1.2 查看训练作业参数................................................................................................................................................... 70
5.1.3 查询训练作业参数................................................................................................................................................... 74
5.1.4 更新训练作业参数................................................................................................................................................... 77
5.1.5 删除训练作业参数................................................................................................................................................... 80
6 资源和引擎规格接口..................................................................................................................... 82
6.1 查看作业资源规格...................................................................................................................................................... 82
6.2 查看作业引擎规格...................................................................................................................................................... 84
7 模型库接口..................................................................................................................................... 87
7.1 查询模型列表.............................................................................................................................................................. 87
7.2 查看预置模型.............................................................................................................................................................. 90
7.3 查看模型配置.............................................................................................................................................................. 93
7.4 转移预置模型.............................................................................................................................................................. 96
A 附录................................................................................................................................................ 99
A.1 错误码参考................................................................................................................................................................. 99
A.2 作业状态参考........................................................................................................................................................... 100
B 修订记录...................................................................................................................................... 102
1 概述
说明
目前仅支持生命周期为12小时的作业(训练、调测、预测)。如作业周期超过12小时,请自行重启
或者重新创建作业。
2 接口使用方法
本章介绍了接口的使用过程和注意事项
2.1 服务使用方法
华为云API符合RESTful API的设计规范。REST从资源的角度来观察整个网络,分布在
各处的资源由URI(Uniform Resource Identifier)确定,而客户端的应用通过URL
(Uniform Resource Locator)来获取资源。
本章节将介绍三部分内容:
l REST API请求/响应的构成
l 请求认证方式
l 发起请求方式
l 请求URL
URL的一般格式为:https://Endpoint/uri,URL中的参数说明如表2-1所示。
参数 描述
Endpoint 请求使用的服务器名,从地区和终端节点获取。
uri 资源路径,也即API访问路径。从具体接口的URI模块获
取,例如“v3/auth/tokens”。
l 请求消息头
请求消息头分为两部分:
– HTTP方法,目前提供的REST接口支持的请求方法如下表2-2所示。
表 2-2 请求方法一览表
方法 说明
GET 请求服务器返回指定资源。
PUT 请求服务器更新指定资源。
POST 请求服务器新增资源或执行特殊操作。
DELETE 请求服务器删除指定资源,如删除对象等。
PATCH 请求服务器更新资源的部分内容。
当资源不存在的时候,PATCH可能会去创建一个新的资源。
– 可选的附加请求头字段,如指定的URI和HTTP方法所要求的字段。详细的公
共请求消息头字段请参见公共请求消息头。
l 请求消息体
请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-
type对应,传递除请求消息头之外的内容。
若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。
l 响应消息头
响应消息头包含如下两部分。
– 状态代码,从2xx成功代码到4xx或5xx错误代码。状态码详情请参见作业状态
参考。
– 附加响应头字段,如支持请求的响应所需,如Content-type响应消息头。详细
的公共响应消息头字段请参见公共响应消息头。
l 响应消息体
响应消息体通常以结构化格式(如JSON或XML)返回,传递除响应消息头之外的
内容。
– 当服务请求成功时,返回服务请求结果。
– 当服务请求失败时,返回错误码。错误码详情请参见错误码参考。
请求认证方式
调用接口有如下两种认证方式,您可以任选其中一种进行认证鉴权。
l Token认证:通过Token认证调用请求。
l AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。
AK/SK认证安全性更高。
发起请求方式
共有三种方式可以基于已构建好的请求消息发起请求,分别为:
l cURL
cURL是一个命令行工具,用来执行各种URL操作和信息传输。cURL充当的是
HTTP客户端,可以发送HTTP请求给服务端,并接收响应消息。cURL适用于接口
调试。关于cURL详细信息请参见https://curl.haxx.se/。
l 编码
通过编码调用接口,组装请求消息,并发送处理请求消息。
l REST客户端
Mozilla、Google都为REST提供了图形化的浏览器插件,发送处理请求消息。针对
Firefox,请参见Firefox REST Client。针对Chrome,请参见Chrome
RESTClient。
2.2 Token 认证
当您使用Token认证方式完成认证鉴权时,需要获取用户Token并在调用接口时增加
“X-Auth-Token”到业务接口请求消息头中。
本节介绍如何调用接口完成Token认证。
调用接口步骤
步骤1 发送“POST https://IAM的Endpoint/v3/auth/tokens”,获取IAM的Endpoint及消息体中
的区域名称,请参见地区和终端节点。
请求内容示例如下:
说明
下面示例代码中的斜体字需要替换为实际内容,详情请参考《统一身份认证服务API参考》。
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "username",
"password": "password",
"domain": {
"name": "domainname"
}
}
}
},
"scope": {
"project": {
"name": "cn-north-1" //假设区域名称是“cn-north-1”
}
}
}
}
说明
上面示例代码中的用户名和账户名获取方法:
1. 登录华为云,将鼠标放置在右上角的用户名上方,在下拉列表中单击“账号管理”,进入
“基本信息”页面。
2. 单击“管理我的凭证”,在“我的凭证”界面,查看相应的用户名和账户名,密码为该用户
名对应的密码。
3. “项目名”参见项目列表中的有效项目名,默认为“cn-north-1”。
步骤2 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。请求响
应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。
步骤3 调用业务接口,在请求消息头中增加“X-Auth-Token”。
----结束
2.3 AK/SK 认证
通过API网关向下层服务发送请求时,必须使用AK、SK对请求进行签名。
说明
AK:访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,
对请求进行加密签名。
SK:与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修
改。
获取 AK/SK
1. 登录华为云,将鼠标放置在右上角的用户名上方,在下拉列表中单击“账号管
理”,进入“基本信息”页面。
2. 单击“管理我的凭证”,在“我的凭证”界面,单击“管理访问密钥”页签。
3. 单击“新增访问密钥”,弹出“新增访问密钥”对话框。
4. 输入当前用户的登录密码,并通过邮箱或者手机进行验证,输入对应的验证码。
说明
在统一身份服务中创建的用户,如果创建时未填写邮箱或者手机号,则只需校验登录密
码。
5. 单击“确定”,下载访问密钥。
说明
为防止访问密钥泄露,建议您将其保存到安全的位置。
请求签名流程
l 请求前准备:
a. 下载API网关签名工具。
下载地址:http://esdk.huawei.com/ilink/esdk/download/HW_456706
b. 解压下载的压缩包。
c. 创建java工程,将解压出来的jar引用到依赖路径中。
l 签名过程:
a. 创建用于签名的请求com.cloud.sdk.DefaultRequest(JAVA)。
b. 设置DefaultRequest的目标API URL、HTTPS方法、内容等信息。
c. 对DefaultRequest进行签名:
i. 调用SignerFactory.getSigner(String serviceName, String regionName)获取一
个签名工具实现的实例。
ii. 调用Signer.sign(Request<?> request, Credentials credentials)对步骤1创建的
请求进行签名。
以下代码展示了这个步骤:
//选用签名算法,对请求进行签名
Signer signer = SignerFactory.getSigner(serviceName,
region);
//对请求进行签名,request会发生改变
signer.sign(request, new BasicCredentials(this.ak, this.sk));
d. 把上步中签名产生的request转换为一个适合发送的请求,并将签名后request
中的header信息放入新的request中。
以Apache HttpClient为例,需要把DefaultRequest转换为HttpRequestBase,把签
名后的DefaultRequest的header信息放入HttpRequestBase中。
具体过程请查看AccessServiceImpl.java。
示例代码
下面代码展示了如何对一个请求进行签名,并通过HTTP Client发送一个HTTPS请求的
过程:
代码分成三个类进行演示:
AccessService:抽象类,将GET/POST/PUT/DELETE归一成access方法。
Demo:运行入口,模拟用户进行GET/POST/PUT/DELETE请求。
AccessServiceImpl:实现access方法,具体与API网关通信的代码都在access方法中。
下面示例代码中的region和serviceName(英文服务名缩写),请参考地区和终端节点。
AccessService.java:
package com.cloud.apigateway.sdk.demo;
import java.io.InputStream;
import java.net.URL;
import java.util.Map;
import org.apache.http.HttpResponse;
import com.cloud.sdk.http.HttpMethodName;
AccessServiceImpl.java:
package com.cloud.apigateway.sdk.demo;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import javax.net.ssl.SSLContext;
import org.apache.http.Header;
import org.apache.http.HttpHeaders;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpHead;
import org.apache.http.client.methods.HttpPatch;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLContexts;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import com.cloud.sdk.DefaultRequest;
import com.cloud.sdk.Request;
import com.cloud.sdk.auth.credentials.BasicCredentials;
import com.cloud.sdk.auth.signer.Signer;
import com.cloud.sdk.auth.signer.SignerFactory;
import com.cloud.sdk.http.HttpMethodName;
/** {@inheritDoc} */
if (urlString.contains("?")) {
parameters = urlString.substring(urlString.indexOf("?") + 1);
Map parametersmap = new HashMap<String, String>();
parametersmap.put(key, value);
}
request.setParameters(parametersmap);
}
}
} catch (URISyntaxException e) {
// It is recommended to add logs in this place.
e.printStackTrace();
}
// Set the request method.
request.setHttpMethod(httpMethod);
if (headers != null) {
// Add request header information if required.
request.setHeaders(headers);
}
// Configure the request content.
request.setContent(content);
client = HttpClients.custom().setSSLSocketFactory(sslSocketFactory)
.build();
// Send the request, and a response will be returned.
response = client.execute(httpRequestBase);
return response;
}
/**
* Make a request that can be sent by the HTTP client.
*
* @param url
* specifies the API access path.
* @param header
* specifies the header information to be added.
* @param content
* specifies the body content to be sent in the API call.
* @param contentLength
* specifies the length of the content. This parameter is
optional.
* @param httpMethod
* specifies the HTTP method to be used.
* @return specifies the request that can be sent by an HTTP client.
*/
private static HttpRequestBase createRequest(URL url, Header header,
InputStream content, Long contentLength, HttpMethodName httpMethod)
{
HttpRequestBase httpRequest;
if (httpMethod == HttpMethodName.POST) {
HttpPost postMethod = new HttpPost(url.toString());
if (content != null) {
InputStreamEntity entity = new InputStreamEntity(content,
contentLength);
postMethod.setEntity(entity);
}
httpRequest = postMethod;
} else if (httpMethod == HttpMethodName.PUT) {
HttpPut putMethod = new HttpPut(url.toString());
httpRequest = putMethod;
if (content != null) {
InputStreamEntity entity = new InputStreamEntity(content,
contentLength);
putMethod.setEntity(entity);
}
} else if (httpMethod == HttpMethodName.PATCH) {
HttpPatch patchMethod = new HttpPatch(url.toString());
httpRequest = patchMethod;
if (content != null) {
InputStreamEntity entity = new InputStreamEntity(content,
contentLength);
patchMethod.setEntity(entity);
}
} else if (httpMethod == HttpMethodName.GET) {
httpRequest = new HttpGet(url.toString());
} else if (httpMethod == HttpMethodName.DELETE) {
httpRequest = new HttpDelete(url.toString());
} else if (httpMethod == HttpMethodName.HEAD) {
httpRequest = new HttpHead(url.toString());
} else {
throw new RuntimeException("Unknown HTTP method name: "
+ httpMethod);
}
httpRequest.addHeader(header);
return httpRequest;
}
@Override
public void close() {
try {
if (client != null) {
client.close();
}
} catch (IOException e) {
// It is recommended to add logs in this place.
e.printStackTrace();
}
Demo.java
package com.cloud.apigateway.sdk.demo;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.http.HttpResponse;
import com.cloud.sdk.http.HttpMethodName;
//replace real AK
String ak = "akString";
//replace real SK
String sk = "skString";
// get method
//replace real url
String url = "urlString";
get(ak, sk, url);
// post method
//replace real url
String postUrl = "urlString";
//replace real body
String postbody = "bodyString";
post(ak, sk, postUrl, postbody);
// put method
//replace real body
String putbody = "bodyString";
//replace real url
String putUrl = "urlString";
put(ak, sk, putUrl, putbody);
// delete method
//replace real url
String deleteUrl = "urlString";
delete(ak, sk, deleteUrl);
}
String putBody) {
System.out.println(response.getStatusLine().getStatusCode());
} catch (Exception e) {
e.printStackTrace();
} finally {
accessService.close();
}
System.out.println(convertStreamToString(response.getEntity()
.getContent()));
} catch (Exception e) {
e.printStackTrace();
} finally {
accessService.close();
}
try {
accessService = new AccessServiceImpl(serviceName, region, ak, sk);
URL url = new URL(requestUrl);
HttpMethodName httpMethod = HttpMethodName.DELETE;
try {
accessService = new AccessServiceImpl(serviceName, region, ak, sk);
URL url = new URL(requestUrl);
HttpMethodName httpMethod = HttpMethodName.GET;
HttpResponse response;
response = accessService.access(url, httpMethod);
System.out.println(convertStreamToString(response.getEntity()
.getContent()));
} catch (Exception e) {
e.printStackTrace();
} finally {
accessService.close();
}
try {
response = accessService.access(url, content,
(long) postbody.getBytes().length, httpMethod);
System.out.println(convertStreamToString(response.getEntity()
.getContent()));
} catch (Exception e) {
e.printStackTrace();
} finally {
accessService.close();
}
}
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
}
说明
1. URI、AK、SK、HttpMethod是必须设置的参数。
2. 可通过request.addHeader()添加头信息。
2.4 查看项目 ID
步骤1 注册并登录华为云,打开“我的凭证”页面(您可直接点击该地址,进入“我的凭
证”页面:https://console.huaweicloud.com/iam/#/myCredential)。
步骤2 在“项目列表”页面,显示所有区域的项目ID,如图2-1所示。
图 2-1 “项目列表”页面
说明
当前华为云深度学习服务仅支持“华北-北京一”区域,请查看该区域所对应的项目ID。
----结束
3 公共消息头
3.1 公共请求消息头
公共请求消息头如公共请求消息头所示。
表 3-1 公共请求消息头
参数名 说明 是否必选 示例
参数名 说明 是否必选 示例
X-Auth-Token 用户Token。 否。 -
使用Token认证
时必选。
说明
其它header属性,请遵照http协议。
3.2 公共响应消息头
公共响应消息头如公共响应消息头所示。
表 3-2 公共响应消息头
参数名 说明
Content-Length 响应消息体的字节长度,单位为Byte。
Date 系统响应的时间。
Content-type 发送的实体的MIME类型。
4 作业管理接口
4.1 训练作业
4.1.1 创建训练作业
功能介绍
创建训练作业。此接口为异步操作,作业状态请通过查询训练作业和查看训练作业接
口获取。
URI
l URI 格式
POST /v1.0/{project_id}/train-jobs
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
POST https://endpoint/v1.0/{project_id}/train-jobs
{
"job_name": "test-train",
"job_desc": "this is a train job",
"config": {
"parameter_server_num": 3,
"worker_server_num": 3,
"app_url": "/user/app",
"boot_file_url": "/user/app/boot.py",
"is_continue": false,
"parameter":[{
"label": "learning_rate",
"value": "0.01"
}, {
"label": "batch_size",
"value": "32"
}],
"checkpoint": "/user/checkpoint",
"data_url": "/user/date",
"spec_id": 1,
"engine_id": 1
}
}
l Body参数说明
参数 是否为必选 类型 说明
l config属性列表
参数 是否为必选 类型 说明
参数 是否为必选 类型 说明
响应
l 响应样例
– 成功
{
"is_success":true,
"job_id": 1,
"job_name": "test-train",
"config_id": 1,
"status": 1,
"create_time": 1521786912361
}
– 失败
{
"is_success":false,
"error_code":"DLS.0104",
"error_message":"App url should be directory."
}
l 要素说明
参数 是否为必 类型 说明
选
返回值
l 正常
200
l 异常
返回值 说明
4.1.2 查询训练作业
功能介绍
根据指定条件查询用户创建的训练作业。
URI
l URI 格式
GET /v1.0/{project_id}/train-jobs
l 参数说明
参数 是否为必选 类型 说明
l 查询检索参数说明
参数 是否为必选 类型 说明
参数 是否为必选 类型 说明
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/train-jobs
?status=7&per_page=10&page=1&sortBy=job_name&order=asc&
search_content=train_job_name
响应
l 响应样例
– 成功
{
"is_success": true,
"job_total_count":1,
"job_count_limit":3,
"jobs" :[{
"job_name":"name123",
"agent_job_id": "name123-16836943"
"status":8,
"create_time": 1516694897560,
"duration":815003,
"job_desc":null,
"config_name":"name123_config",
"engine_type": 1,
"engine_name": "TensorFlow",
"engine_id": 1,
"engine_version": "TF-1.4.0-python2.7"
}]
}
– 失败
{
"is_success":false,
"error_code":"DLS.0104",
"error_message":"The length of search content shouls be in [0,100].
length: 101"
}
l 要素说明
参数 是否为必 类型 说明
选
l jobs属性列表
参数 类型 说明
返回值
l 正常
200
l 异常
返回值 说明
4.1.3 查看训练作业
功能介绍
根据作业名称查看指定的训练作业详情。
URI
l URI 格式
GET /v1.0/{project_id}/train-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/train-jobs/test123
响应
l 响应样例
– 成功
{
"is_success": true
"job_name": "test123",
"agent_job_id": "test123-16836943"
"config_id": 100,
"config_name":"test_config"
"parameter_server_num": null,
"worker_server_num": 1,
"app_ulr": "/bucket/object/",
"boot_file_url": "/bucket/object/boot.py",
"is_continue": false,
"parameter": [{"label":"name",
"value":"test123"}],
"spec_id": 11,
"data_url": "/bucket/data/",
"checkpoint": null,
"status": 8,
"create_time": 1516705660386,
"job_desc": null,
"duration": 10000,
"core": 1,
"cpu": 4,
"gpu_num": 0,
"gpu_type": "",
"spec_code": "dls.vm.cpu",
"max_num": 2,
"engine_type": 1,
"engine_name": "TensorFlow",
"engine_id": 1,
"engine_version": "TF-1.4.0-python2.7"
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Illegal name: %%123"
}
l 要素说明
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
4.1.4 更新训练作业描述
功能介绍
更新训练作业的描述。
URI
l URI 格式
PUT /v1.0/{project_id}/train-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
PUT https://endpoint/v1.0/{project_id}/train-jobs/{job_name}
{
"job_desc": "this is a train job"
}
l Body参数说明
参数 是否为必选 类型 说明
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Illegal name: %%123"
}
l 要素说明
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
返回值 说明
4.1.5 删除训练作业
功能介绍
删除训练作业。此接口为异步操作,作业状态请通过查询训练作业和查看训练作业接
口获取。
URI
l URI 格式
DELETE /v1.0/{project_id}/train-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
DELETE https://endpoint/v1.0/{project_id}/train-jobs/trainJobName
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0105",
"error_message":"This job can't be delete. job status: 9"
}
l 要素说明
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
4.1.6 停止训练作业
功能介绍
停止训练作业。此接口为异步操作,作业状态请通过查询训练作业和查看训练作业接
口获取。
URI
l URI 格式
POST /v1.0/{project_id}/train-jobs/{job_name}/stop
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
POST https://endpoint/v1.0/{project_id}/train-jobs/trainJobName/
stop
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0105",
"error_message":"This job can't be stop. job status: 10"
}
l 要素说明
参数 是否为必 类型 说明
选
返回值
l 正常
200
l 异常
返回值 说明
4.1.7 获取训练作业日志的文件名
功能介绍
获取训练作业日志的文件名。
URI
l URI 格式
GET /v1.0/{project_id}/log/file-names/{job_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/log/file-names/trainJobName
响应
l 响应样例
– 成功
{
"is_success": true,
"log_file_list": ["test1.log", "test2.log"]
}
– 失败
{
"is_success": false,
"error_code": "DLS.0601",
"error_message": "Get log list file from agent failed"
}
l 要素说明
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
4.1.8 查看训练作业日志
功能介绍
查看训练作业日志。
URI
l URI 格式
GET /v1.0/{project_id}/log/{job_name}
l 参数说明
参数 是否为必选 类型 说明
l 查询检索参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/log/trainJobName
?start_byte=0&offset=2048&log_file=log1.log
响应
l 响应样例
– 成功
{
"is_success": true,
"log": "this is the log content",
"log_byte_count": 1024,
"end_byte": 1054
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"[offset] should be in [-2048, 2048]"
}
l 要素说明
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
4.2 预测作业
4.2.1 创建预测作业
功能介绍
创建预测作业。此接口为异步操作,作业状态请通过查询预测作业和查看预测作业接
口获取。
URI
l URI 格式
POST /v1.0/{project_id}/inference-jobs
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
POST https://endpoint/v1.0/{project_id}/inference-jobs
{
"job_name": "inferencejob",
"job_desc": "this is an inference job",
"config": {
"worker_server_num": 2,
"parameter":[{
"label":"model_name",
"value":"mnist"
}],
"checkpoint":"/user/checkpoint/",
"spec_id":1,
"engine_id":1
}
}
l Body参数说明
参数 是否为必选 类型 说明
l config属性列表
参数 是否为 类型 说明
必选
响应
l 响应样例
– 成功
{
"is_success": true
"job_id": 1,
"job_name": "inferencejob",
"status": 1,
"create_time": 1521786912361
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"checkpoint should be directory.File path:/bucket/checkpoint"
}
l 要素说明
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
返回值 说明
4.2.2 查询预测作业
功能介绍
根据指定条件查询用户创建的预测作业。
URI
l URI 格式
GET /v1.0/{project_id}/inference-jobs
l 参数说明
参数 是否为必选 类型 说明
l 查询检索参数说明
参数 是否为必 类型 说明
选
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/inference-jobs
?status=7&per_page=10&page=1&sortBy=status&order=asc&
search_content=inference_job_name
响应
l 响应样例
– 成功
{
"is_success": true,
"job_total_count":1,
"job_count_limit":3,
"jobs" :[{
"job_name":"name123",
"agent_job_id": "name123-16836943"
"status":8,
"create_time": 1516694897560,
"duration":815003,
"job_desc":"this is an inference job",
"checkpoint":"/user/checkpoint/",
"service_url":"127.0.0.1:10000",
"engine_type": 1,
"engine_name": "TensorFlow",
"engine_id": 2,
"engine_version": "TF-1.4.0"
}]
}
– 失败
{
"is_success":false,
"error_code":"DLS.0104",
"error_message":"The length of search content should be in [0,100].
length: 101"
}
l 要素说明
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
l jobs属性列表
参数 类型 说明
返回值
l 正常
200
l 异常
返回值 说明
4.2.3 查看预测作业
功能介绍
根据作业名称查看指定的预测作业详情。
URI
l URI 格式
GET /v1.0/{project_id}/inference-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/inference-jobs/test123
响应
l 响应样例
– 成功
{
"is_success": true,
"job_name": "test123",
"agent_job_id": "test123-16836943",
"config_id": 1000,
"config_name": "test_config",
"worker_server_num": 1,
"parameter": [{"label":"model_name",
"value":"mnist"}],
"spec_id": 11,
"checkpoint": "/user/checkpoint/",
"status": 8,
"create_time": 1516705660386,
"job_desc": null,
"duration": 10000,
"service_url": "127.0.0.1:30000",
"core": 1,
"cpu": 4,
"gpu_num": 0,
"gpu_type": "",
"spec_code": "dls.vm.cpu",
"max_num": 2,
"engine_type": 1,
"engine_name": "TensorFlow",
"engine_id": 2,
"engine_version": "TF-1.4.0"
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Illegal name: %%123"
}
l 要素说明
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
4.2.4 更新预测作业描述
功能介绍
更新预测作业的描述。
URI
l URI 格式
PUT /v1.0/{project_id}/inference-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
PUT https://endpoint/v1.0/{project_id}/inference-jobs/
InferenceJobName
{
"job_desc": "this is an inference job"
}
l Body参数说明
参数 是否为必选 类型 说明
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Illegal name: %%123"
}
l 要素说明
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
4.2.5 删除预测作业
功能介绍
删除预测作业。此接口为异步操作,作业状态请通过查询预测作业和查看预测作业接
口获取。
URI
l URI 格式
DELETE /v1.0/{project_id}/inference-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
DELETE https://endpoint/v1.0/{project_id}/inference-jobs/
inferenceJobName
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code": "DLS.0105",
"error_message": "This job can't be delete. job status: 9"
}
l 要素说明
参数 是否 类型 说明
为必
选
返回值
l 正常
200
l 异常
返回值 说明
返回值 说明
4.2.6 停止预测作业
功能介绍
停止预测作业。此接口为异步操作,作业状态请通过查询预测作业和查看预测作业接
口获取。
URI
l URI 格式
POST /v1.0/{project_id}/inference-jobs/{job_name}/stop
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
POST https://endpoint/v1.0/{project_id}/inference-jobs/
InferenceJobName/stop
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code": "DLS.0105",
"error_message": "This job can't be stop. job status: 10"
}
l 要素说明
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
4.2.7 重启预测作业
功能介绍
重启预测作业。此接口为异步操作,作业状态请通过查询预测作业和查看预测作业接
口获取。
URI
l URI 格式
POST /v1.0/{project_id}/inference-jobs/{job_name}/restart
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
POST https://endpoint/v1.0/{project_id}/inference-jobs/
InferenceJobName/restart
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code": "DLS.0105",
"error_message": "This job can't be resubmit. job status: 8"
}
l 要素说明
参数 是否 类型 说明
为必
选
返回值
l 正常
200
l 异常
返回值 说明
4.3 可视化作业
4.3.1 创建可视化作业
功能介绍
创建可视化作业。此接口为异步操作,作业状态请通过查询可视化作业接口获取。
URI
l URI 格式
POST /v1.0/{project_id}/tensorboard-jobs
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
POST https://endpoint/v1.0/{project_id}/tensorboard-jobs
{
"job_name": "tensorboardjob",
"job_desc": "this is a tensorboard job",
"log_dir": "/bucket/log/"
}
}
l Body参数说明
参数 是否为必选 类型 说明
响应
l 响应样例
– 成功
{
"is_success": true
"job_id": 1,
"job_name": "tensorboardjob",
"status": 1,
"create_time": 1521786912361
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"tensorboard log dir should be directory.File path:/bucket/log"
}
l 要素说明
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
4.3.2 查询可视化作业
功能介绍
根据指定条件查询用户创建的可视化作业。
URI
l URI 格式
GET /v1.0/{project_id}/tensorboard-jobs
l 参数说明
参数 是否为必选 类型 说明
l 查询检索参数
参数 是否为必选 类型 说明
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/tensorboard-jobs
?status=7&per_page=10&page=1&sortBy=status&order=asc&
search_content=tensorboard_job_name
响应
l 响应样例
– 成功
{
"is_success": true,
"job_total_count":1,
"job_count_limit":3,
"jobs" :[{
"job_name":"name123",
"agent_job_id": "name123-16836943",
"status":8,
"create_time": 1516694897560,
"duration":815003,
"job_desc":"this is an tensorboard job",
"log_dir":"/user/checkpoint/",
"service_url": "127.0.0.1:0000"
}]
– 失败
{
"is_success":false,
"error_code":"DLS.0104",
"error_message":"The length of search content should be in [0,100].
length: 101"
}
l 要素说明
参数 是否为 类型 说明
必选
l jobs属性列表
参数 类型 说明
参数 类型 说明
返回值
l 正常
200
l 异常
返回值 说明
4.3.3 更新可视化作业描述
功能介绍
更新可视化作业的描述。
URI
l URI 格式
PUT /v1.0/{project_id}/tensorboard-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
PUT https://endpoint/v1.0/{project_id}/tensorboard-jobs/
tensorboardJobName
{
"job_desc": "this is a tensorboard job"
}
l Body参数说明
参数 是否为必选 类型 说明
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Illegal name: %%123"
}
l 要素说明
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
4.3.4 删除可视化作业
功能介绍
删除可视化作业。此接口为异步操作,作业状态请通过查询可视化作业接口获取。
URI
l URI 格式
DELETE /v1.0/{project_id}/tensorboard-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
DELETE https://endpoint/v1.0/{project_id}/tensorboard-jobs/
tensorboardJobName
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0105",
"error_message":"This job can't be delete. job status: 9"
}
l 要素说明
参数 是否 类型 说明
为必
选
返回值
l 正常
200
l 异常
返回值 说明
4.3.5 停止可视化作业
功能介绍
停止可视化作业。此接口为异步操作,作业状态请通过查询可视化作业接口获取。
URI
l URI 格式
POST /v1.0/{project_id}/tensorboard-jobs/{job_name}/stop
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
POST https://endpoint/v1.0/{project_id}/tensorboard-jobs/
tensorboardJobName/stop
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0105",
"error_message":"This job can't be stop. job status: 10"
}
l 要素说明
参数 是否 类型 说明
为必
选
返回值
l 正常
200
l 异常
返回值 说明
返回值 说明
4.3.6 重启可视化作业
功能介绍
重启可视化作业。此接口为异步操作,作业状态请通过查询可视化作业接口获取。
URI
l URI 格式
POST /v1.0/{project_id}/tensorboard-jobs/{job_name}/restart
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
POST https://endpoint/v1.0/{project_id}/tensorboard-jobs/
tensorboardJobName /restart
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0105",
"error_message":"This job can't be resubmit. job status: 8"
}
l 要素说明
参数 是否 类型 说明
为必
选
参数 是否 类型 说明
为必
选
返回值
l 正常
200
l 异常
返回值 说明
4.4 Notebook 作业
4.4.1 创建 Notebook 作业
功能介绍
创建Notebook作业。此接口为异步操作,作业状态请通过创建Notebook作业接口获
取。
URI
l URI 格式
POST /v1.0/{project_id}/notebook-jobs
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
POST https://endpoint/v1.0/{project_id}/notebook-jobs
{
"job_name": "test-notebook",
"job_desc": "this is a notebook job",
"code_storage_url": "/user/objectname/",
"engine_id": 4
}
l Body参数说明
参数 是否为必选 类型 说明
响应
l 响应样例
– 成功
{
"is_success": true
"job_id": 1,
"job_name": "test-notebook",
"status": 1,
"create_time": 1521786912361
}
– 失败
{
"is_success": false,
"error_code": "DLS.0104",
"error_message": "code_storage_url should be directory.File path:/bucket/code"
}
l 要素说明
参数 是否为必 类型 说明
选
参数 是否为必 类型 说明
选
返回值
l 正常
200
l 异常
返回值 说明
4.4.2 查询 Notebook 作业
功能介绍
根据指定条件查询用户创建的Notebook作业。
URI
l URI 格式
GET /v1.0/{project_id}/notebook-jobs
l 参数说明
参数 是否为必选 类型 说明
l 查询检索参数说明
参数 是否为 类型 说明
必选
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/notebook-jobs
?
status=7&per_page=10&page=1&sortBy=status&order=asc&search_content=no
tebook_job_name
响应
l 响应样例
– 成功
{
"is_success": true,
"job_total_count": 1,
"job_limit": 3,
"jobs" :[{
"job_name": "name123",
"status": 8,
"create_time": 1516694897560,
"duration": 815003,
"job_desc": null,
"notebook_url": "http://127.0.0.1:30000",
"code_storage_url": "/bucket/object/",
"engine_type": 1,
"engine_name": "TensorFlow",
"engine_id": 4,
"engine_version": "TF-1.4.0-python2.7"
}]
}
– 失败
{
"is_success": false,
"error_code": "DLS.0104",
"error_message": "The length of search content shouls be in [0,100].
length: 101"
}
l 要素说明
参数 是否为必 类型 说明
选
l jobs属性列表
参数 类型 说明
参数 类型 说明
返回值
l 正常
200
l 异常
返回值 说明
4.4.3 删除 Notebook 作业
功能介绍
删除Notebook作业。此接口为异步接口,作业状态请通过查询Notebook作业接口获
取。
URI
l URI 格式
DELETE /v1.0/{project_id}/notebook-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
DELETE https://endpoint/v1.0/{project_id}/notebook-jobs/
notebookjob_name
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code": "DLS.0105",
"error_message": "This job can't be delete. job status: 9"
}
l 要素说明
参数 是否为必 类型 说明
选
返回值
l 正常
200
l 异常
返回值 说明
URI
l URI 格式
PUT /v1.0/{project_id}/notebook-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
PUT https://endpoint/v1.0/{project_id}/notebook-jobs/{job_name}
{
"job_desc": "this is a notebook job"
}
l Body参数说明
参数 是否为必选 类型 说明
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code": "DLS.0104",
"error_message": "Illegal name: %%123"
}
l 要素说明
参数 是否为必 类型 说明
选
返回值
l 正常
200
l 异常
返回值 说明
5 配置参数接口
5.1 训练作业参数
5.1.1 创建训练作业参数
功能介绍
创建训练作业参数。
URI
l URI 格式
POST /v1.0/{project_id}/train-configs
l URL参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
POST https://endpoint/v1.0/{project_id}/train-configs
{
"config_name": "config",
"config_desc": "this is a train job config",
"worker_server_num": 1,
"parameter_server_num": 0,
"boot_file_url": "/user/app/boot.py",
"is_continue": "",
"checkpoint": "",
"parameter" :[{
"label":"learning_rate",
"value":"0.01"
}, {
"label":"batch_size",
"value":"32"
}],
"data_url":"/user/date",
"spec_id":1,
"app_url": "/user/app/",
"engine_id": 1
}
l Body参数说明
参数 是否为必 类型 说明
选
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0103",
"error_message":"Config name: config is existed"
}
l 要素说明
参数 是否为 类型 说明
必选
返回值
l 正常
200
l 异常
返回值 说明
5.1.2 查看训练作业参数
功能介绍
查看指定的训练作业参数详情。
URI
l URI 格式
GET /v1.0/{project_id}/train-configs/{config_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/train-configs/config123
响应
l 响应样例
– 成功
{
"is_success": true,
"config_name": "config123",
"config_desc":"test_config",
"parameter_server_num": null,
"worker_server_num": 1,
"app_ulr": "/bucket/object/",
"boot_file_url": "/bucket/object/boot.py",
"is_continue": false,
"parameter": [{"label":"name",
"value":"test123"}],
"spec_id": 11,
"data_url": "/bucket/data/",
"checkpoint": null,
"core": 1,
"cpu": 4,
"gpu_num": 0,
"gpu_type": "",
"spec_code": "dls.vm.cpu",
"max_num": 2,
"engine_type": 1,
"engine_name": "TensorFlow",
"engine_id": 1,
"engine_version": "TF-1.4.0-python2.7"
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Illegal name: %%123"
}
l 要素说明
参数 是否 类型 说明
为必
选
参数 是否 类型 说明
为必
选
返回值
l 正常
200
l 异常
返回值 说明
5.1.3 查询训练作业参数
功能介绍
根据指定条件查询用户创建的训练作业参数。
URI
l URI 格式
GET /v1.0/{project_id}/train-configs
l 参数说明
参数 是否为必选 类型 说明
l 查询检索参数说明
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/train-configs?
per_page=10&page=1
&sortBy=create_time&order=asc&search_content=configname
响应
l 响应样例
– 成功
{
"is_success": true,
"config_total_count":1,
"configs" :[{
"config_name": "config123",
"config_desc":"test_config"
"parameter_server_num": null,
"worker_server_num": 1,
"app_ulr": "/bucket/object/",
"boot_file_url": "/bucket/object/boot.py",
"is_continue": null,
"parameter": [{"label":"name",
"value":"test123"}],
"spec_id": 11,
"data_url": "/bucket/data/",
"checkpoint": null,
"core": 1,
"cpu": 4,
"gpu_num": 0,
"gpu_type": "",
"spec_code": "dls.vm.train.cpu",
"max_num": 2,
"engine_type": 1,
"engine_name": "TensorFlow",
"engine_id": 1,
"engine_version": "TF-1.4.0-python2.7"
}]
}
– 失败
{
"is_success":false,
"error_code":"DLS.0104",
"error_message":"[order] should be asc or desc"
}
l 要素说明
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
l configs属性列表
参数 类型 说明
参数 类型 说明
返回值
l 正常
200
l 异常
返回值 说明
5.1.4 更新训练作业参数
功能介绍
更新训练作业参数。
URI
l URI 格式
PUT /v1.0/{project_id}/train-configs/{config_name}
l URL参数说明
参数 是否为必 类型 说明
选
请求
l 请求样例
PUT https://endpoint/v1.0/{project_id}/train-configs/config
{
"config_name": "config",
"config_desc": "this is a train job config",
"worker_server_num": 1,
"parameter_server_num": 0
"boot_file_url": "/user/app/boot.py",
"is_continue": "",
"checkpoint": "",
"parameter" :[{
"label":"learning_rate",
"value":0.01
}, {
"label":"batch_size",
"value":32
}],
"data_url":"/user/date",
"spec_id":1,
"app_url": "/user/app/
}
l Body参数说明
参数 是否为必 类型 说明
选
参数 是否为必 类型 说明
选
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Worker num should be in [1, 4]"
}
l 要素说明
参数 是否 类型 说明
为必
选
返回值
l 正常
200
l 异常
返回值 说明
返回值 说明
5.1.5 删除训练作业参数
功能介绍
删除训练作业参数。
URI
l URI 格式
DELETE /v1.0/{project_id}/train-configs/{config_name}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
DELETE https://endpoint/v1.0/{project_id}/train-configs/configName
响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Illegal name: %%123"
}
l 要素说明
参数 是否 类型 说明
为必
选
返回值
l 正常
200
l 异常
返回值 说明
6 资源和引擎规格接口
6.1 查看作业资源规格
功能介绍
查看指定作业类型的资源规格。创建训练作业和预测作业需要指定资源规格。
URI
l URI 格式
GET /v1.0/{project_id}/job-spec/{job_type}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/job-spec/train
响应
l 响应样例
– 成功
{
"is_success": true,
"spec_total_count":1,
"specs" :[{
"spec_id": 11,
"core": 1,
"cpu": 4,
"gpu_num": 0,
"gpu_type": "",
"spec_code": "dls.vm.cpu"
"max_num":2
}]
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Unsupported job type: infer"
}
l 要素说明
参数 是否 类型 说明
为必
选
l specs属性列表
参数 类型 说明
返回值
l 正常
200
l 异常
返回值 说明
6.2 查看作业引擎规格
功能介绍
查看指定作业类型的引擎类型和版本类型。创建训练作业和预测作业需要指定引擎规
格。
URI
l URI 格式
GET /v1.0/{project_id}/job-engines/{job_type}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/job-engines/train
响应
l 响应样例
– 成功
{
"is_success": true,
"engines" :[{
"engine_type": 1,
"engine_name": "TensorFlow",
"engine_id": 1,
"engine_version": "TF-1.4.0-python2.7"
}]
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Unsupported job type: infer"
}
l 要素说明
参数 是否 类型 说明
为必
选
l engines属性列表
参数 类型 说明
返回值
l 正常
200
l 异常
返回值 说明
返回值 说明
7 模型库接口
为用户提供预先训练好的经典模型,方便用户将模型集成到自己的业务中。
7.1 查询模型列表
功能介绍
查看模型库的模型列表。
URI
l URI 格式
POST /v1.0/{project_id}/models?
per_page={per_page}&page={page}&sortBy={sortBy}&order={order}&search_
content={search_content}
l 参数说明
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/models?
per_page=10&page=1&sortBy=model_name&order=asc&search_content=VGG_16
响应
l 响应样例
– 成功
{
"is_success": true,"model_total_count": 1,
"models": [
{
"model_name": "VGG_16",
"model_usage": 1,
"model_precision": "70.5%(top1), 89.7%(top5)",
"model_size": 1107945397,
"create_time": 1511948465244,
"status": 1,
"engine_type": 1,
"engine_name": "TensorFlow",
"engine_id": 1,
"engine_version": "TF-1.4.0-python2.7"
}
]}
– 失败
{
"is_success":false,
"error_code":"DLS.0104",
"error_message":"[order] should be asc or desc"
}
l 要素说明
参数 是否为 类型 说明
必选
参数 是否为 类型 说明
必选
l models说明
参数 类型 说明
返回值
l 正常
200
l 异常
返回值 说明
返回值 说明
7.2 查看预置模型
功能介绍
查看模型的详情。
URI
l URI 格式
GET /v1.0/{project_id}/models/{model_name}?engine_id={engine_id}
l 参数说明
参数 是否为必 类型 说明
选
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/models/VGG_16?engine_id=1
响应
l 响应样例
– 成功
{
"is_success": true,
"model_train_dataset": "ImageNet-1k; [H=224, W=224, C=3]",
"model_dataset_format": "shape: [H>=32, W>=32, C>=1]; type: int8",
"model_output": 1,
"model_description_url": "https://github.com/tensorflow/models/blob/master/research/
slim/nets/vgg.py",
"obs_path": "/bucket/folder/",
"engine_type": 1,
"engine_name": "TensorFlow",
"engine_id": 1,
"engine_version": "TF-1.4.0-python2.7",
"parameter": [
{
"label": "file_pattern",
"value": "",
"required": true
},
{
"label": "max_epoches",
"value": "",
"required": true
},
{
"label": "image_size",
"value": "",
"required": true
},
{
"label": "num_classes",
"value": "",
"required": true
},
{
"label": "samples_per_epoch",
"value": "",
"required": true
},
{
"label": "batch_size",
"value": "",
"required": true
},
{
"label": "learning_rate_strategy",
"value": "",
"required": true
},
{
"label": "train_url",
"value": "s3://",
"required": true
},
{
"label": "model_name",
"value": "vgg_16",
"required": true
},
{
"label": "checkpoint_exclude_patterns",
"value": "fc8,global_step",
"required": true
}
]
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Illegal name: abcd"
}
l 要素说明
参数 是否为 类型 说明
必选
l parameter说明
参数 类型 说明
返回值
l 正常
200
l 异常
返回值 说明
7.3 查看模型配置
功能介绍
用户将模型库中的模型拷贝到OBS后,可以查看模型配置,以模型库的模型为基础创
建训练作业。
URI
l URI 格式
GET /v1.0/{project_id}/models/{model_name}/config?
engine_id={engine_id}
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/models/VGG_16/config?
engine_id=1
响应
l 响应样例
– 成功
{
"is_success": true,
"app_url": "/bucket/models/vgg_16_code/",
"boot_file_url": "/bucket/models/vgg_16_code/finetune_model.py",
"engine_type": 1,
"engine_name": "TensorFlow",
"engine_id": 1,
"engine_version": "TF-1.4.0-python2.7",
"parameter": [
{
"label": "file_pattern",
"value": "",
"required": true
},
{
"label": "max_epoches",
"value": "",
"required": true
},
{
"label": "image_size",
"value": "",
"required": true
},
{
"label": "num_classes",
"value": "",
"required": true
},
{
"label": "samples_per_epoch",
"value": "",
"required": true
},
{
"label": "batch_size",
"value": "",
"required": true
},
{
"label": "learning_rate_strategy",
"value": "",
"required": true
},
{
"label": "train_url",
"value": "s3://",
"required": true
},
{
"label": "model_name",
"value": "vgg_16",
"required": true
},
{
"label": "checkpoint_exclude_patterns",
"value": "fc8,global_step",
"required": true
},
{
"label": "checkpoint_url",
"value": "s3://bucket/models/vgg_16/",
"required": true
}
]
}
– 失败
{
"is_success": false,
"error_code":"DLS.0102",
"error_message":"Model doesn't exsit"
}
l 要素说明
参数 是否 类型 说明
为必
选
l parameter说明
参数 类型 说明
返回值
l 正常
200
l 异常
返回值 说明
7.4 转移预置模型
功能介绍
转移预置模型库的模型到用户的OBS。
URI
l URI 格式
POST /v1.0/{project_id}/models/{model_name}/transfer-customer
l 参数说明
参数 是否为必选 类型 说明
请求
l 请求样例
POST https://endpoint/v1.0/{project_id}/models/VGG_16/transfer-
customer
{
"storage_type": "obs:,
"dest_path": "/bucket/models/",
"engine_id": 1
}
l Body参数说明
名称 是否必选 类型 说明
响应
l 响应样例
– 成功
{
"is_success": true,
}
– 失败
{
"is_success": false,
"error_code":"DLS.0102",
"error_message":"Model doesn't exsit"
}
l 要素说明
参数 是否 类型 说明
为必
选
返回值
l 正常
200
l 异常
返回值 说明
A 附录
A.1 错误码参考
错误码 类型 说明
DLS.0103 基础错误 重名
错误码 类型 说明
DLS.0012 内部服务错 超时
误
A.2 作业状态参考
状态值 作业状态说明
0 JOBSTAT_UNKNOWN,作业状态未知
1 JOBSTAT_INIT,作业初始化状态
2 JOBSTAT_IMAGE_CREATING,作业镜像正在创建
3 JOBSTAT_IMAGE_FAILED,作业镜像创建失败
4 JOBSTAT_SUBMIT_TRYING,作业正在提交
5 JOBSTAT_SUBMIT_FAILED,作业提交失败
6 JOBSTAT_DELETE_FAILED,作业删除失败
7 JOBSTAT_WAITING,作业正在排队中
8 JOBSTAT_RUNNING,作业正在运行中
9 JOBSTAT_KILLING,作业正在删除
10 JOBSTAT_COMPLETED,作业已经完成
11 JOBSTAT_FAILED,作业运行失败
12 JOBSTAT_KILLED,作业取消成功
状态值 作业状态说明
13 JOBSTAT_CANCELED,作业取消
14 JOBSTAT_LOST,作业丢失
15 JOBSTAT_SCALING,作业正在扩容
B 修订记录
发布日期 修改说明
2018-05-15 第四次正式发布。
2018-05-04 第三次正式发布。
l 新增:
Notebook作业,新增Notebook作业接口信息。
2018-04-04 第二次正式发布。
2018-01-20 第一次正式发布。