java 数据集_【数据集管理API】-JavaAPI示例代码来了

各位开发者们心心念念的API更新了。那么小帅丶 就来给实际操作一波

API形式管理数据集,提高训练数据管理效率,优化体验

针对需要上传大规模训练数据量的用户,拖拉拽式操作需要往往需要保持网页长时间运行状态,

API形式的管理数据集功能的上线,对训练数据集较大的用户来讲,大幅提高了管理数据(特别是上传数据)的便捷性和灵活性

能干嘛?

可以自主研发一套平台系统。这样客户|用户无需额外登录百度账户平台就可以进行数据集上传了。无需额外的打包压缩文件了。

怎么样?

目前API,提供还不是很完善。就目前提供的API使用来看。方便快捷简单。像大家之前遇到的浏览器问题啥的。API不会存在哦。

小帅丶亲测。创建数据集比浏览器还要快。

提建议

希望不仅仅是数据集API管理操作。开始训练、训练进度都能给出更好。方便用户自研相关应用并使用百度ED

接下来。就来代码吧。小帅丶文采一般般

需要额外用到的jar&工具类 如果不用百度提供的HttpUtil 请确保自己写的方法 对参数有进行编码处理哦

com.alibaba

fastjson

1.2.35

----------------------------------------------------------

HttpUtil

https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3

Base64Util

https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2

FileUtil

https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72

示例代码:

import java.util.ArrayList;

import java.util.List;

import com.alibaba.fastjson.JSON;

import com.xs.easydl.DatasetAddRequestParam.Labels;

import com.xs.util.baidu.HttpUtil;

/**

* 数据集管理API

* @author 小帅丶

*

*/

public class EasyDLManagerAPISample {

//数据集创建API

static final String DATASET_CREATE_API ="https://aip.baidubce.com/rpc/2.0/easydl/dataset/create";

//数据集列表API

static final String DATASET_LIST_API ="https://aip.baidubce.com/rpc/2.0/easydl/dataset/list";

//添加数据API

static final String DATASET_ADD_API ="https://aip.baidubce.com/rpc/2.0/easydl/dataset/addentity";

//数据集删除API

static final String DATASET_DELETE_API ="https://aip.baidubce.com/rpc/2.0/easydl/dataset/delete";

//分类(标签)列表API

static final String LABEL_LIST_API ="https://aip.baidubce.com/rpc/2.0/easydl/label/list";

//分类(标签)删除API

static final String LABEL_DELETE_API ="https://aip.baidubce.com/rpc/2.0/easydl/label/delete";

//测试使用的AccessToken 具体需要替换成自己的哦

static final String ACCESS_TOKEN = "";

/**

* 测试main方法

* @param args

* @throws Exception

*/

public static void main(String[] args) throws Exception {

String OBJECT_DETECTION = "OBJECT_DETECTION";//物体检测

String IMAGE_CLASSIFICATION = "IMAGE_CLASSIFICATION";//图像分类

String TEXT_CLASSIFICATION = "TEXT_CLASSIFICATION";//文本分类

String SOUND_CLASSIFICATION = "SOUND_CLASSIFICATION";//声音分类

//String result = datasetList(ACCESS_TOKEN, TEXT_CLASSIFICATION);//获取数据集列表

//{"total_num":2,"results":[{"dataset_id":20598,"dataset_name":"apitest","type":"TEXT_CLASSIFICATION","status":"normal"},{"dataset_id":20567,"dataset_name":"textdemo","type":"TEXT_CLASSIFICATION","status":"normal"}],"log_id":1324820120}

//String result = datasetCreate(ACCESS_TOKEN, TEXT_CLASSIFICATION,"campus");//数据集创建

//{"dataset_id":20598,"log_id":1276713049}

//String result = labelList(ACCESS_TOKEN, TEXT_CLASSIFICATION,20567);//分类(标签)列表

//{"total_num":4,"results":[{"label_id":"5c075681ea934f0001324ae3","label_name":"woman","entity_count":949},{"label_id":"5c075672ea934f0001324ae1","label_name":"sport","entity_count":1083},{"label_id":"5c07566815d32b0001a275bc","label_name":"publish","entity_count":760},{"label_id":"5c075663ea934f0001324adc","label_name":"campus","entity_count":247}],"log_id":3295199978}

/***************************文本分类示例参数拼接******************************/

/**

{

"appendLabel": true,

"dataset_id": 20598,

"entity_content": "今天老师不在",

"entity_name": "20181205.txt",

"labels": [

{

"label_name": "campus"

}

],

"type": "TEXT_CLASSIFICATION"

}

*/

//DatasetAddRequestParam addRequestParam = new DatasetAddRequestParam();

//addRequestParam.setType(TEXT_CLASSIFICATION);

//addRequestParam.setDataset_id(20598);

//addRequestParam.setAppendLabel(true);

//addRequestParam.setEntity_content("今天老师不在");

//addRequestParam.setEntity_name("20181205.txt");

//List labelsList = new ArrayList();

//Labels labels = new Labels();

//labels.setLabel_name("campus");

//labelsList.add(labels);

//addRequestParam.setLabels(labelsList);

/***************************物体检测示例参数拼接******************************/

/**

{

"appendLabel": true,

"dataset_id": 2803,

"entity_content": "图片的base64 不需要urlencode",

"entity_name": "whitefly127.jpg",

"labels": [

{

"height": 103,

"label_name": "whitefly",

"left": 221,

"top": 221,

"width": 208

}

],

"type": "OBJECT_DETECTION"

}

*/

DatasetAddRequestParam addRequestParam = new DatasetAddRequestParam();

addRequestParam.setType(OBJECT_DETECTION);

addRequestParam.setDataset_id(2803);

addRequestParam.setAppendLabel(true);

//读取本地图片文件 并转base64 不需要urlencode

String imgPath = "G:/mnist_png/whitefly/whitefly127.jpg";

String imgbase64 = Base64Util.encode(FileUtil.readFileByBytes(imgPath));

addRequestParam.setEntity_content(imgbase64);

addRequestParam.setEntity_name("whitefly127.jpg");

List labelsList = new ArrayList();

Labels labels = new Labels();

labels.setLabel_name("whitefly");

labelsList.add(labels);

labels.setLeft(221);

labels.setTop(221);

labels.setWidth(208);

labels.setHeight(103);

addRequestParam.setLabels(labelsList);

//添加数据 测试为文本分类数据添加

//String result = datasetAdd(ACCESS_TOKEN,addRequestParam);//添加数据

//String result = datasetDel(ACCESS_TOKEN,TEXT_CLASSIFICATION,20642);//数据集删除

//{"log_id":2595666927}

//String result = labelDel(ACCESS_TOKEN,TEXT_CLASSIFICATION,20598,"campus");//分类(标签)删除

//{"log_id":119766394}

//System.out.println(result);

}

/**

* 分类(标签)删除

* @param accessToken 应用鉴权的token

* @param type

* 数据集类型,可包括: IMAGE_CLASSIFICATION, OBJECT_DETECTION,

* SOUND_CLASSIFICATION, TEXT_CLASSIFICATION

* 分别对应:图像分类、物体检测、声音分类、文本分类

* @param dataset_id 数据集ID

* @param label_name 标签/分类名称

* @return String

* @throws Exception

*/

public static String labelDel(String accessToken,String type,int dataset_id,String label_name) throws Exception{

//接口地址

String url = LABEL_DELETE_API;

String access_token = accessToken;

// JSON格式参数拼接

String params = "{\"type\":\"" + type + "\",\"dataset_id\":"+dataset_id+",\"label_name\":\"" + label_name + "\"}";

String result = HttpUtil.post(url,access_token, params);

// 输出识别结果

return result;

}

/**

* 数据集删除

* @param accessToken 应用鉴权的token

* @param type

* 数据集类型,可包括: IMAGE_CLASSIFICATION, OBJECT_DETECTION,

* SOUND_CLASSIFICATION, TEXT_CLASSIFICATION

* 分别对应:图像分类、物体检测、声音分类、文本分类

* @param dataset_id 数据集ID

* @return String

* @throws Exception

*/

public static String datasetDel(String accessToken,String type,int dataset_id) throws Exception{

//接口地址

String url = DATASET_DELETE_API;

String access_token = accessToken;

// JSON格式参数拼接

String params = "{\"type\":\"" + type + "\",\"dataset_id\":"+dataset_id+"}";

String result = HttpUtil.post(url,access_token, params);

// 输出识别结果

return result;

}

/**

* 添加数据

* @param accessToken 应用鉴权的token

* @param addRequestParam 参数对象

* @return String

* @throws Exception

*/

public static String datasetAdd(String accessToken,DatasetAddRequestParam addRequestParam) throws Exception{

//接口地址

String url = DATASET_ADD_API;

String access_token = accessToken;

// JSON格式参数拼接

String params = JSON.toJSONString(addRequestParam);

String result = HttpUtil.post(url,access_token, params);

// 输出识别结果

return result;

}

/**

* 分类(标签)列表获取 所有参数

* @param accessToken 应用鉴权的token

* @param type

* 数据集类型,可包括: IMAGE_CLASSIFICATION, OBJECT_DETECTION,

* SOUND_CLASSIFICATION, TEXT_CLASSIFICATION

* 分别对应:图像分类、物体检测、声音分类、文本分类

* @param dataset_id 数据集ID

* @param start 起始序号,默认为0

* @param num 数量,默认20,最多100

* @return String

* @throws Exception

*/

public static String labelList(String accessToken,String type,int dataset_id,int start,int num) throws Exception{

//接口地址

String url = LABEL_LIST_API;

String access_token = accessToken;

// JSON格式参数拼接

String params = "{\"type\":\"" + type + "\",\"dataset_id\":"+dataset_id+",\"start\":"+start+",\"num\":"+num+"}";

String result = HttpUtil.post(url, access_token, params);

// 输出识别结果

return result;

}

/**

* 分类(标签)列表获取

* @param accessToken 应用鉴权的token

* @param type

* 数据集类型,可包括: IMAGE_CLASSIFICATION, OBJECT_DETECTION,

* SOUND_CLASSIFICATION, TEXT_CLASSIFICATION

* 分别对应:图像分类、物体检测、声音分类、文本分类

* @param dataset_id 数据集ID

* @return String

* @throws Exception

*/

public static String labelList(String accessToken,String type,int dataset_id) throws Exception{

return labelList(accessToken, type, dataset_id, 0, 20);

}

/**

* 数据集创建

* @param accessToken 应用鉴权的token

* @param type

* 数据集类型,可包括: IMAGE_CLASSIFICATION, OBJECT_DETECTION,

* SOUND_CLASSIFICATION, TEXT_CLASSIFICATION

* 分别对应:图像分类、物体检测、声音分类、文本分类

* @param dataset_name 数据集名称,长度不超过20个utf-8字符

* @return String

* @throws Exception

*/

public static String datasetCreate(String accessToken,String type,String dataset_name) throws Exception{

//接口地址

String url = DATASET_CREATE_API;

String access_token = accessToken;

// JSON格式参数拼接

String params = "{\"type\":\"" + type + "\",\"dataset_name\":\""+dataset_name+"\"}";

String result = HttpUtil.post(url, access_token, params);

// 输出识别结果

return result;

}

/**

* 数据集列表获取 所有参数

* @param accessToken 应用鉴权的token

* @param type

* 数据集类型,可包括: IMAGE_CLASSIFICATION, OBJECT_DETECTION,

* SOUND_CLASSIFICATION, TEXT_CLASSIFICATION

* 分别对应:图像分类、物体检测、声音分类、文本分类

* @param start 起始序号,默认为0

* @param num 数量,默认20,最多100

* @return String

* @throws Exception

*/

public static String datasetList(String accessToken,String type,int start,int num) throws Exception{

//接口地址

String url = DATASET_LIST_API;

String access_token = accessToken;

// JSON格式参数拼接

String params = "{\"type\":\"" + type + "\",\"start\":"+start+",\"num\":"+num+"}";

String result = HttpUtil.post(url, access_token, params);

// 输出识别结果

return result;

}

/**

* 数据集列表获取 默认必填参数

* @param accessToken 应用鉴权的token

* @param type

* 数据集类型,可包括: IMAGE_CLASSIFICATION, OBJECT_DETECTION,

* SOUND_CLASSIFICATION, TEXT_CLASSIFICATION

* 分别对应:图像分类、物体检测、声音分类、文本分类

* @return String

* @throws Exception

*/

public static String datasetList(String accessToken,String type) throws Exception{

return datasetList(accessToken, type, 0, 20);

}

}

额外需要的JavaBean:

并不一定是必须的哦。只是方便大家拼接参数而写。字段含义请看  http://ai.baidu.com/docs#/EasyDL_DATA_API/0e4e34d9

import java.util.List;

//set/get方法省略

public class DatasetAddRequestParam {

private String type;

private int dataset_id;

private boolean appendLabel;

private String entity_content;

private String entity_name;

private List labels;

public static class Labels{

private String label_name;

private Integer left;

private Integer top;

private Integer width;

private Integer height;

}

}

the end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值