1111
+diff --git a/modules/storage/minio_ext.go b/modules/storage/minio_ext.go index 05b692335..4b738c068 100755 --- a/modules/storage/minio_ext.go +++ b/modules/storage/minio_ext.go @@ -214,47 +214,6 @@ func GetOneLevelAllObjectUnderDirMinio(bucket string, prefixRootPath string, rel ParenDir: ParenDir, } fileInfos = append(fileInfos, fileInfo) - - // log.Info("val key=" + val.Key) - // var isDir bool - // var fileName string - // if val.Key == Prefix { - // continue - // } - - // fileName = val.Key[prefixLen:] - // log.Info("fileName =" + fileName) - // files := strings.Split(fileName, "/") - // if fileMap[files[0]] { - // continue - // } else { - // fileMap[files[0]] = true - // } - // ParenDir := relativePath - // fileName = files[0] - // if len(files) > 1 { - // isDir = true - // ParenDir += fileName + "/" - // } else { - // isDir = false - // } - - // // if strings.HasSuffix(val.Key, "/") { - // // isDir = true - // // fileName = val.Key[prefixLen : len(val.Key)-1] - // // relativePath += val.Key[prefixLen:] - // // } else { - // // isDir = false - // // fileName = val.Key[prefixLen:] - // // } - // fileInfo := FileInfo{ - // ModTime: val.LastModified.Local().Format("2006-01-02 15:04:05"), - // FileName: fileName, - // Size: val.Size, - // IsDir: isDir, - // ParenDir: relativePath, - // } - // fileInfos = append(fileInfos, fileInfo) } return fileInfos, err } else { diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index c4b59f501..0d35cc326 100755 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -3117,7 +3117,8 @@ dataset_path_rule = The dataset location is stored in the environment variable d view_sample = View sample inference_output_path_rule = The inference output path is stored in the environment variable result_url. model_file_path_rule=The model file location is stored in the environment variable ckpt_url - +model_file_postfix_rule = The supported format of the model file is [ckpt, pb, h5, json, pkl, pth, t7, pdparams, onnx, pbtxt, keras, mlmodel, cfg, pt] +model_convert_postfix_rule = The supported format of the model file is [.pth, .pkl, .onnx, .mindir, .ckpt, .pb] delete_task = Delete task task_delete_confirm = Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered. operate_confirm = confirm diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index 8006bf1fe..d34a18cc1 100755 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -3132,7 +3132,8 @@ dataset_path_rule = 数据集位置存储在环境变量data_url中,训练输 view_sample = 查看样例 inference_output_path_rule = 推理输出路径存储在环境变量result_url中。 model_file_path_rule = 模型文件位置存储在环境变量ckpt_url中。 - +model_file_postfix_rule = 模型文件支持的格式为 [ckpt, pb, h5, json, pkl, pth, t7, pdparams, onnx, pbtxt, keras, mlmodel, cfg, pt] +model_convert_postfix_rule = 模型文件支持的格式为 [.pth, .pkl, .onnx, .mindir, .ckpt, .pb] delete_task = 删除任务 task_delete_confirm = 你确认删除该任务么?此任务一旦删除不可恢复。 operate_confirm = 确定操作 diff --git a/routers/repo/grampus.go b/routers/repo/grampus.go index 133f270f2..ccad2678a 100755 --- a/routers/repo/grampus.go +++ b/routers/repo/grampus.go @@ -805,7 +805,13 @@ func generateCommand(repoName, processorType, codeRemotePath, dataRemotePath, bo } } - commandCode := "cd " + workDir + "code/" + strings.ToLower(repoName) + ";python " + bootFile + paramCode + ";" + var commandCode string + if processorType == grampus.ProcessorTypeNPU { + commandCode = "/bin/bash /home/work/run_train_for_openi.sh " + workDir + "code/" + strings.ToLower(repoName) + "/" + bootFile + " /tmp/log/train.log" + paramCode + ";" + } else if processorType == grampus.ProcessorTypeGPU { + commandCode = "cd " + workDir + "code/" + strings.ToLower(repoName) + ";python " + bootFile + paramCode + ";" + } + command += commandCode //get exec result diff --git a/templates/custom/global_mask.tmpl b/templates/custom/global_mask.tmpl new file mode 100644 index 000000000..fd2dfcbe6 --- /dev/null +++ b/templates/custom/global_mask.tmpl @@ -0,0 +1,21 @@ +
1111
+' + data.Content)
- }
-
- }
- }).fail(function (err) {
- console.log(err);
- });
- }
- if ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].includes(scrollTop) && scrollLeft == 0) {
- let start_line = $(`#log${version_name} input[name=start_line]`).val()
- $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=${start_line}&lines=50&order=asc`, (data) => {
- if (data.Lines == 0) {
- $(`.message${version_name} #header`).text('您已翻阅至日志顶部')
- $(`.message${version_name}`).css('display', 'block')
- setTimeout(function () {
- $(`.message${version_name}`).css('display', 'none')
- }, 1000)
- } else {
- $(`#log${version_name} input[name=start_line]`).val(data.StartLine) //如果变动就改变所对应的值
- $(`#log${version_name}`).prepend('' + data.Content)
- }
- }).fail(function (err) {
- console.log(err);
- });
- }
- }
- function scrollAnimation(dom, currentY, targetY, currentX) {
- let needScrollTop = targetY - currentY;
- let _currentY = currentY;
- setTimeout(() => {
- // 一次调用滑动帧数,每次调用会不一样
- //取总距离的十分之一
- const dist = Math.ceil(needScrollTop / 10);
- _currentY += dist;
- //移动一个十分之一
- dom.scrollTo(currentX || 0, _currentY, 'smooth');
- // 如果移动幅度小于十个像素,直接移动,否则递归调用,实现动画效果
- if (needScrollTop > 10 || needScrollTop < -10) {
- scrollAnimation(dom, _currentY, targetY)
- } else {
- dom.scrollTo(0, targetY, 'smooth')
- }
- }, 1)
- }
-
- $('.log_top').click(function () {
- // let logContentDom = document.querySelector('.log')
- // if(!logContentDom)
- // return
- // let version_name = $('.log_top').data('version')
- let version_name = $(this).data('version')
- let logContentDom = document.querySelector(`#log${version_name}`)
-
- $(`#log_file${version_name}`).siblings('pre').remove()
- $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=&lines=50&order=asc`, (data) => {
-
- $(`#log${version_name} input[name=end_line]`).val(data.EndLine) //如果变动就改变所对应的值
- $(`#log${version_name} input[name=start_line]`).val(data.StartLine)
- $(`#log${version_name}`).prepend('' + data.Content)
- $(`.message${version_name} #header`).text('您已翻阅至日志顶部')
- $(`.message${version_name}`).css('display', 'block')
- setTimeout(function () {
- $(`.message${version_name}`).css('display', 'none')
- }, 1000)
- scrollAnimation(logContentDom, logContentDom.scrollTop, 0);
- })
-
- })
- $('.log_bottom').click(function (e) {
- let version_name = $(this).data('version')
- let logContentDom = document.querySelector(`#log${version_name}`)
- $(`#log_file${version_name}`).siblings('pre').remove()
- $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=&lines=50&order=desc`, (data) => {
-
- $(`#log${version_name} input[name=end_line]`).val(data.EndLine) //如果变动就改变所对应的值
- $(`#log${version_name} input[name=start_line]`).val(data.StartLine)
- $(`#log${version_name}`).append('' + data.Content)
- $.get(`/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=${data.EndLine}&lines=50&order=desc`, (data) => {
- if (data.Lines == 0) {
- $(`.message${version_name} #header`).text('您已翻阅至日志底部')
- $(`.message${version_name}`).css('display', 'block')
- setTimeout(function () {
- $(`.message${version_name}`).css('display', 'none')
- }, 1000)
- } else {
- if (end_line === data.EndLine) {
- return
- }
- else {
- $(`#log${version_name} input[name=end_line]`).val(data.EndLine)
- $(`#log${version_name}`).append('' + data.Content)
- }
-
- }
- }).fail(function (err) {
- console.log(err);
- });
- scrollAnimation(logContentDom, logContentDom.scrollTop + 1, logContentDom.scrollHeight - logContentDom.clientHeight);
- })
- })
+
diff --git a/templates/repo/modelarts/trainjob/version_new.tmpl b/templates/repo/modelarts/trainjob/version_new.tmpl
index 886469d4c..6712f5e7d 100644
--- a/templates/repo/modelarts/trainjob/version_new.tmpl
+++ b/templates/repo/modelarts/trainjob/version_new.tmpl
@@ -51,18 +51,7 @@
}
-
-
-
-
-
-
-
-
-
-
+{{template "custom/global_mask" .}}
{{template "repo/header" .}}
diff --git a/templates/repo/modelmanage/convertIndex.tmpl b/templates/repo/modelmanage/convertIndex.tmpl
index 4032b28d5..ee2d56ee3 100644
--- a/templates/repo/modelmanage/convertIndex.tmpl
+++ b/templates/repo/modelmanage/convertIndex.tmpl
@@ -254,6 +254,10 @@
+
+
+
+
" + data.Content);
@@ -121,10 +126,15 @@ export default async function initCloudrainSow() {
$(".log_bottom").click(function (e) {
let version_name = $(this).data("version");
let logContentDom = document.querySelector(`#log${version_name}`);
+ let ID = $(`#accordion${version_name}`).data("jobid");
+ let repoPath = $(`#accordion${version_name}`).data("repopath");
$(`#log_file${version_name}`).siblings("pre").remove();
+ let end_line = $(`#log${version_name} input[name=end_line]`).val();
+ $(".ui.inverted.active.dimmer").css("display", "block");
$.get(
- `/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=&lines=50&order=desc`,
+ `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=&lines=50&order=desc`,
(data) => {
+ $(".ui.inverted.active.dimmer").css("display", "none");
if (!data.CanLogDownload) {
$(`#${version_name}-log-down`)
.removeClass("ti-download-file")
@@ -134,8 +144,9 @@ export default async function initCloudrainSow() {
$(`#log${version_name} input[name=start_line]`).val(data.StartLine);
$(`#log${version_name}`).append("" + data.Content);
$.get(
- `/api/v1/repos/${userName}/${repoPath}/modelarts/train-job/${jobID}/log?version_name=${version_name}&base_line=${data.EndLine}&lines=50&order=desc`,
+ `/api/v1/repos/${repoPath}/${ID}/log?version_name=${version_name}&base_line=${data.EndLine}&lines=50&order=desc`,
(data) => {
+ $(".ui.inverted.active.dimmer").css("display", "none");
if (data.Lines == 0) {
$(`.message${version_name} #header`).text("您已翻阅至日志底部");
$(`.message${version_name}`).css("display", "block");
@@ -143,7 +154,7 @@ export default async function initCloudrainSow() {
$(`.message${version_name}`).css("display", "none");
}, 1000);
} else {
- if (end_line === data.EndLine) {
+ if (end_line === data.EndLine || end_line === "") {
return;
} else {
$(`#log${version_name} input[name=end_line]`).val(data.EndLine);
@@ -163,6 +174,49 @@ export default async function initCloudrainSow() {
);
});
+ function loadLog(version_name) {
+ document.getElementById("mask").style.display = "block";
+ $.get(
+ `/api/v1/repos/${userName}/${repoPath}/grampus/train-job/${jobID}/log?version_name=${version_name}&lines=50&order=asc`,
+ (data) => {
+ $("input[name=end_line]").val(data.EndLine);
+ $("input[name=start_line]").val(data.StartLine);
+ $(`#log_file${version_name}`).text(data.Content);
+ document.getElementById("mask").style.display = "none";
+ }
+ ).fail(function (err) {
+ document.getElementById("mask").style.display = "none";
+ console.log(err);
+ });
+ }
+ $("#refresh-status").click(function (e) {
+ let version_name = $(this).data("version");
+ let ID = $(`#accordion${version_name}`).data("jobid");
+ let repoPath = $(`#accordion${version_name}`).data("repopath");
+ refreshStatusShow(version_name, ID, repoPath);
+ $(".log-info .log_bottom").trigger("click");
+ e.stopPropagation();
+ });
+
+ function refreshStatusShow(version_name, ID, repoPath) {
+ $.get(
+ `/api/v1/repos/${repoPath}/${ID}?version_name=${version_name}`,
+ (data) => {
+ //accroding下的状态
+ $(`#${version_name}-status-span span`).text(data.JobStatus);
+ //accroding下的状态图标
+ $(`#${version_name}-status-span i`).attr("class", data.JobStatus);
+ //accroding下的运行时长
+ $(`#${version_name}-duration-span`).text(data.JobDuration);
+ //配置信息详情页的状态
+ $(`#${version_name}-status`).text(data.JobStatus);
+ //配置信息详情页的状态
+ $(`#${version_name}-duration`).text(data.JobDuration);
+ }
+ ).fail(function (err) {
+ console.log(err);
+ });
+ }
//
$(".content-pad").on("click", ".load-model-file", function () {
let downloadFlag = $(this).data("download-flag") || "";
@@ -175,8 +229,8 @@ export default async function initCloudrainSow() {
let url = `/api/v1/repos${path}?version_name=${version_name}&parentDir=${parents}`;
$.get(url, (data) => {
$(`#dir_list${version_name}`).empty();
- if(data.Dirs){
- renderDir(path, data, version_name, downloadFlag, gpuFlag);
+ if (data.Dirs) {
+ renderDir(path, data, version_name, downloadFlag, gpuFlag);
}
if (init === "init") {
$(`input[name=model${version_name}]`).val("");
@@ -191,7 +245,15 @@ export default async function initCloudrainSow() {
htmlBread += " / ";
$(`#file_breadcrumb${version_name}`).append(htmlBread);
} else {
- renderBrend(path, version_name, parents, filename, init, downloadFlag,gpuFlag);
+ renderBrend(
+ path,
+ version_name,
+ parents,
+ filename,
+ init,
+ downloadFlag,
+ gpuFlag
+ );
}
}).fail(function (err) {
console.log(err, version_name);
@@ -253,15 +315,15 @@ export default async function initCloudrainSow() {
} else {
$(`input[name=model${version_name}]`).val(parents);
$(`input[name=modelback${version_name}]`).val(filename);
- $(`#file_breadcrumb${version_name} a.section:contains(${filename})`)
- .nextAll()
- .remove();
- $(
- `#file_breadcrumb${version_name} a.section:contains(${filename})`
- ).replaceWith(`${filename}`);
- $(
- `#file_breadcrumb${version_name} div.section:contains(${filename})`
- ).append(" / ");
+
+ let selectEle = $(`#file_breadcrumb${version_name} a.section`).filter(
+ (index, item) => {
+ return item.text == filename;
+ }
+ );
+ selectEle.nextAll().remove();
+ selectEle.after(" / ");
+ selectEle.replaceWith(`${filename}`);
}
}
diff --git a/web_src/js/features/cloudrbanin.js b/web_src/js/features/cloudrbanin.js
index 172e6b0bd..892d2ab41 100644
--- a/web_src/js/features/cloudrbanin.js
+++ b/web_src/js/features/cloudrbanin.js
@@ -347,33 +347,6 @@ export default async function initCloudrain() {
e.stopPropagation();
});
- $("#refresh-status").click(function (e) {
- let version_name = $(this).data("version");
- let ID = $(`#accordion${version_name}`).data("jobid");
- let repoPath = $(`#accordion${version_name}`).data("repopath");
- refreshStatusShow(version_name, ID, repoPath);
- e.stopPropagation();
- });
-
- function refreshStatusShow(version_name, ID, repoPath) {
- $.get(
- `/api/v1/repos/${repoPath}/${ID}?version_name=${version_name}`,
- (data) => {
- //accroding下的状态
- $(`#${version_name}-status-span span`).text(data.JobStatus);
- //accroding下的状态图标
- $(`#${version_name}-status-span i`).attr("class", data.JobStatus);
- //accroding下的运行时长
- $(`#${version_name}-duration-span`).text(data.JobDuration);
- //配置信息详情页的状态
- $(`#${version_name}-status`).text(data.JobStatus);
- //配置信息详情页的状态
- $(`#${version_name}-duration`).text(data.JobDuration);
- }
- ).fail(function (err) {
- console.log(err);
- });
- }
function refreshStatus(version_name, ID, repoPath) {
const url = `/api/v1/repos/${repoPath}/${ID}/?version_name${version_name}`;
$.get(url, (data) => {
diff --git a/web_src/less/openi.less b/web_src/less/openi.less
index b9622924f..fe002ceb7 100644
--- a/web_src/less/openi.less
+++ b/web_src/less/openi.less
@@ -522,6 +522,60 @@ i.SUCCEEDED {
// }
/* 弹窗 */
+// #mask {
+// position: fixed;
+// top: 0px;
+// left: 0px;
+// right: 0px;
+// bottom: 0px;
+// filter: alpha(opacity=60);
+// background-color: #777;
+// z-index: 1000;
+// display: none;
+// opacity: 0.8;
+// -moz-opacity: 0.5;
+// padding-top: 100px;
+// color: #000000;
+// }
+
+#loadingPage {
+ margin: 300px auto;
+ width: 50px;
+ height: 40px;
+ text-align: center;
+ font-size: 10px;
+ display: block;
+}
+
+#loadingPage > div {
+ background-color: green;
+ height: 100%;
+ width: 6px;
+ display: inline-block;
+ -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out;
+ animation: sk-stretchdelay 1.2s infinite ease-in-out;
+}
+
+#loadingPage .rect2 {
+ -webkit-animation-delay: -1.1s;
+ animation-delay: -1.1s;
+}
+
+#loadingPage .rect3 {
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s;
+}
+
+#loadingPage .rect4 {
+ -webkit-animation-delay: -0.9s;
+ animation-delay: -0.9s;
+}
+
+#loadingPage .rect5 {
+ -webkit-animation-delay: -0.8s;
+ animation-delay: -0.8s;
+}
+
#mask {
position: fixed;
top: 0px;
@@ -529,17 +583,29 @@ i.SUCCEEDED {
right: 0px;
bottom: 0px;
filter: alpha(opacity=60);
- background-color: #777;
+ background-color: rgba(119, 119, 119, 0.8);
z-index: 1000;
display: none;
- opacity: 0.8;
- -moz-opacity: 0.5;
- padding-top: 100px;
color: #000000;
}
-
-#loadingPage {
- margin: 200px auto;
+.loadingWrap {
+ width: 20%;
+ height: 25%;
+ border: 1px solid #bbb;
+ background-color: #fff;
+ margin: auto;
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-direction: column;
+ border-radius: 20px;
+}
+#loading-page {
width: 50px;
height: 40px;
text-align: center;
@@ -547,7 +613,7 @@ i.SUCCEEDED {
display: block;
}
-#loadingPage > div {
+#loading-page > div {
background-color: green;
height: 100%;
width: 6px;
@@ -556,26 +622,25 @@ i.SUCCEEDED {
animation: sk-stretchdelay 1.2s infinite ease-in-out;
}
-#loadingPage .rect2 {
+#loading-page .rect2 {
-webkit-animation-delay: -1.1s;
animation-delay: -1.1s;
}
-#loadingPage .rect3 {
+#loadin-page .rect3 {
-webkit-animation-delay: -1s;
animation-delay: -1s;
}
-#loadingPage .rect4 {
+#loading-page .rect4 {
-webkit-animation-delay: -0.9s;
animation-delay: -0.9s;
}
-#loadingPage .rect5 {
+#loading-page .rect5 {
-webkit-animation-delay: -0.8s;
animation-delay: -0.8s;
}
-
@-webkit-keyframes sk-stretchdelay {
0%,
40%,