From 719fa164f1d685e9ee6b1fc55cf303e938547f93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B9=8B=E6=B1=9F=E5=A4=A9=E6=9E=A2?= Date: Tue, 6 Jul 2021 17:04:10 +0800 Subject: [PATCH] update webapp --- webapp/CHANGELOG.md | 35 ++++++++++++++++++++++-- webapp/package.json | 2 +- webapp/src/views/cloudServing/batch.vue | 11 ++++++-- webapp/src/views/dataset/version/actions.vue | 8 +++--- webapp/src/views/visual/Visual/graphs/Graphs.vue | 30 ++++++++++---------- 5 files changed, 61 insertions(+), 25 deletions(-) diff --git a/webapp/CHANGELOG.md b/webapp/CHANGELOG.md index 884d08e..8684d99 100644 --- a/webapp/CHANGELOG.md +++ b/webapp/CHANGELOG.md @@ -1,3 +1,34 @@ +## 0.4.0 (2021-07-06) + +### Features + +- [数据管理] 新增图像语义分割标注 +- [数据管理] 新增文本标注类型:文本分类、中文分词、NER(命名实体识别) +- [数据管理] 新增语音标注:音频分类、语音识别 +- [数据管理] 新增自定义数据集 +- [模型管理] 新增模型转换服务,可将 TensorFlow SaveModel 模型转换为 ONNX 模型 +- [控制台] 新增控制台-用户管理-资源独占功能 +- [控制台] 新增控制台-资源管理界面 +- [控制台] 新增控制台-用户组管理功能 +- [控制台] 新增控制台-角色管理-权限分配功能 +- [算法管理] 新增推理脚本管理 +- [云端Serving] 新增自定义推理脚本功能 +- [云端Serving] 新增支持用户选择镜像 + +### Bug Fixs + +- [数据管理] 视频标注支持多视频上传 +- [数据管理] OFRecord 发布更改为可选,且仅支持图像分类标注 +- [算法管理] 优化 Notebook,现在 Notebook 支持数据集挂载功能 + +[更多参考](http://docs.dubhe.ai/docs/changelog) + +### Breaking Change + +- [模型管理] 完成内置优化、我的优化功能,支持模型量化、剪枝、蒸馏 +- [云端Serving] 完成在线服务、批量服务功能,在线服务支持 HTTP 请求、GRPC 请求、灰度分流、服务回滚 +- [模型炼知] 移植重构图谱可视化、图谱列表功能,完成度量管理功能 + ## 0.3.0 (2021-01-14) ### Breaking Change @@ -13,7 +44,7 @@ - [数据管理] 增加 NLP 文本分类数据标注功能 - [数据管理] 增加医疗影像数据标注,支持自动器官分割和病灶识别 - [训练管理] 支持使用教师模型、学生模型进行模型炼知 -- [训练管理] 镜像管理支持管理员上传Notebook镜像, 并可以设置为默认Notebook镜像 +- [训练管理] 镜像管理支持管理员上传Notebook镜像, 并可以设置为默认Notebook镜像 - [训练管理] 模型、算法、镜像等文件上传时不允许文件名包含不合法字符 - [训练管理] 运行日志展示组件重构。以 K8S 的 pod 为单位进行日志查询展示 - [模型管理] 增加炼知模型管理 @@ -21,7 +52,7 @@ ### Bug Fixs - [模型开发] 修复 Notebook 页面重置按钮失效的问题 -- [训练管理] 修复模型下载文件路径问题 +- [训练管理] 修复模型下载文件路径问题 ## 0.2.1 (2020-11-16) diff --git a/webapp/package.json b/webapp/package.json index 6ef83f6..4e4f829 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -1,6 +1,6 @@ { "name": "dubhe-web", - "version": "0.3.0", + "version": "0.4.0", "description": "之江天枢人工智能开源平台", "author": "zhejianglab", "keywords": [ diff --git a/webapp/src/views/cloudServing/batch.vue b/webapp/src/views/cloudServing/batch.vue index 62a9b54..00362b6 100644 --- a/webapp/src/views/cloudServing/batch.vue +++ b/webapp/src/views/cloudServing/batch.vue @@ -302,10 +302,17 @@ export default { if (!originService) { return; } - const { status, progress, startTime, endTime, outputPath } = service; + const { status, progress, startTime, endTime, outputPath, statusDetail } = service; const { pollId } = option; // 更新数据 - Object.assign(originService, { status, progress, startTime, endTime, outputPath }); + Object.assign(originService, { + status, + progress, + startTime, + endTime, + outputPath, + statusDetail, + }); if (this.needPoll(status) && pollId && this.pollMap[id] === pollId) { setTimeout(() => { this.getServiceProgress(id, option); diff --git a/webapp/src/views/dataset/version/actions.vue b/webapp/src/views/dataset/version/actions.vue index 93c8323..ff8a108 100644 --- a/webapp/src/views/dataset/version/actions.vue +++ b/webapp/src/views/dataset/version/actions.vue @@ -29,9 +29,7 @@ 详情 - 查看标注 + 查看标注 生成预置数据集 @@ -99,7 +97,9 @@ export default { // 发布中 const publishing = computed(() => isPublishDataset(props.row)); const isCurrent = computed(() => !!props.row.isCurrent); - const isPreset = computed(() => props.row.presetFlag); + const isPreset = computed( + () => props.row.presetFlag && props.row.dataType !== dataTypeCodeMap.CUSTOM + ); const isOfRecord = computed(() => props.row.isOfRecord); const isCustom = computed(() => props.row.dataType === dataTypeCodeMap.CUSTOM); const title = computed(() => `${props.row.name}(${props.row.versionName})`); diff --git a/webapp/src/views/visual/Visual/graphs/Graphs.vue b/webapp/src/views/visual/Visual/graphs/Graphs.vue index fafd87e..24aa120 100644 --- a/webapp/src/views/visual/Visual/graphs/Graphs.vue +++ b/webapp/src/views/visual/Visual/graphs/Graphs.vue @@ -263,7 +263,7 @@ export default { } // 判断是否为计算图特殊节点 function IsSpecialNode(itemnode) { - if (!itemnode || itemnode.op !== '') { + if (!itemnode) { return false; } if (itemnode.sub_net.length > 0) { @@ -274,22 +274,20 @@ export default { } } } - for (const n in itemnode.sub_net) { - // 1:卷积层,2:全连接层,3:池化层,4:归一化 - if (itemnode.sub_net[n].op.toLowerCase().indexOf(SpecialNodeList[0].toLowerCase()) >= 0) { - return 1; - } - if (itemnode.label.toLowerCase().indexOf(SpecialNodeList[1].toLowerCase()) >= 0) { - return 2; - } - if (itemnode.label.toLowerCase().indexOf(SpecialNodeList[2].toLowerCase()) >= 0) { - return 3; - } - if (itemnode.label.toLowerCase().indexOf(SpecialNodeList[3].toLowerCase()) >= 0) { - return 4; - } - return false; + // 1:卷积层,2:全连接层,3:池化层,4:归一化 + if (itemnode.op.toLowerCase().indexOf(SpecialNodeList[0].toLowerCase()) >= 0) { + return 1; } + if (itemnode.op.toLowerCase().indexOf(SpecialNodeList[1].toLowerCase()) >= 0) { + return 2; + } + if (itemnode.op.toLowerCase().indexOf(SpecialNodeList[2].toLowerCase()) >= 0) { + return 3; + } + if (itemnode.op.toLowerCase().indexOf(SpecialNodeList[3].toLowerCase()) >= 0) { + return 4; + } + return false; } // 绘制计算图特殊节点 function DrawSpecialNodes(graph) {