You are on page 1of 106

深度学习服务

API 参考

文档版本 02
发布日期 2018-05-17

华为技术有限公司
版权所有 © 华为技术有限公司 2018。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传
播。

商标声明

和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或
特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声
明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文
档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

华为技术有限公司
地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129

网址: http://www.huawei.com
客户服务邮箱: support@huawei.com
客户服务电话: 4008302118

文档版本 02 (2018-05-17) 华为专有和保密信息 i


版权所有 © 华为技术有限公司
深度学习服务
API 参考 目录

目录

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

文档版本 02 (2018-05-17) 华为专有和保密信息 ii


版权所有 © 华为技术有限公司
深度学习服务
API 参考 目录

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

文档版本 02 (2018-05-17) 华为专有和保密信息 iii


版权所有 © 华为技术有限公司
深度学习服务
API 参考 1 概述

1 概述

深度学习服务(Deep Learning Service, DLS)提供模型的开发与调试、训练和预测服


务,可用于图像视频处理、自然语言处理、推荐等场景。
本文档介绍了华为深度学习服务提供的API接口参考,详细描述了各个接口的功能、参
数、使用样例等。

说明

目前仅支持生命周期为12小时的作业(训练、调测、预测)。如作业周期超过12小时,请自行重启
或者重新创建作业。

文档版本 02 (2018-05-17) 华为专有和保密信息 1


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

2 接口使用方法

本章介绍了接口的使用过程和注意事项

2.1 服务使用方法
华为云API符合RESTful API的设计规范。REST从资源的角度来观察整个网络,分布在
各处的资源由URI(Uniform Resource Identifier)确定,而客户端的应用通过URL
(Uniform Resource Locator)来获取资源。

本章节将介绍三部分内容:

l REST API请求/响应的构成
l 请求认证方式
l 发起请求方式

REST API 请求/响应的构成


REST API请求/响应对可以分为五个部分:

l 请求URL
URL的一般格式为:https://Endpoint/uri,URL中的参数说明如表2-1所示。

表 2-1 URL 中的参数说明

参数 描述

Endpoint 请求使用的服务器名,从地区和终端节点获取。

uri 资源路径,也即API访问路径。从具体接口的URI模块获
取,例如“v3/auth/tokens”。

l 请求消息头
请求消息头分为两部分:
– HTTP方法,目前提供的REST接口支持的请求方法如下表2-2所示。

文档版本 02 (2018-05-17) 华为专有和保密信息 2


版权所有 © 华为技术有限公司
深度学习服务
API 参考 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 编码

文档版本 02 (2018-05-17) 华为专有和保密信息 3


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

通过编码调用接口,组装请求消息,并发送处理请求消息。
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值。

文档版本 02 (2018-05-17) 华为专有和保密信息 4


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

步骤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,

文档版本 02 (2018-05-17) 华为专有和保密信息 5


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

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;

public abstract class AccessService {

protected String serviceName = null;

protected String region = null;

protected String ak = null;

protected String sk = null;

public AccessService(String serviceName, String region, String ak,


String sk) {
this.region = region;
this.serviceName = serviceName;
this.ak = ak;
this.sk = sk;
}

public abstract HttpResponse access(URL url, Map<String, String>


header, InputStream content, Long contentLength,
HttpMethodName httpMethod) throws Exception;

public HttpResponse access(URL url, Map<String, String> header,


HttpMethodName httpMethod) throws Exception {

文档版本 02 (2018-05-17) 华为专有和保密信息 6


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

return this.access(url, header, null, 0l, httpMethod);


}

public HttpResponse access(URL url, InputStream content, Long


contentLength, HttpMethodName httpMethod)
throws Exception {
return this.access(url, null, content, contentLength,
httpMethod);
}
public HttpResponse access(URL url, HttpMethodName httpMethod)
throws Exception {
return this.access(url, null, null, 0l, httpMethod);
}

public abstract void close();

public String getServiceName() {


return serviceName;
}

public void setServiceName(String serviceName) {


this.serviceName = serviceName;
}

public String getRegion() {


return region;
}

public void setRegion(String region) {


this.region = region;
}

public String getAk() {


return ak;
}

public void setAk(String ak) {


this.ak = ak;
}

public String getSk() {


return sk;
}

public void setSk(String sk) {


this.sk = sk;
}

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;

文档版本 02 (2018-05-17) 华为专有和保密信息 7


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

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;

public class AccessServiceImpl extends AccessService {

private CloseableHttpClient client = null;

public AccessServiceImpl(String serviceName, String region, String ak,


String sk) {
super(serviceName, region, ak, sk);
}

/** {@inheritDoc} */

public HttpResponse access(URL url, Map<String, String> headers,


InputStream content, Long contentLength, HttpMethodName httpMethod)
throws Exception {

// Make a request for signing.


Request request = new DefaultRequest(this.serviceName);
try {
// Set the request address.
request.setEndpoint(url.toURI());

String urlString = url.toString();

String parameters = null;

if (urlString.contains("?")) {
parameters = urlString.substring(urlString.indexOf("?") + 1);
Map parametersmap = new HashMap<String, String>();

if (null != parameters && !"".equals(parameters)) {


String[] parameterarray = parameters.split("&");

for (String p : parameterarray) {


String key = p.split("=")[0];
String value = p.split("=")[1];

文档版本 02 (2018-05-17) 华为专有和保密信息 8


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

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);

// Select an algorithm for request signing.


Signer signer = SignerFactory.getSigner(serviceName, region);
// Sign the request, and the request will change after the signing.
signer.sign(request, new BasicCredentials(this.ak, this.sk));

// Make a request that can be sent by the HTTP client.


HttpRequestBase httpRequestBase = createRequest(url, null,
request.getContent(), contentLength, httpMethod);
Map<String, String> requestHeaders = request.getHeaders();
// Put the header of the signed request to the new request.
for (String key : requestHeaders.keySet()) {
if (key.equalsIgnoreCase(HttpHeaders.CONTENT_LENGTH.toString())) {
continue;
}
httpRequestBase.addHeader(key, requestHeaders.get(key));
}

HttpResponse response = null;


SSLContext sslContext = SSLContexts.custom()
.loadTrustMaterial(null, new TrustSelfSignedStrategy())
.useTLS().build();
SSLConnectionSocketFactory sslSocketFactory = new
SSLConnectionSocketFactory(
sslContext, new AllowAllHostnameVerifier());

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

文档版本 02 (2018-05-17) 华为专有和保密信息 9


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

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();
}

文档版本 02 (2018-05-17) 华为专有和保密信息 10


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

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;

public class Demo {

//replace real region


private static final String region = "regionName";

//replace real service name


private static final String serviceName = "serviceName";

public static void main(String[] args) {

//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);
}

public static void put(String ak, String sk, String requestUrl,

文档版本 02 (2018-05-17) 华为专有和保密信息 11


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

String putBody) {

AccessService accessService = null;


try {
accessService = new AccessServiceImpl(serviceName, region, ak, sk);
URL url = new URL(requestUrl);
HttpMethodName httpMethod = HttpMethodName.PUT;

InputStream content = new ByteArrayInputStream(putBody.getBytes());


HttpResponse response = accessService.access(url, content,
(long) putBody.getBytes().length, httpMethod);

System.out.println(response.getStatusLine().getStatusCode());

} catch (Exception e) {
e.printStackTrace();
} finally {
accessService.close();
}

public static void patch(String ak, String sk, String requestUrl,


String putBody) {

AccessService accessService = null;


try {
accessService = new AccessServiceImpl(serviceName, region, ak, sk);
URL url = new URL(requestUrl);
HttpMethodName httpMethod = HttpMethodName.PATCH;
InputStream content = new ByteArrayInputStream(putBody.getBytes());
HttpResponse response = accessService.access(url, content,
(long) putBody.getBytes().length, httpMethod);

System.out.println(convertStreamToString(response.getEntity()
.getContent()));
} catch (Exception e) {
e.printStackTrace();
} finally {
accessService.close();
}

public static void delete(String ak, String sk, String requestUrl) {

AccessService accessService = null;

try {
accessService = new AccessServiceImpl(serviceName, region, ak, sk);
URL url = new URL(requestUrl);
HttpMethodName httpMethod = HttpMethodName.DELETE;

HttpResponse response = accessService.access(url, httpMethod);


System.out.println(convertStreamToString(response.getEntity()
.getContent()));
} catch (Exception e) {
e.printStackTrace();
} finally {
accessService.close();
}

文档版本 02 (2018-05-17) 华为专有和保密信息 12


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

public static void get(String ak, String sk, String requestUrl) {

AccessService accessService = null;

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();
}

public static void post(String ak, String sk, String requestUrl,


String postbody) {

AccessService accessService = new AccessServiceImpl(serviceName,


region, ak, sk);
URL url = null;
try {
url = new URL(requestUrl);
} catch (MalformedURLException e) {
e.printStackTrace();
}
InputStream content = new ByteArrayInputStream(postbody.getBytes());
HttpMethodName httpMethod = HttpMethodName.POST;
HttpResponse response;

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();
}
}

private static String convertStreamToString(InputStream is) {


BufferedReader reader = new BufferedReader(new
InputStreamReader(is));
StringBuilder sb = new StringBuilder();

String line = null;


try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();

文档版本 02 (2018-05-17) 华为专有和保密信息 13


版权所有 © 华为技术有限公司
深度学习服务
API 参考 2 接口使用方法

} 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。

----结束

文档版本 02 (2018-05-17) 华为专有和保密信息 14


版权所有 © 华为技术有限公司
深度学习服务
API 参考 3 公共消息头

3 公共消息头

3.1 公共请求消息头
公共请求消息头如公共请求消息头所示。

表 3-1 公共请求消息头
参数名 说明 是否必选 示例

X-Sdk-Date 请求的发生时间,格式 使用AK/SK认 20150907T101459Z


为 证时必选。
(YYYYMMDD'T'HHM
MSS'Z')。
取值为当前系统的GMT
时间。

Authorization 签名认证信息。 使用AK/SK认 SDK-HMAC-SHA256


该值来源于请求签名结 证时必选。 Credential=QRUP2R3Q
果。 FNAOVAWMYHZW/
20160202/CN North-
Beijing2/test/
sdk_request,
SignedHeaders=host;x-
sdk-date,
Signature=9d8b56b055c
0e1f7a9498d881a7cb726
be91b4f0cde1773b0b155
7e987a480ce

Host 请求的服务器信息,从 使用AK/SK认 code.test.com


服务API的URL中获 证时必选。 or
取。值为
hostname[:port]。端口 code.test.com:443
缺省时使用默认的端
口,https的默认端口为
443。

文档版本 02 (2018-05-17) 华为专有和保密信息 15


版权所有 © 华为技术有限公司
深度学习服务
API 参考 3 公共消息头

参数名 说明 是否必选 示例

Content-type 发送的实体的MIME类 是。 application/json


型。

Content-Length 请求body长度,单位为 POST/PUT请 3495


Byte。 求必填。 GET
不能包含。

X-Project-Id project id,用于不同 否。 e9993fc787d94b6c886cb


project取token。 aa340f9c0f4

X-Auth-Token 用户Token。 否。 -
使用Token认证
时必选。

X-Language 请求语言,支持配置如 是。 en-us


下值:
l zh-cn:中文
l en-us:英文

说明

其它header属性,请遵照http协议。

3.2 公共响应消息头
公共响应消息头如公共响应消息头所示。

表 3-2 公共响应消息头
参数名 说明

Content-Length 响应消息体的字节长度,单位为Byte。

Date 系统响应的时间。

Content-type 发送的实体的MIME类型。

文档版本 02 (2018-05-17) 华为专有和保密信息 16


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

4 作业管理接口

4.1 训练作业

4.1.1 创建训练作业
功能介绍
创建训练作业。此接口为异步操作,作业状态请通过查询训练作业和查看训练作业接
口获取。

URI
l URI 格式
POST /v1.0/{project_id}/train-jobs
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

请求
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",

文档版本 02 (2018-05-17) 华为专有和保密信息 17


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

"value": "0.01"
}, {
"label": "batch_size",
"value": "32"
}],
"checkpoint": "/user/checkpoint",
"data_url": "/user/date",
"spec_id": 1,
"engine_id": 1
}
}
l Body参数说明
参数 是否为必选 类型 说明

job_name 是 String 训练作业名称,限制为1-20位只含


数字,字母,下划线,中划线的名
称。

job_desc 否 String 对训练作业的描述,默认为Null,


字符串的长度限制为[0, 256]。

config 是 JSON 创建训练作业需要的参数。

l config属性列表
参数 是否为必选 类型 说明

paramete 否 Int 训练作业ps的个数,如果worker的个数为


r_server_ 1,默认ps的个数为0,如果worker的个数大
num 于1,默认ps的个数与worker的个数相同。
最大值请从查看作业资源规格接口获取。

worker_s 是 Int 训练作业worker的个数。最大值请从查看作


erver_nu 业资源规格接口获取。
m

app_url 是 String 训练作业的代码目录。如:“/bucket1/


code/”。

boot_file 是 String 训练作业的代码启动文件,需要在代码目录


_url 下。如:“/bucket1/app/boot.py”。

is_contin 否 Boolea 训练作业是否基于已有的checkpoint进行训


ue n 练,默认为“false”。

paramete 是 JSON 训练作业的运行参数,为key-value格式。该


r Array 样例请参考请求样例。

checkpoi 否 String 配合is_continue字段使用,训练作业的


nt checkpoint的OBS路径URL,默认为空。
如:“/bucket1/checkpoint/”。

data_url 是 String 训练作业需要的数据集OBS url。如:“/


bucket1/data/”。

文档版本 02 (2018-05-17) 华为专有和保密信息 18


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为必选 类型 说明

spec_id 是 Long 训练作业选择的资源规格ID。请从查看作


业资源规格接口获取资源ID。

engine_id 否 Long 训练作业选择的引擎规格ID,默认为1。请


从查看作业引擎规格接口获取引擎规格
ID。

响应
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 要素说明
参数 是否为必 类型 说明

is_success 必选 Boolean 请求是否成功。

error_code 请求失败 String 调用失败时的错误码,具体请参考错误


必选 码参考。
调用成功时无此字段。

error_messag 请求失败 String 调用失败时的错误信息。


e 必选 调用成功时无此字段。

job_id 请求成功 Long 训练作业的id。


必选

job_name 请求成功 String 训练作业的名称。


必选

config_id 请求成功 Long 训练作业参数的id。


必选

status 请求成功 Byte 训练作业的运行状态,详细作业状态列


必选 表请查看作业状态参考。

create_time 请求成功 Timestam 训练作业的创建时间,时间戳格式。


必选 p

文档版本 02 (2018-05-17) 华为专有和保密信息 19


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.1.2 查询训练作业

功能介绍
根据指定条件查询用户创建的训练作业。

URI
l URI 格式
GET /v1.0/{project_id}/train-jobs
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

l 查询检索参数说明

参数 是否为必选 类型 说明

status 否 String 作业状态的查询,默认为所有状态,例如


查看创建失败的作业,可选的“status”为
3|5|6|13,详细作业状态列表请查看作业状
态参考。

per_page 否 Int 指定每一页展示作业的总量,默认为10,


“per_page”可选的范围为[1,100]。

page 否 Int 指定要查询页的索引,默认为1。

文档版本 02 (2018-05-17) 华为专有和保密信息 20


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为必选 类型 说明

sortBy 否 String 指定查询的排序方式,默认是作业名称


“job_name”,目前支持的排序还有作业
描述“job_desc”,作业状态“status”,
运行时长“duration”,引擎类型
“engine_type”以及创建时间
“create_time”。

order 否 String 可选值有:


l “asc”为递增排序,默认为“asc”。
l “desc”为递减排序。

search_cont 否 String 指定要查询的文字信息,例如训练作业名


ent 字,默认为空,字符串的长度为[0,
100]。

请求
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 要素说明

文档版本 02 (2018-05-17) 华为专有和保密信息 21


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为必 类型 说明

is_success 必选 Boolean 请求是否成功。

error_code 请求失败 String 调用失败时的错误码,具体请参考错误码


必选 参考。
调用成功时无此字段。

error_messa 请求失败 String 调用失败时的错误信息。


ge 必选 调用成功时无此字段。

job_total_co 请求成功 Int 查询到的用户创建作业总数。


unt 必选

job_count_li 请求成功 Int 用户还可以创建训练作业的数量。


mit 必选

jobs 请求成功 JSON 训练作业的属性列表,具体见jobs说明。


必选 Array

l jobs属性列表

参数 类型 说明

job_name String 训练作业的名称。

agent_job_id String 训练作业在后台生成的id,具有全局唯一性。

status Byte 训练作业的运行状态,详细作业状态列表请查看


作业状态参考。

create_time Timestamp 训练作业的创建时间,时间戳格式。

duration Long 训练作业的运行时长。

job_desc String 训练作业的具体描述。

config_name String 训练作业参数保存的名称。

engine_type Short 训练作业的引擎类型。

engine_id Long 训练作业的引擎ID。

engine_name String 训练作业的引擎名称。

engine_versio String 训练作业使用的引擎版本。


n

返回值
l 正常
200
l 异常

文档版本 02 (2018-05-17) 华为专有和保密信息 22


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.1.3 查看训练作业
功能介绍
根据作业名称查看指定的训练作业详情。

URI
l URI 格式
GET /v1.0/{project_id}/train-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 训练作业的名称。

请求
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,

文档版本 02 (2018-05-17) 华为专有和保密信息 23


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

"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 要素说明
参数 是否为 类型 说明
必选

is_success 必选 Boole 请求是否成功。


an

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

job_name 请求成 String 训练作业的名称。


功必选

agent_job_id 请求成 String 训练作业在后台生成的id,具有全局唯一


功必选 性。

config_id 请求成 Long 训练作业参数的id。


功必选

config_name 请求成 String 训练作业参数的名称。


功必选

parameter_se 请求成 Int 训练作业ps的个数。


rver_num 功必选

worker_serv 请求成 Int 训练作业worker的个数。


er_num 功必选

app_url 请求成 String 训练作业的代码目录。


功必选

文档版本 02 (2018-05-17) 华为专有和保密信息 24


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为 类型 说明
必选

boot_file_url 请求成 String 训练作业的代码启动文件。


功必选

is_continue 请求成 Boole 训练作业是否基于原来的checkpoint进行训


功必选 an 练,默认为false。

parameter 请求成 JSON 训练作业的运行参数,为key-value格式。


功必选

spec_id 请求成 Long 训练作业资源规格id。


功必选

data_url 请求成 String 训练作业的数据集。


功必选

checkpoint 请求成 String 训练作业的checkpoint路径。


功必选

status 请求成 Byte 训练作业的状态, 详细作业状态列表请查看作


功必选 业状态参考。

create_time 请求成 Times 训练作业的创建时间。


功必选 tamp

job_desc 请求成 String 训练作业的描述信息。


功必选

duration 请求成 Long 训练作业的运行时间。


功必选

core 请求成 String 资源规格的核数。


功必选

cpu 请求成 String 资源规格CPU内存。


功必选

gpu_num 请求成 Int 资源规格gpu的个数。


功必选

gpu_type 请求成 String 资源规格gpu的类型。


功必选

spec_code 请求成 String 云资源的规格类型。


功必选

max_num 请求成 Int 训练作业可选择的节点


功必选 (worker_server_num)最大个数。

engine_type 请求成 Short 训练作业的引擎类型。


功必选

engine_id 请求成 Long 训练作业的引擎ID。


功必选

文档版本 02 (2018-05-17) 华为专有和保密信息 25


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为 类型 说明
必选

engine_name 请求成 String 训练作业的引擎名称。


功必选

engine_versi 请求成 String 训练作业使用的引擎版本。


on 功必选

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.1.4 更新训练作业描述
功能介绍
更新训练作业的描述。

URI
l URI 格式
PUT /v1.0/{project_id}/train-jobs/{job_name}
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 训练作业的名称。

请求
l 请求样例

文档版本 02 (2018-05-17) 华为专有和保密信息 26


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

PUT https://endpoint/v1.0/{project_id}/train-jobs/{job_name}
{
"job_desc": "this is a train job"
}
l Body参数说明

参数 是否为必选 类型 说明

job_desc 是 String 对训练作业的描述,字符串的长度


限制为[0, 256]。

响应
l 响应样例
– 成功
{
"is_success": true
}

– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Illegal name: %%123"
}

l 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boolea 请求是否成功。


n

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

文档版本 02 (2018-05-17) 华为专有和保密信息 27


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

返回值 说明

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.1.5 删除训练作业

功能介绍
删除训练作业。此接口为异步操作,作业状态请通过查询训练作业和查看训练作业接
口获取。

URI
l URI 格式
DELETE /v1.0/{project_id}/train-jobs/{job_name}
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 训练作业的名称。

请求
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 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boolean 请求是否成功。

文档版本 02 (2018-05-17) 华为专有和保密信息 28


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为 类型 说明
必选

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_mes 请求失 String 调用失败时的错误信息。


sage 败必选 调用成功时无此字段。

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.1.6 停止训练作业

功能介绍
停止训练作业。此接口为异步操作,作业状态请通过查询训练作业和查看训练作业接
口获取。

URI
l URI 格式
POST /v1.0/{project_id}/train-jobs/{job_name}/stop
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 训练作业的名称。

文档版本 02 (2018-05-17) 华为专有和保密信息 29


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

请求
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 要素说明

参数 是否为必 类型 说明

is_success 必选 Boolea 请求是否成功。


n

error_code 请求失败 String 调用失败时的错误码,具体请参考错误码参


必选 考。
调用成功时无此字段。

error_messag 请求失败 String 调用失败时的错误信息。


e 必选 调用成功时无此字段。

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

文档版本 02 (2018-05-17) 华为专有和保密信息 30


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

4.1.7 获取训练作业日志的文件名

功能介绍
获取训练作业日志的文件名。

URI
l URI 格式
GET /v1.0/{project_id}/log/file-names/{job_name}
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 训练作业的名称。

请求
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 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boolea 请求是否成功。


n

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

文档版本 02 (2018-05-17) 华为专有和保密信息 31


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为 类型 说明
必选

log_file_list 请求成 String 训练作业的日志文件名,单机作业日志仅有


功必选 一个文件,分布式作业日志有多个文件。

返回值
l 正常
200
l 异常
返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.1.8 查看训练作业日志
功能介绍
查看训练作业日志。

URI
l URI 格式
GET /v1.0/{project_id}/log/{job_name}
l 参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 训练作业的名称。

l 查询检索参数说明

文档版本 02 (2018-05-17) 华为专有和保密信息 32


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为必选 类型 说明

start_byte 否 Long 获取日志的起始位置,默认为0,


“start_byte”限制范围为[-1, +∞],如果设
置为-1,则表示获得最新长度为“offfse”的
日志。

offset 否 Long 获取日志的长度,默认为2048,“offset”限


制长度为[-2048, 2048]。

log_file 是 Strin 要查看的日志文件名称。从获取训练作业日


g 志的文件名接口获取。

请求
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 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boolea 请求是否成功。


n

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

log 请求成 String 请求获得日志的内容。


功必选

log_byte_co 请求成 Long 获得日志字节的长度。


unt 功必选

文档版本 02 (2018-05-17) 华为专有和保密信息 33


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为 类型 说明
必选

end_byte 请求成 Long 该段日志内容的结束位置。


功必选

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.2 预测作业

4.2.1 创建预测作业

功能介绍
创建预测作业。此接口为异步操作,作业状态请通过查询预测作业和查看预测作业接
口获取。

URI
l URI 格式
POST /v1.0/{project_id}/inference-jobs
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

文档版本 02 (2018-05-17) 华为专有和保密信息 34


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

请求
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参数说明

参数 是否为必选 类型 说明

job_name 是 String 预测作业名称,限制为1-20位只含数


字,字母,下划线,中划线的名称。

job_desc 否 String 对预测作业的描述,默认为空,字符串


的长度限制为[0, 256]。

config 是 JSON 创建预测作业需要的参数。

l config属性列表

参数 是否为 类型 说明
必选

worker_ser 是 Int 预测作业worker的个数,最大值请从查看作业


ver_num 资源规格接口获取。

checkpoint 是 String 创建预测作业的checkpoint目录,如:/bucket/


checkpoint/。

spec_id 是 Long 预测作业选择的资源规格ID。请从查看作业资


源规格接口获取资源规格ID。

parameter 是 JSON 预测作业的运行参数,为key-value格式,其中


必须要key为"model_name",value需要制定模
型的名称。该样例请参考请求样例。

engine_id 否 Long 预测作业选择的引擎ID,默认为2。请从查看


作业引擎规格接口获取引擎规格ID。

响应
l 响应样例
– 成功

文档版本 02 (2018-05-17) 华为专有和保密信息 35


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

{
"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 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boolea 请求是否成功。


n

job_id 请求成 Long 预测作业的id。


功必选

job_name 请求成 String 预测作业的名称。


功必选

status 请求成 Byte 预测作业的运行状态,详细作业状态列表请


功必选 查看作业状态参考。

create_time 请求成 Timest 预测作业的创建时间,时间戳格式。


功必选 amp

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messa 请求失 String 调用失败时的错误信息。


ge 败必选 调用成功时无此字段。

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

文档版本 02 (2018-05-17) 华为专有和保密信息 36


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

返回值 说明

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.2.2 查询预测作业
功能介绍
根据指定条件查询用户创建的预测作业。

URI
l URI 格式
GET /v1.0/{project_id}/inference-jobs
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

l 查询检索参数说明
参数 是否为必 类型 说明

status 否 String 作业状态的查询,默认为所有状态,例如查


看创建失败的作业,可选的“status”为3|5|
6|13,详细作业状态列表请查看作业状态参
考。

per_page 否 Int 指定每一页展示作业的总量,默认为10,


“per_page”可选的范围为[1,100]。

page 否 Int 指定要查询页的索引,默认为1。

sortBy 否 String 指定查询的排序方式,默认是作业名称


“job_name”,目前支持的排序还有作业描
述“job_desc”,作业状态“status”,运行
时长“duration”以及创建时间
“create_time”,服务地址“service_url”,
引擎类型“engine_type”。

order 否 String 可选值有(asc,desc)。


l asc为递增排序,默认为asc。
l desc为递减排序。

search_cont 否 String 指定要查询的文字信息,例如预测作业名


ent 字,默认为空,字符串的长度为[0,100]。

文档版本 02 (2018-05-17) 华为专有和保密信息 37


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

请求
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 要素说明
参数 是否为 类型 说明
必选

is_success 必选 Boolea 请求是否成功。


n

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

job_total_co 请求成 Int 查询的预测作业总数。


unt 功必选

job_count_li 请求成 Int 用户还可以创建预测作业的数量。


mit 功必选

文档版本 02 (2018-05-17) 华为专有和保密信息 38


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为 类型 说明
必选

jobs 请求成 JSON 预测作业的属性列表,具体见jobs说明。


功必选 Array

l jobs属性列表
参数 类型 说明

job_name String 预测作业的名称。

agent_job_id String 预测作业在后台生成的id,具有全局唯一性。

status Byte 预测作业的运行状态,详细作业状态列表请查看


作业状态参考。

create_time Timestamp 预测作业的创建时间,时间戳格式。

duration Long 预测作业的运行时长。

job_desc String 预测作业的具体描述。

checkpoint String 预测作业的checkpoint路径。

service_url String 预测作业的服务地址。

engine_type Short 预测作业的引擎类型。

engine_id Long 预测作业的引擎ID。

engine_name String 预测作业的引擎名称。

engine_versio String 预测作业使用的引擎版本。


n

返回值
l 正常
200
l 异常
返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

文档版本 02 (2018-05-17) 华为专有和保密信息 39


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

4.2.3 查看预测作业
功能介绍
根据作业名称查看指定的预测作业详情。

URI
l URI 格式
GET /v1.0/{project_id}/inference-jobs/{job_name}
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 预测作业的名称。

请求
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,

文档版本 02 (2018-05-17) 华为专有和保密信息 40


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

"error_code":"DLS.0104",
"error_message":"Illegal name: %%123"
}
l 要素说明
参数 是否为 类型 说明
必选

is_success 必选 Boolea 请求是否成功。


n

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

job_name 请求成 String 预测作业的名称。


功必选

agent_job_id 请求成 String 预测作业在后台生成的id,具有全局唯一


功必选 性。

config_id 请求成 Long 预测作业参数的id。


功必选

config_name 请求成 String 预测作业参数的名称。


功必选

worker_serv 请求成 Int 预测作业worker的个数。


er_num 功必选

parameter 请求成 JSON 预测作业的运行参数,为key-value格式。


功必选

spec_id 请求成 Long 预测作业资源规格id。


功必选

checkpoint 请求成 String 预测作业的checkpoint路径。


功必选

status 请求成 Byte 预测作业的状态,详细作业状态列表请查看


功必选 作业状态参考。

create_time 请求成 Timesta 预测作业的创建时间。


功必选 mp

job_desc 请求成 String 预测作业的描述信息。


功必选

duration 请求成 Long 预测作业的运行时间。


功必选

service_url 请求成 String 预测作业的endpoint。


功必选

文档版本 02 (2018-05-17) 华为专有和保密信息 41


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为 类型 说明
必选

core 请求成 String 资源规格的核数。


功必选

cpu 请求成 String 资源规格CPU内存。


功必选

gpu_num 请求成 Int 资源规格gpu的个数。


功必选

gpu_type 请求成 String 资源规格gpu的类型。


功必选

spec_code 请求成 String 云资源的规格类型。


功必选

max_num 请求成 Int 预测作业可选择的节点


功必选 (worker_server_num)最大个数。

engine_type 请求成 Short 预测作业的引擎类型。


功必选

engine_id 请求成 Long 预测作业的引擎ID。


功必选

engine_name 请求成 String 预测作业的引擎名称。


功必选

engine_versi 请求成 String 预测作业使用的引擎版本。


on 功必选

返回值
l 正常
200
l 异常
返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

文档版本 02 (2018-05-17) 华为专有和保密信息 42


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

4.2.4 更新预测作业描述
功能介绍
更新预测作业的描述。

URI
l URI 格式
PUT /v1.0/{project_id}/inference-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 训练作业的名称。

请求
l 请求样例
PUT https://endpoint/v1.0/{project_id}/inference-jobs/
InferenceJobName
{
"job_desc": "this is an inference job"
}
l Body参数说明
参数 是否为必选 类型 说明

job_desc 是 String 对预测作业的描述,字符串的长度


限制为[0, 256]。

响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Illegal name: %%123"
}
l 要素说明

文档版本 02 (2018-05-17) 华为专有和保密信息 43


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为 类型 说明
必选

is_success 必选 Boolea 请求是否成功。


n

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

返回值
l 正常
200
l 异常
返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.2.5 删除预测作业
功能介绍
删除预测作业。此接口为异步操作,作业状态请通过查询预测作业和查看预测作业接
口获取。

URI
l URI 格式
DELETE /v1.0/{project_id}/inference-jobs/{job_name}
l 参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 预测作业的名称。

文档版本 02 (2018-05-17) 华为专有和保密信息 44


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

请求
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 要素说明

参数 是否 类型 说明
为必

is_success 必选 Boolean 请求是否成功。

error_code 请求 String 调用失败时的错误码,具体请参考错误码参


失败 考。
必选 调用成功时无此字段。

error_mes 请求 String 调用失败时的错误信息。


sage 失败 调用成功时无此字段。
必选

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

文档版本 02 (2018-05-17) 华为专有和保密信息 45


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

返回值 说明

503 Service Unavailable 服务不可用。

4.2.6 停止预测作业

功能介绍
停止预测作业。此接口为异步操作,作业状态请通过查询预测作业和查看预测作业接
口获取。

URI
l URI 格式
POST /v1.0/{project_id}/inference-jobs/{job_name}/stop
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 预测作业的名称。

请求
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 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boolean 请求是否成功。

文档版本 02 (2018-05-17) 华为专有和保密信息 46


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为 类型 说明
必选

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_mess 请求失 String 调用失败时的错误信息。


age 败必选 调用成功时无此字段。

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.2.7 重启预测作业

功能介绍
重启预测作业。此接口为异步操作,作业状态请通过查询预测作业和查看预测作业接
口获取。

URI
l URI 格式
POST /v1.0/{project_id}/inference-jobs/{job_name}/restart
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 预测作业的名称。

文档版本 02 (2018-05-17) 华为专有和保密信息 47


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

请求
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 要素说明

参数 是否 类型 说明
为必

is_success 必选 Boolean 请求是否成功。

error_code 请求 String 调用失败时的错误码,具体请参考错误码参


失败 考。
必选 调用成功时无此字段。

error_mess 请求 String 调用失败时的错误信息。


age 失败 调用成功时无此字段。
必选

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

文档版本 02 (2018-05-17) 华为专有和保密信息 48


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

4.3 可视化作业

4.3.1 创建可视化作业
功能介绍
创建可视化作业。此接口为异步操作,作业状态请通过查询可视化作业接口获取。

URI
l URI 格式
POST /v1.0/{project_id}/tensorboard-jobs
l 参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

请求
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参数说明
参数 是否为必选 类型 说明

job_name 是 String 可视化作业名称,限制为1-20位只含数


字,字母,下划线,中划线的名称。

job_desc 否 String 对可视化作业的描述,默认为空,字符


串的长度限制为[0, 256]。

log_dir 是 String 创建可视化作业需要的日志目录,如:/


bucket/log/。

响应
l 响应样例
– 成功
{
"is_success": true
"job_id": 1,
"job_name": "tensorboardjob",
"status": 1,

文档版本 02 (2018-05-17) 华为专有和保密信息 49


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

"create_time": 1521786912361
}

– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"tensorboard log dir should be directory.File path:/bucket/log"
}

l 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boolea 请求是否成功。


n

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

job_id 请求成 Long 可视化作业的id。


功必选

job_name 请求成 String 可视化作业的名称。


功必选

status 请求成 Byte 可视化作业的运行状态,详细作业状态列表


功必选 请查看作业状态参考。

create_time 请求成 Timesta 可视化作业的创建时间,时间戳格式。


功必选 mp

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

文档版本 02 (2018-05-17) 华为专有和保密信息 50


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

4.3.2 查询可视化作业
功能介绍
根据指定条件查询用户创建的可视化作业。

URI
l URI 格式
GET /v1.0/{project_id}/tensorboard-jobs
l 参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

l 查询检索参数
参数 是否为必选 类型 说明

status 否 String 作业状态的查询,默认为所有状态,例


如查看创建失败的作业,可选的
“status”为3|5|6|13,详细作业状态列表
请查看作业状态参考。

per_page 否 Int 指定每一页展示作业的总量,默认为


10,“per_page”可选的范围为[1,
100]。

page 否 Int 指定要查询页的索引,默认为1。

sortBy 否 String 指定查询的排序方式,默认是作业名称


“job_name”,目前支持的排序还有作
业描述“job_desc”,作业状态
“status”,运行时长“duration”以及创
建时间 “create_time”,日志存储目录
“log_dir”。

order 否 String 可选值有(asc,desc)。


l asc为递增排序,默认为asc。
l desc为递减排序。

search_cont 否 String 指定要查询的文字信息,例如可视化作


ent 业名字,默认为空,字符串的长度为[0,
100]。

请求
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

文档版本 02 (2018-05-17) 华为专有和保密信息 51


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

响应
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 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boolean 请求是否成功。

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messa 请求失 String 调用失败时的错误信息。


ge 败必选 调用成功时无此字段。

job_total_co 请求成 Int 查询的可视化作业总数。


unt 功必选

job_count_li 请求成 Int 用户还可以创建可视化作业的数量。


mit 功必选

jobs 请求成 JSON 可视化作业的属性列表,具体见jobs说明。


功必选 Array

l jobs属性列表

参数 类型 说明

job_name String 可视化作业的名称。

agent_job_id String 可视化作业在后台生成的id,具有全局唯一性。

文档版本 02 (2018-05-17) 华为专有和保密信息 52


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 类型 说明

status Byte 可视化作业的运行状态,详细作业状态列表请查


看作业状态参考。

create_time Timestamp 可视化作业的创建时间,时间戳格式。

duration Long 可视化作业的运行时长。

job_desc String 可视化作业的具体描述。

service_url String 可视化作业的endpoint。

log_dir String 可视化作业的日志存储路径。

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.3.3 更新可视化作业描述

功能介绍
更新可视化作业的描述。

URI
l URI 格式
PUT /v1.0/{project_id}/tensorboard-jobs/{job_name}
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 可视化作业的名称。

文档版本 02 (2018-05-17) 华为专有和保密信息 53


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

请求
l 请求样例
PUT https://endpoint/v1.0/{project_id}/tensorboard-jobs/
tensorboardJobName
{
"job_desc": "this is a tensorboard job"
}
l Body参数说明

参数 是否为必选 类型 说明

job_desc 是 String 对可视化作业的描述,字符串的长


度限制为[0, 256]。

响应
l 响应样例
– 成功
{
"is_success": true
}

– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Illegal name: %%123"
}

l 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boolea 请求是否成功。


n

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

返回值
l 正常
200
l 异常

文档版本 02 (2018-05-17) 华为专有和保密信息 54


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.3.4 删除可视化作业

功能介绍
删除可视化作业。此接口为异步操作,作业状态请通过查询可视化作业接口获取。

URI
l URI 格式
DELETE /v1.0/{project_id}/tensorboard-jobs/{job_name}
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 可视化作业的名称。

请求
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 要素说明

文档版本 02 (2018-05-17) 华为专有和保密信息 55


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否 类型 说明
为必

is_success 必选 Boolean 请求是否成功。

error_code 请求 String 调用失败时的错误码,具体请参考错误码参


失败 考。
必选 调用成功时无此字段。

error_messag 请求 String 调用失败时的错误信息。


e 失败 调用成功时无此字段。
必选

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.3.5 停止可视化作业
功能介绍
停止可视化作业。此接口为异步操作,作业状态请通过查询可视化作业接口获取。

URI
l URI 格式
POST /v1.0/{project_id}/tensorboard-jobs/{job_name}/stop
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 可视化作业的名称。

文档版本 02 (2018-05-17) 华为专有和保密信息 56


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

请求
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 要素说明

参数 是否 类型 说明
为必

is_success 必选 Boolean 请求是否成功。

error_code 请求 String 调用失败时的错误码,具体请参考错误码参


失败 考。
必选 调用成功时无此字段。

error_messa 请求 String 调用失败时的错误信息。


ge 失败 调用成功时无此字段。
必选

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

文档版本 02 (2018-05-17) 华为专有和保密信息 57


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

返回值 说明

503 Service Unavailable 服务不可用。

4.3.6 重启可视化作业

功能介绍
重启可视化作业。此接口为异步操作,作业状态请通过查询可视化作业接口获取。

URI
l URI 格式
POST /v1.0/{project_id}/tensorboard-jobs/{job_name}/restart
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String 可视化作业的名称。

请求
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 要素说明

参数 是否 类型 说明
为必

is_success 必选 Boolean 请求是否成功。

文档版本 02 (2018-05-17) 华为专有和保密信息 58


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否 类型 说明
为必

error_code 请求 String 调用失败时的错误码,具体请参考错误码参


失败 考。
必选 调用成功时无此字段。

error_messag 请求 String 调用失败时的错误信息。


e 失败 调用成功时无此字段。
必选

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.4 Notebook 作业

4.4.1 创建 Notebook 作业

功能介绍
创建Notebook作业。此接口为异步操作,作业状态请通过创建Notebook作业接口获
取。

URI
l URI 格式
POST /v1.0/{project_id}/notebook-jobs
l 参数说明

文档版本 02 (2018-05-17) 华为专有和保密信息 59


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

请求
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参数说明

参数 是否为必选 类型 说明

job_name 是 String Notebook作业名称,限制为1-20位只含数


字,字母,下划线,中划线的名称。

job_desc 否 String 对Notebook作业的描述,默认为空,字符


串的长度限制为[0, 256]。

code_storag 是 String Notebook作业储存的位置,选择OBS路


e_url 径,如:“/bucket1/code/”。

engine_id 是 Long Notebook作业选择的引擎ID。请从查看作


业引擎规格接口获取引擎规格ID。

响应
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 要素说明

参数 是否为必 类型 说明

is_success 必选 Boolean 请求是否成功。

文档版本 02 (2018-05-17) 华为专有和保密信息 60


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为必 类型 说明

error_code 请求失败 String 调用失败时的错误码,具体请参考错误码


必选 参考。
调用成功时无此字段。

error_mess 请求失败 String 调用失败时的错误信息。


age 必选 调用成功时无此字段。

job_id 请求成功 Long Notebook作业的id。


必选

job_name 请求成功 String Notebook作业的名称。


必选

status 请求成功 Byte Notebook作业的运行状态,详细作业状态


必选 列表请查看作业状态参考。

create_time 请求成功 Timestam Notebook作业的创建时间,时间戳格式。


必选 p

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.4.2 查询 Notebook 作业

功能介绍
根据指定条件查询用户创建的Notebook作业。

URI
l URI 格式
GET /v1.0/{project_id}/notebook-jobs

文档版本 02 (2018-05-17) 华为专有和保密信息 61


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

l 查询检索参数说明

参数 是否为 类型 说明
必选

status 否 String 作业状态的查询,默认为所有状态,例如查看


创建失败的作业,可选的“status”为3|5|6|
13,详细作业状态列表请查看作业状态参考。

per_page 否 Int 指定每一页展示作业的总量,默认为10,


“per_page”可选的范围为[1,100]。

page 否 Int 指定要查询页的索引,默认为1。

sortBy 否 String 指定查询的排序方式,默认是作业名称


“job_name”,目前支持的排序还有作业描述
“job_desc”,作业状态“status”,运行时长
“duration”,引擎类型“engine_type”以及创
建时间 “create_time”。

order 否 String 可选值有(asc,desc)。


l asc为递增排序,默认为asc。
l desc为递减排序。

search_co 否 String 指定要查询的文字信息,例如Notebook作业名


ntent 字,默认为空,字符串的长度为[0,100]。

请求
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,

文档版本 02 (2018-05-17) 华为专有和保密信息 62


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

"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 要素说明

参数 是否为必 类型 说明

is_success 必选 Boolean 请求是否成功。

error_code 请求失败 String 调用失败时的错误码,具体请参考错误码


必选 参考。
调用成功时无此字段。

error_mess 请求失败 String 调用失败时的错误信息。


age 必选 调用成功时无此字段。

job_total_c 请求成功 Int 查询的Notebook作业总数。


ount 必选

job_limit 请求成功 Int 用户可以创建Notebook作业的数量。


必选

jobs 请求成功 JSON Notebook作业的属性列表,具体见jobs说


必选 Array 明。

l jobs属性列表

参数 类型 说明

job_name String Notebook作业的名称。

status Byte Notebook作业的运行状态。

create_time Timestamp Notebook作业的创建时间,时间戳格式。

duration Long Notebook作业的运行时长。

job_desc String Notebook作业的具体描述。

notebook_url String Notebook作业访问url。

code_storage String Notebook作业的存储位置。


_url

engine_type Short Notebook作业的引擎类型。

文档版本 02 (2018-05-17) 华为专有和保密信息 63


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 类型 说明

engine_id Long Notebook作业的引擎ID。

engine_name String Notebook作业的引擎名称。

engine_versio String Notebook作业使用的引擎版本。


n

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

4.4.3 删除 Notebook 作业

功能介绍
删除Notebook作业。此接口为异步接口,作业状态请通过查询Notebook作业接口获
取。

URI
l URI 格式
DELETE /v1.0/{project_id}/notebook-jobs/{job_name}
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_name 是 String Notebook作业的名称。

文档版本 02 (2018-05-17) 华为专有和保密信息 64


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

请求
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 要素说明

参数 是否为必 类型 说明

is_success 必选 Boolean 请求是否成功。

error_code 请求失败 String 调用失败时的错误码,具体请参考错误码


必选 参考。
调用成功时无此字段。

error_mess 请求失败 String 调用失败时的错误信息。


age 必选 调用成功时无此字段。

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

文档版本 02 (2018-05-17) 华为专有和保密信息 65


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

4.4.4 更新 Notebook 作业描述


功能介绍
更新Notebook作业的描述。

URI
l URI 格式
PUT /v1.0/{project_id}/notebook-jobs/{job_name}
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见查


看项目ID。

job_name 是 String Notebook作业的名称。

请求
l 请求样例
PUT https://endpoint/v1.0/{project_id}/notebook-jobs/{job_name}
{
"job_desc": "this is a notebook job"
}
l Body参数说明

参数 是否为必选 类型 说明

job_desc 是 String 对Notebook作业的描述,字符串的长


度限制为[0, 256]。

响应
l 响应样例
– 成功
{
"is_success": true
}
– 失败
{
"is_success": false,
"error_code": "DLS.0104",
"error_message": "Illegal name: %%123"
}
l 要素说明

文档版本 02 (2018-05-17) 华为专有和保密信息 66


版权所有 © 华为技术有限公司
深度学习服务
API 参考 4 作业管理接口

参数 是否为必 类型 说明

is_success 必选 Boolean 请求是否成功。

error_code 请求失败 String 调用失败时的错误码,具体请参考错误码


必选 参考。
调用成功时无此字段。

error_mess 请求失败 String 调用失败时的错误信息。


age 必选 调用成功时无此字段。

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

文档版本 02 (2018-05-17) 华为专有和保密信息 67


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

5 配置参数接口

5.1 训练作业参数

5.1.1 创建训练作业参数
功能介绍
创建训练作业参数。

URI
l URI 格式
POST /v1.0/{project_id}/train-configs
l URL参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

请求
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",

文档版本 02 (2018-05-17) 华为专有和保密信息 68


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

"value":"32"
}],
"data_url":"/user/date",
"spec_id":1,
"app_url": "/user/app/",
"engine_id": 1
}
l Body参数说明
参数 是否为必 类型 说明

config_name 是 String 训练作业参数名称,限制为1-20位


只含数字,字母,下划线,中划线
的名称。

config_desc 是 String 对训练作业的描述,默认为空,字


符串的长度限制为[0, 256]。

worker_serv 是 Int 训练作业worker的个数,最大值请


er_num 从查看作业资源规格接口获取。

parameter_s 否 Int 训练作业ps的个数,如果worker的


erver_num 个数为1,默认ps的个数为0,如果
worker的个数大于1,默认ps的个
数与worker的个数相同。最大值请
从查看作业资源规格接口获取。

app_url 是 String 训练作业的代码目录。如:/


bucket1/code/。

boot_file_url 是 String 训练作业的代码启动文件,需要在


代码目录下,如:/bucket1/app/
boot.py。

is_continue 否 Boolean 训练作业是否基于原来的


checkpoint进行训练,默认为false

parameter 是 JSON Array 训练作业的运行参数,为key-value


格式,该样例请参考请求样例。

checkpoint 否 String 配合continue字段使用,训练作业


的checkpoint OBS URL,默认为
空。如:/bucket1/checkpoint/。

data_url 是 String 训练作业需要的数据集OBS url。


如:/bucket1/data/。

spec_id 是 Long 训练作业选择的资源规格ID。请从


查看作业资源规格接口获取资源规
格ID。

engine_id 否 Long 训练作业选择的引擎ID,默认为


1。请从查看作业引擎规格接口获
取引擎规格ID。

文档版本 02 (2018-05-17) 华为专有和保密信息 69


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

响应
l 响应样例
– 成功
{
"is_success": true
}

– 失败
{
"is_success": false,
"error_code":"DLS.0103",
"error_message":"Config name: config is existed"
}

l 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boolea 请求是否成功。


n

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

5.1.2 查看训练作业参数

功能介绍
查看指定的训练作业参数详情。

文档版本 02 (2018-05-17) 华为专有和保密信息 70


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

URI
l URI 格式
GET /v1.0/{project_id}/train-configs/{config_name}
l 参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

config_nam 是 String 训练作业参数的名称。


e

请求
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 要素说明

文档版本 02 (2018-05-17) 华为专有和保密信息 71


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

参数 是否 类型 说明
为必

is_success 必选 Boolea 请求是否成功。


n

error_code 请求 String 调用失败时的错误码,具体请参考错误码参


失败 考。
必选 调用成功时无此字段。

error_message 请求 String 调用失败时的错误信息。


失败 调用成功时无此字段。
必选

config_name 请求 String 训练作业参数的名称。


成功
必选

parameter_ser 请求 Int 训练作业ps的个数。


ver_num 成功
必选

worker_server 请求 Int 训练作业worker的个数。


_num 成功
必选

app_url 请求 String 训练作业的代码目录。


成功
必选

boot_file_url 请求 String 训练作业的代码启动文件。


成功
必选

is_continue 请求 Boolea 训练作业是否基于原来的checkpoint进行训


成功 n 练。
必选

parameter 请求 JSON 训练作业的运行参数,为key-value格式。


成功
必选

spec_id 请求 Long 训练作业资源规格id。


成功
必选

data_url 请求 String 训练作业的数据集。


成功
必选

checkpoint 请求 String 训练作业的checkpoint路径,默认为空。


成功
必选

文档版本 02 (2018-05-17) 华为专有和保密信息 72


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

参数 是否 类型 说明
为必

config_desc 请求 String 训练作业参数的描述信息。


成功
必选

core 请求 String 资源规格的核数。


成功
必选

cpu 请求 String 资源规格CPU内存。


成功
必选

gpu_num 请求 Int 资源规格gpu的个数。


成功
必选

gpu_type 请求 String 资源规格gpu的类型。


成功
必选

spec_code 请求 String 云资源的规格类型。


成功
必选

max_num 请求 Int 训练作业可选择的节点


成功 (worker_server_num)最大个数。
必选

engine_type 请求 Short 训练作业的引擎类型。


成功
必选

engine_id 请求 Long 训练作业的引擎ID。


成功
必选

engine_name 请求 String 训练作业的引擎名称。


成功
必选

engine_version 请求 String 训练作业使用的引擎版本。


成功
必选

返回值
l 正常
200
l 异常

文档版本 02 (2018-05-17) 华为专有和保密信息 73


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

5.1.3 查询训练作业参数

功能介绍
根据指定条件查询用户创建的训练作业参数。

URI
l URI 格式
GET /v1.0/{project_id}/train-configs
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

l 查询检索参数说明

参数 是否为 类型 说明
必选

per_page 否 Int 指定每一页展示作业参数的总量,默认为


10,“per_page”可选的范围为[1,
100]。

page 否 Int 指定要查询页的索引,默认为1。

sortBy 否 String 指定查询的排序方式,默认是作业参数名


称“config_name”,目前支持的排序还有
作业参数描述“config_desc”,引擎类型
“engine_type”及参数创建时间
“create_time”。

order 否 String 可选值有(asc,desc)。


l asc为递增排序,默认为asc。
l desc为递减排序。

文档版本 02 (2018-05-17) 华为专有和保密信息 74


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

参数 是否为 类型 说明
必选

search_cont 否 String 指定要查询的文字信息,例如参数名称,


ent 默认为空。

请求
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 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boolea 请求是否成功。


n

文档版本 02 (2018-05-17) 华为专有和保密信息 75


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

参数 是否为 类型 说明
必选

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

config_total_ 请求成 Int 查询到的训练作业参数的总数。


count 功必选

configs 请求成 JSON configs参数属性列表。


功必选 Array

l configs属性列表
参数 类型 说明

config_name String 训练作业参数的名称。

parameter_ser Int 训练作业ps的个数。


ver_num

worker_serve Int 训练作业worker的个数。


r_num

app_url String 训练作业的代码目录。

boot_file_url String 训练作业的代码启动文件。

is_continue Boolean 训练作业是否基于原来的checkpoint进行训练,默


认为false。

parameter JSON 训练作业的运行参数,为key-value格式。

spec_id Long 训练作业资源规格id。

data_url String 训练作业的数据集。

checkpoint String 训练作业的checkpoint路径,默认为空。

config_desc String 训练作业参数的描述信息。

core String 资源规格的核数。

cpu String 资源规格CPU内存。

gpu_num Int 资源规格gpu的个数。

gpu_type String 资源规格gpu的类型。

spec_code String 云资源的规格类型。

max_num Int 训练作业可选择的节点(worker_server_num)最


大个数。

文档版本 02 (2018-05-17) 华为专有和保密信息 76


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

参数 类型 说明

engine_type Short 训练作业的引擎类型。

engine_id Long 训练作业的引擎ID。

engine_name String 训练作业的引擎名称。

engine_versio String 训练作业使用的引擎版本。


n

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

5.1.4 更新训练作业参数

功能介绍
更新训练作业参数。

URI
l URI 格式
PUT /v1.0/{project_id}/train-configs/{config_name}
l URL参数说明

参数 是否为必 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见查


看项目ID。

config_nam 是 String 训练作业参数的名称。


e

文档版本 02 (2018-05-17) 华为专有和保密信息 77


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

请求
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参数说明
参数 是否为必 类型 说明

config_name 是 String 训练作业参数名称,限制为1-20位只含数


字,字母,下划线,中划线的名称。

config_desc 是 String 对训练作业的描述,默认为空,字符串的


长度限制为[0, 256]。

worker_serv 是 Int 训练作业worker的个数,最大值请从查看


er_num 作业资源规格接口获取。

parameter_se 否 Int 训练作业ps的个数,如果worker的个数为


rver_num 1,默认ps的个数为0,如果worker的个数
大于1,默认ps的个数与worker的个数相
同,最大值请从查看作业资源规格接口获
取。

app_url 是 String 训练作业的代码目录,如:/bucket1/


code/。

boot_file_url 是 String 训练作业的代码启动文件,需要在代码目


录下,如:/bucket1/app/boot.py。

is_continue 否 Boolean 训练作业是否基于原来的checkpoint进行


训练,默认为false。

parameter 是 JSON 训练作业的运行参数,为key-value格式,


Array 该样例请参考请求样例。

checkpoint 否 String 配合continue字段使用,训练作业的


checkpoint OBS URL,默认为空。如:/
bucket1/checkpoint/。

文档版本 02 (2018-05-17) 华为专有和保密信息 78


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

参数 是否为必 类型 说明

data_url 是 String 训练作业需要的数据集OBS url。如:/


bucket1/data/。

spec_id 是 Long 训练作业选择的资源规格ID。请从查看作


业资源规格接口获取资源规格ID。

engine_id 否 Long 训练作业选择的引擎ID,默认为1。请从


查看作业引擎规格接口获取引擎规格ID。

响应
l 响应样例
– 成功
{
"is_success": true
}

– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Worker num should be in [1, 4]"
}

l 要素说明

参数 是否 类型 说明
为必

is_success 必选 Boolean 请求是否成功。

error_code 请求 String 调用失败时的错误码,具体请参考错误码参


失败 考。
必选 调用成功时无此字段。

error_messag 请求 String 调用失败时的错误信息。


e 失败 调用成功时无此字段。
必选

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

文档版本 02 (2018-05-17) 华为专有和保密信息 79


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

返回值 说明

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

5.1.5 删除训练作业参数

功能介绍
删除训练作业参数。

URI
l URI 格式
DELETE /v1.0/{project_id}/train-configs/{config_name}
l 参数说明

参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

config_nam 是 String 训练作业参数的名称。


e

请求
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 要素说明

文档版本 02 (2018-05-17) 华为专有和保密信息 80


版权所有 © 华为技术有限公司
深度学习服务
API 参考 5 配置参数接口

参数 是否 类型 说明
为必

is_success 必选 Boolean 请求是否成功。

error_code 请求 String 调用失败时的错误码,具体请参考错误码参


失败 考。
必选 调用成功时无此字段。

error_messag 请求 String 调用失败时的错误信息。


e 失败 调用成功时无此字段。
必选

返回值
l 正常
200
l 异常
返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

文档版本 02 (2018-05-17) 华为专有和保密信息 81


版权所有 © 华为技术有限公司
深度学习服务
API 参考 6 资源和引擎规格接口

6 资源和引擎规格接口

6.1 查看作业资源规格
功能介绍
查看指定作业类型的资源规格。创建训练作业和预测作业需要指定资源规格。

URI
l URI 格式
GET /v1.0/{project_id}/job-spec/{job_type}
l 参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_type 是 String 指定作业的类型,可选的有


“train”和“inference”。

请求
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,

文档版本 02 (2018-05-17) 华为专有和保密信息 82


版权所有 © 华为技术有限公司
深度学习服务
API 参考 6 资源和引擎规格接口

"gpu_type": "",
"spec_code": "dls.vm.cpu"
"max_num":2
}]
}
– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Unsupported job type: infer"
}
l 要素说明
参数 是否 类型 说明
为必

is_success 必选 Boolean 请求是否成功。

error_code 请求 String 调用失败时的错误码,具体请参考错误码参


失败 考。
必选 调用成功时无此字段。

error_messa 请求 String 调用失败时的错误信息。


ge 失败 调用成功时无此字段。
必选

spec_total_c 请求 Int 作业资源规格总数。


ount 成功
必选

specs 请求 JSON 资源规格参数列表。


成功 Array
必选

l specs属性列表
参数 类型 说明

spec_id Long 资源规格的ID。

core String 资源规格的核数。

cpu String 资源规格CPU内存。

gpu_num Int 资源规格GPU的个数。

gpu_type String 资源规格GPU的类型。

spec_code String 云资源的规格类型。

max_num Int 可以选择的最大节点数量。

返回值
l 正常
200

文档版本 02 (2018-05-17) 华为专有和保密信息 83


版权所有 © 华为技术有限公司
深度学习服务
API 参考 6 资源和引擎规格接口

l 异常
返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

6.2 查看作业引擎规格
功能介绍
查看指定作业类型的引擎类型和版本类型。创建训练作业和预测作业需要指定引擎规
格。
URI
l URI 格式
GET /v1.0/{project_id}/job-engines/{job_type}
l 参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

job_type 是 String 指定作业的类型,可选的有


“train”和“inference”。

请求
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"
}]
}

文档版本 02 (2018-05-17) 华为专有和保密信息 84


版权所有 © 华为技术有限公司
深度学习服务
API 参考 6 资源和引擎规格接口

– 失败
{
"is_success": false,
"error_code":"DLS.0104",
"error_message":"Unsupported job type: infer"
}

l 要素说明

参数 是否 类型 说明
为必

is_success 必选 Boolean 请求是否成功。

error_code 请求 String 调用失败时的错误码,具体请参考错误码参


失败 考。
必选 调用成功时无此字段。

error_messag 请求 String 调用失败时的错误信息。


e 失败 调用成功时无此字段。
必选

engines 请求 JSONAr 引擎规格参数列表。


成功 ray
必选

l engines属性列表

参数 类型 说明

engine_type Short 训练作业的引擎类型。


l 1表示TensorFlow。
l 2代表MXNet。

engine_id Long 训练作业的引擎ID。

engine_name String 训练作业的引擎名称。

engine_versio String 训练作业使用的引擎版本。


n

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

文档版本 02 (2018-05-17) 华为专有和保密信息 85


版权所有 © 华为技术有限公司
深度学习服务
API 参考 6 资源和引擎规格接口

返回值 说明

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

文档版本 02 (2018-05-17) 华为专有和保密信息 86


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

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 参数说明
参数 是否为 类型 说明
必选

project_id 是 String 用户项目ID,获取项目ID请参见查看项目


ID。

per_page 否 Int 指定每一页展示作业参数的总量,默认为


10。

page 否 Int 指定要查询页的索引,默认为1。

sortBy 否 String 指定查询的排序方式,默认是创建时间


“create_time”,目前支持的排序还有模型
名称“model_name”,模型用途
“model_usage”,引擎类型
“engine_type”, 模型精度
“model_precision”, 模型大小
“model_size”以及模型拷贝状态
“status”。

文档版本 02 (2018-05-17) 华为专有和保密信息 87


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

参数 是否为 类型 说明
必选

order 否 String 可选值有(asc,desc)。


l asc为递增排序,默认为asc。
l desc为递减排序。

search_cont 否 String 指定要查询的文字信息,例如参数名称,默


ent 认为空。

请求
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 要素说明

参数 是否为 类型 说明
必选

is_success 必选 Boole 请求是否成功。


an

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

文档版本 02 (2018-05-17) 华为专有和保密信息 88


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

参数 是否为 类型 说明
必选

model_total_ 请求成 Int 模型的数量。


count 功必选

models 请求成 JSON 不同模型的属性列表。


功必选

l models说明

参数 类型 说明

model_name String 模型的名称。

model_usage Int 模型用途:


l 1:图像分类
l 2:物体检测

model_precision String 模型精度描述。

model_size Long 模型大小,单位为字节(Byte)。

create_time Long 模型创建时间,格式为时间戳。

status Int 模型拷贝到用户OBS的状态:


l 1:拷贝成功
l 2:拷贝失败
l 3:拷贝中
l 4:未拷贝

engine_type Short 模型的引擎类型。

engine_id Long 模型的引擎ID。

engine_name String 模型的引擎名称。

engine_version String 模型使用的引擎版本。

返回值
l 正常
200
l 异常

返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

文档版本 02 (2018-05-17) 华为专有和保密信息 89


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

返回值 说明

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

7.2 查看预置模型
功能介绍
查看模型的详情。

URI
l URI 格式
GET /v1.0/{project_id}/models/{model_name}?engine_id={engine_id}
l 参数说明

参数 是否为必 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见查


看项目ID。

model_name 是 String 模型的名称。模型名称请从查看预


置模型中查看具体的模型名称。

engine_id 否 Short 模型的引擎ID,默认为1,表示


“TensorFlow 1.4 for py2.7”。引擎
ID请从查看预置模型中查看对应每
个模型名称的engineID。

请求
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",

文档版本 02 (2018-05-17) 华为专有和保密信息 90


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

"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 要素说明

文档版本 02 (2018-05-17) 华为专有和保密信息 91


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

参数 是否为 类型 说明
必选

is_success 必选 Boole 请求是否成功。


an

error_code 请求失 String 调用失败时的错误码,具体请参考错误码参


败必选 考。
调用成功时无此字段。

error_messag 请求失 String 调用失败时的错误信息。


e 败必选 调用成功时无此字段。

model_train_ 请求成 String 模型训练数据集。


dataset 功必选

model_datas 请求成 String 使用模型需要的数据集格式。


et_format 功必选

model_descri 请求成 String 模型描述链接。


ption_url 功必选

obs_path 请求成 String 模型拷贝OBS的路径。


功必选

model_outpu 请求成 Int 模型输出类型。1表示图像标签。暂不支持其


t 功必选 他输出类型。

parameter 请求成 JSON 模型的参数列表。


功必选

engine_id 请求成 Long 模型的引擎ID


功必选

engine_type 请求成 Short 模型的引擎类型


功必选

engine_versi 请求成 String 模型的引擎版本


on 功必选

engine_name 请求成 String 模型的引擎名称


功必选

l parameter说明
参数 类型 说明

label String 参数名。

value String 参数值。

required Boolean 参数是否必选。

文档版本 02 (2018-05-17) 华为专有和保密信息 92


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

返回值
l 正常
200
l 异常
返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

7.3 查看模型配置
功能介绍
用户将模型库中的模型拷贝到OBS后,可以查看模型配置,以模型库的模型为基础创
建训练作业。

URI
l URI 格式
GET /v1.0/{project_id}/models/{model_name}/config?
engine_id={engine_id}
l 参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

model_nam 是 String 模型的名称。模型名称请从查看预


e 置模型中查看具体的模型名称。

engine_id 否 Short 模型的引擎ID,默认为1,表示


“TensorFlow 1.4 for py2.7”。引
擎ID请从查看预置模型中查看对应
每个模型名称的engineID。

请求
l 请求样例
GET https://endpoint/v1.0/{project_id}/models/VGG_16/config?
engine_id=1

文档版本 02 (2018-05-17) 华为专有和保密信息 93


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

响应
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
}

文档版本 02 (2018-05-17) 华为专有和保密信息 94


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

]
}
– 失败
{
"is_success": false,
"error_code":"DLS.0102",
"error_message":"Model doesn't exsit"
}
l 要素说明
参数 是否 类型 说明
为必

is_success 必选 Bool 请求是否成功。


ean

error_code 请求 Strin 调用失败时的错误码,具体请参考错误码参考。


失败 g 调用成功时无此字段。
必选

error_messag 请求 Strin 调用失败时的错误信息。


e 失败 g 调用成功时无此字段。
必选

app_url 请求 Bool 代码文件夹。


成功 ean
必选

boot_file_url 请求 Bool 启动脚本。


成功 ean
必选

engine_type 请求 Short 模型的引擎类型。


成功
必选

engine_id 请求 Long 模型的引擎ID。


成功
必选

engine_name 请求 Strin 模型的引擎名称。


成功 g
必选

engine_versi 请求 Strin 模型使用的引擎版本。


on 成功 g
必选

parameter 请求 JSO 模型的参数列表。


成功 N
必选

l parameter说明

文档版本 02 (2018-05-17) 华为专有和保密信息 95


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

参数 类型 说明

label String 参数名。

value String 参数值。

required Boolean 是否必选。

返回值
l 正常
200
l 异常
返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

7.4 转移预置模型
功能介绍
转移预置模型库的模型到用户的OBS。

URI
l URI 格式
POST /v1.0/{project_id}/models/{model_name}/transfer-customer
l 参数说明
参数 是否为必选 类型 说明

project_id 是 String 用户项目ID,获取项目ID请参见


查看项目ID。

model_nam 是 String 模型的名称。模型名称请从查看预


e 置模型中查看具体的模型名称。

文档版本 02 (2018-05-17) 华为专有和保密信息 96


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

请求
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参数说明
名称 是否必选 类型 说明

storage_type 是 String 文件系统类型。

dest_path 是 String 模型拷贝的路径。

engine_id 否 Short 模型的引擎ID,默认为1,表示


“TensorFlow 1.4 for py2.7”。引擎
ID请从7.2查看预置模型中查看对应
每个模型名称的engineID。

响应
l 响应样例
– 成功
{
"is_success": true,
}
– 失败
{
"is_success": false,
"error_code":"DLS.0102",
"error_message":"Model doesn't exsit"
}
l 要素说明
参数 是否 类型 说明
为必

is_success 必选 Boolean 请求是否成功。

error_code 请求 String 调用失败时的错误码,具体请参考错误码参


失败 考。
必选 调用成功时无此字段。

error_messag 请求 String 调用失败时的错误信息。


e 失败 调用成功时无此字段。
必选

文档版本 02 (2018-05-17) 华为专有和保密信息 97


版权所有 © 华为技术有限公司
深度学习服务
API 参考 7 模型库接口

返回值
l 正常
200
l 异常
返回值 说明

400 Bad Request 请求错误。

401 Unauthorized 鉴权失败。

403 Forbidden 没有操作权限。

404 Not Found 找不到资源。

500 Internal Server Error 服务内部错误。

503 Service Unavailable 服务不可用。

文档版本 02 (2018-05-17) 华为专有和保密信息 98


版权所有 © 华为技术有限公司
深度学习服务
API 参考 A 附录

A 附录

A.1 错误码参考
错误码 类型 说明

DLS.0101 基础错误 非法配置

DLS.0102 基础错误 资源不存在

DLS.0103 基础错误 重名

DLS.0104 基础错误 非法参数

DLS.0105 基础错误 操作禁止

DLS.0106 基础错误 创建数超过作业限制数

DLS.0201 认证错误 Token不存在,需要检查请求头

DLS.0202 认证错误 Token过期

DLS.0203 认证错误 非法Token

DLS.0204 认证错误 不完整的Token

DLS.0205 认证错误 Token认证错误

DLS.0206 认证错误 AK\SK无效

DLS.0401 OBS错误 OBS Server错误

DLS.0402 OBS错误 OBS Client错误

DLS.0403 OBS错误 OBS 列表未找到

DLS.0404 OBS错误 非法OBS路径

DLS.0405 OBS错误 无法访问非本地Region

DLS.0406 OBS错误 非法的桶

文档版本 02 (2018-05-17) 华为专有和保密信息 99


版权所有 © 华为技术有限公司
深度学习服务
API 参考 A 附录

错误码 类型 说明

DLS.0407 OBS错误 无法访问未授权的桶

DLS.0409 OBS错误 超过对象数量限制

DLS.0410 OBS错误 对象(目录)大小超过限制

DLS.0411 OBS错误 桶(目录)大小超过限制

DLS.0412 OBS错误 桶已存在

DLS.0413 OBS错误 桶不存在

DLS.0414 OBS错误 对象已存在

DLS.0601 内部服务错 DLS-Agent客户端错误


DLS.0010 内部服务错 未知原因


DLS.0012 内部服务错 超时

DLS.0013 内部服务错 连接失败


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,作业取消成功

文档版本 02 (2018-05-17) 华为专有和保密信息 100


版权所有 © 华为技术有限公司
深度学习服务
API 参考 A 附录

状态值 作业状态说明

13 JOBSTAT_CANCELED,作业取消

14 JOBSTAT_LOST,作业丢失

15 JOBSTAT_SCALING,作业正在扩容

文档版本 02 (2018-05-17) 华为专有和保密信息 101


版权所有 © 华为技术有限公司
深度学习服务
API 参考 B 修订记录

B 修订记录

发布日期 修改说明

2018-05-15 第四次正式发布。

2018-05-04 第三次正式发布。
l 新增:
Notebook作业,新增Notebook作业接口信息。

2018-04-04 第二次正式发布。

2018-01-20 第一次正式发布。

文档版本 02 (2018-05-17) 华为专有和保密信息 102


版权所有 © 华为技术有限公司

You might also like