From 7279a21a819b739fa1b37ab2e99c27af3811748d Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Thu, 5 May 2022 17:41:55 +0800 Subject: [PATCH 01/37] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E8=AF=84=E6=B5=8B?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/cloudbrain.go | 1 + options/locale/locale_en-US.ini | 2 + options/locale/locale_zh-CN.ini | 3 + routers/admin/cloudbrains.go | 4 +- routers/repo/cloudbrain.go | 114 ++++++++++++++++++++++++++++++++++++- routers/repo/modelarts.go | 2 +- routers/user/home.go | 4 +- templates/repo/cloudbrain/new.tmpl | 6 -- 8 files changed, 122 insertions(+), 14 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index 480350c8d..e1dc2cbd0 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -160,6 +160,7 @@ type Cloudbrain struct { User *User `xorm:"-"` Repo *Repository `xorm:"-"` + BenchmarkType string `xorm:"-"` //算法评测,模型评测 BenchmarkTypeName string `xorm:"-"` BenchmarkTypeRankLink string `xorm:"-"` StartTime timeutil.TimeStamp diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index ca16093a6..8ff34f9ae 100755 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -1091,6 +1091,8 @@ modelarts.train_job_para.connfirm=train_job_para.connfirm modelarts.evaluate_job=Model Evaluation modelarts.evaluate_job.new_job=New Model Evaluation cloudbrain.benchmark.evaluate_type=Evaluation Type +cloudbrain.benchmark.algorithm=Algorithm Evaluation +cloudbrain.benchmark.model=Model Evaluation cloudbrain.benchmark.evaluate_child_type=Child Type cloudbrain.benchmark.evaluate_mirror=Mirror cloudbrain.benchmark.evaluate_train=Train Script diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index 474b96c3f..a01fdd94a 100755 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -1102,11 +1102,14 @@ modelarts.train_job_para.connfirm=确定 modelarts.evaluate_job=评测任务 modelarts.evaluate_job.new_job=新建评测任务 cloudbrain.benchmark.evaluate_type=评测类型 +cloudbrain.benchmark.algorithm=算法评测 +cloudbrain.benchmark.model=模型评测 cloudbrain.benchmark.evaluate_child_type=子类型 cloudbrain.benchmark.evaluate_mirror=镜像 cloudbrain.benchmark.evaluate_train=训练程序 cloudbrain.benchmark.evaluate_test=测试程序 cloudbrain.benchmark.types={"type":[{"id":1,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=detection","first":"目标检测","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"yangzhx","repo_name":"detection_benchmark_script"}]},{"id":2,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=reid","first":"目标重识别","second":[{"id":1,"value":"车辆重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"},{"id":2,"value":"基于图像的行人重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"}]},{"id":3,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=tracking","first":"多目标跟踪","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"lix07","repo_name":"MOT_benchmark_script"}]}]} +cloudbrain.benchmark.model.types={"type":[{"id":1,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=detection","first":"目标检测","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"yangzhx","repo_name":"detection_benchmark_script"}]},{"id":2,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=reid","first":"目标重识别","second":[{"id":1,"value":"车辆重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"},{"id":2,"value":"基于图像的行人重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"}]},{"id":3,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=tracking","first":"多目标跟踪","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"lix07","repo_name":"MOT_benchmark_script"}]}]} modelarts.infer_job_model = 模型名称 modelarts.infer_job_model_file = 模型文件 diff --git a/routers/admin/cloudbrains.go b/routers/admin/cloudbrains.go index 6687b990a..0481e6743 100755 --- a/routers/admin/cloudbrains.go +++ b/routers/admin/cloudbrains.go @@ -52,8 +52,8 @@ func CloudBrains(ctx *context.Context) { var jobTypes []string jobTypeNot := false - if jobType == string(models.JobTypeDebug) { - jobTypes = append(jobTypes, string(models.JobTypeSnn4imagenet), string(models.JobTypeBrainScore), string(models.JobTypeDebug)) + if jobType == string(models.JobTypeBenchmark) { + jobTypes = append(jobTypes, string(models.JobTypeBenchmark), string(models.JobTypeBrainScore), string(models.JobTypeSnn4imagenet)) } else if jobType != "all" && jobType != "" { jobTypes = append(jobTypes, jobType) } diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index b3b07f352..0520c2dbd 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -249,7 +249,7 @@ func CloudBrainCreate(ctx *context.Context, form auth.CreateCloudBrainForm) { return } - if jobType != string(models.JobTypeBenchmark) && jobType != string(models.JobTypeDebug) && jobType != string(models.JobTypeSnn4imagenet) && jobType != string(models.JobTypeBrainScore) && jobType != string(models.JobTypeTrain) { + if jobType != string(models.JobTypeBenchmark) && jobType != string(models.JobTypeDebug) && jobType != string(models.JobTypeTrain) { log.Error("jobtype error:", jobType, ctx.Data["MsgID"]) cloudBrainNewDataPrepare(ctx) ctx.RenderWithErr("jobtype error", tpl, &form) @@ -1646,7 +1646,7 @@ func CloudBrainBenchmarkIndex(ctx *context.Context) { } var jobTypes []string - jobTypes = append(jobTypes, string(models.JobTypeBenchmark)) + jobTypes = append(jobTypes, string(models.JobTypeBenchmark), string(models.JobTypeBrainScore), string(models.JobTypeSnn4imagenet)) ciTasks, count, err := models.Cloudbrains(&models.CloudbrainsOptions{ ListOptions: models.ListOptions{ Page: page, @@ -1676,7 +1676,12 @@ func CloudBrainBenchmarkIndex(ctx *context.Context) { } ciTasks[i].TrainJobDuration = models.ConvertDurationToStr(ciTasks[i].Duration) } - + if ciTasks[i].JobType == string(models.JobTypeBenchmark) { + ciTasks[i].BenchmarkType = ctx.Tr("cloudbrain.benchmark.algorithm") + } else if ciTasks[i].JobType == string(models.JobTypeSnn4imagenet) || ciTasks[i].JobType == string(models.JobTypeBrainScore) { + ciTasks[i].BenchmarkType = ctx.Tr("cloudbrain.benchmark.model") + ciTasks[i].BenchmarkTypeName = ciTasks[i].JobType + } ciTasks[i].BenchmarkTypeName = "" if task.BenchmarkTypeID > 0 { for _, benchmarkType := range GetBenchmarkTypes(ctx).BenchmarkType { @@ -1813,6 +1818,16 @@ func getBenchmarkResourceSpec(resourceSpecID int) (int, error) { } func CloudBrainBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainForm) { + jobType := form.JobType + if jobType == string(models.JobTypeBenchmark) { + BenchMarkAlgorithmCreate(ctx, form) + } else { + ModelBenchmarkCreate(ctx, form) + } + +} + +func BenchMarkAlgorithmCreate(ctx *context.Context, form auth.CreateCloudBrainForm) { ctx.Data["PageIsCloudBrain"] = true displayJobName := form.DisplayJobName jobName := util.ConvertDisplayJobNameToJobName(displayJobName) @@ -1965,6 +1980,99 @@ func CloudBrainBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainF ctx.RenderWithErr(err.Error(), tplCloudBrainBenchmarkNew, &form) return } + ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/cloudbrain/benchmark") + +} + +func ModelBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainForm) { + ctx.Data["PageIsCloudBrain"] = true + displayJobName := form.DisplayJobName + jobName := util.ConvertDisplayJobNameToJobName(displayJobName) + image := form.Image + uuid := form.Attachment + jobType := form.JobType + gpuQueue := form.GpuType + codePath := setting.JobPath + jobName + cloudbrain.CodeMountPath + resourceSpecId := form.ResourceSpecId + branchName := cloudbrain.DefaultBranchName + repo := ctx.Repo.Repository + + tpl := tplCloudBrainBenchmarkNew + command := cloudbrain.Command + + tasks, err := models.GetCloudbrainsByDisplayJobName(repo.ID, jobType, displayJobName) + if err == nil { + if len(tasks) != 0 { + log.Error("the job name did already exist", ctx.Data["MsgID"]) + cloudBrainNewDataPrepare(ctx) + ctx.RenderWithErr("the job name did already exist", tpl, &form) + return + } + } else { + if !models.IsErrJobNotExist(err) { + log.Error("system error, %v", err, ctx.Data["MsgID"]) + cloudBrainNewDataPrepare(ctx) + ctx.RenderWithErr("system error", tpl, &form) + return + } + } + + if !jobNamePattern.MatchString(displayJobName) { + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain_jobname_err"), tpl, &form) + return + } + + if jobType != string(models.JobTypeSnn4imagenet) && jobType != string(models.JobTypeBrainScore) { + log.Error("jobtype error:", jobType, ctx.Data["MsgID"]) + cloudBrainNewDataPrepare(ctx) + ctx.RenderWithErr("jobtype error", tpl, &form) + return + } + + count, err := models.GetCloudbrainCountByUserID(ctx.User.ID, jobType) + if err != nil { + log.Error("GetCloudbrainCountByUserID failed:%v", err, ctx.Data["MsgID"]) + cloudBrainNewDataPrepare(ctx) + ctx.RenderWithErr("system error", tpl, &form) + return + } else { + if count >= 1 { + log.Error("the user already has running or waiting task", ctx.Data["MsgID"]) + cloudBrainNewDataPrepare(ctx) + ctx.RenderWithErr("you have already a running or waiting task, can not create more", tpl, &form) + return + } + } + + downloadCode(repo, codePath, branchName) + uploadCodeToMinio(codePath+"/", jobName, cloudbrain.CodeMountPath+"/") + + modelPath := setting.JobPath + jobName + cloudbrain.ModelMountPath + "/" + mkModelPath(modelPath) + uploadCodeToMinio(modelPath, jobName, cloudbrain.ModelMountPath+"/") + + snn4imagenetPath := setting.JobPath + jobName + cloudbrain.Snn4imagenetMountPath + if setting.IsSnn4imagenetEnabled && jobType == string(models.JobTypeSnn4imagenet) { + downloadRateCode(repo, jobName, setting.Snn4imagenetOwner, setting.Snn4imagenetName, snn4imagenetPath, "", "") + uploadCodeToMinio(snn4imagenetPath+"/", jobName, cloudbrain.Snn4imagenetMountPath+"/") + } + + brainScorePath := setting.JobPath + jobName + cloudbrain.BrainScoreMountPath + if setting.IsBrainScoreEnabled && jobType == string(models.JobTypeBrainScore) { + downloadRateCode(repo, jobName, setting.BrainScoreOwner, setting.BrainScoreName, brainScorePath, "", "") + uploadCodeToMinio(brainScorePath+"/", jobName, cloudbrain.BrainScoreMountPath+"/") + } + + err = cloudbrain.GenerateTask(ctx, displayJobName, jobName, image, command, uuid, storage.GetMinioPath(jobName, cloudbrain.CodeMountPath+"/"), + storage.GetMinioPath(jobName, cloudbrain.ModelMountPath+"/"), + storage.GetMinioPath(jobName, cloudbrain.BenchMarkMountPath+"/"), storage.GetMinioPath(jobName, cloudbrain.Snn4imagenetMountPath+"/"), + storage.GetMinioPath(jobName, cloudbrain.BrainScoreMountPath+"/"), jobType, gpuQueue, form.Description, branchName, form.BootFile, form.Params, + 0, 0, resourceSpecId) + if err != nil { + cloudBrainNewDataPrepare(ctx) + ctx.RenderWithErr(err.Error(), tpl, &form) + return + } ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/cloudbrain/benchmark") } diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index 81e1664a4..bcc6f6156 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -76,7 +76,7 @@ func DebugJobIndex(ctx *context.Context) { } var jobTypes []string - jobTypes = append(jobTypes, string(models.JobTypeSnn4imagenet), string(models.JobTypeBrainScore), string(models.JobTypeDebug)) + jobTypes = append(jobTypes, string(models.JobTypeDebug)) ciTasks, count, err := models.Cloudbrains(&models.CloudbrainsOptions{ ListOptions: models.ListOptions{ Page: page, diff --git a/routers/user/home.go b/routers/user/home.go index d92bc31c6..53aff19b8 100755 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -778,8 +778,8 @@ func Cloudbrains(ctx *context.Context) { var jobTypes []string jobTypeNot := false - if jobType == string(models.JobTypeDebug) { - jobTypes = append(jobTypes, string(models.JobTypeSnn4imagenet), string(models.JobTypeBrainScore), string(models.JobTypeDebug)) + if jobType == string(models.JobTypeBenchmark) { + jobTypes = append(jobTypes, string(models.JobTypeBenchmark), string(models.JobTypeBrainScore), string(models.JobTypeSnn4imagenet)) } else if jobType != "all" && jobType != "" { jobTypes = append(jobTypes, jobType) } diff --git a/templates/repo/cloudbrain/new.tmpl b/templates/repo/cloudbrain/new.tmpl index e3e3dbd1c..c4596de37 100755 --- a/templates/repo/cloudbrain/new.tmpl +++ b/templates/repo/cloudbrain/new.tmpl @@ -156,12 +156,6 @@ From 7a23d33d0ebbae1a3d792502592dfb83eb70d150 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Fri, 6 May 2022 15:04:33 +0800 Subject: [PATCH 02/37] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E8=AF=84=E6=B5=8B?= =?UTF-8?q?=E9=BB=98=E8=AE=A48=E5=B0=8F=E6=97=B6=E5=81=9C=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/setting/setting.go | 10 ++++++---- routers/repo/cloudbrain.go | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/setting/setting.go b/modules/setting/setting.go index eee539d0c..2fd1a1b9c 100755 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -478,10 +478,11 @@ var ( BenchmarkMaxDuration int64 //snn4imagenet config - IsSnn4imagenetEnabled bool - Snn4imagenetOwner string - Snn4imagenetName string - Snn4imagenetServerHost string + IsSnn4imagenetEnabled bool + Snn4imagenetOwner string + Snn4imagenetName string + Snn4imagenetServerHost string + ModelBenchmarkMaxDuration int64 //snn4imagenet config IsBrainScoreEnabled bool @@ -1309,6 +1310,7 @@ func NewContext() { Snn4imagenetOwner = sec.Key("OWNER").MustString("") Snn4imagenetName = sec.Key("NAME").MustString("") Snn4imagenetServerHost = sec.Key("HOST").MustString("") + ModelBenchmarkMaxDuration = sec.Key("MAX_DURATION").MustInt64(28800) sec = Cfg.Section("brainscore") IsBrainScoreEnabled = sec.Key("ENABLED").MustBool(false) diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index 0520c2dbd..ab816c944 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -1397,6 +1397,8 @@ func SyncCloudbrainStatus() { var maxDuration int64 if task.JobType == string(models.JobTypeBenchmark) { maxDuration = setting.BenchmarkMaxDuration + } else if task.JobType == string(models.JobTypeSnn4imagenet) || task.JobType == string(models.JobTypeBrainScore) { + maxDuration = setting.ModelBenchmarkMaxDuration } else { maxDuration = setting.MaxDuration } From 425a0b71b9f3320e31c7a92a8883471daf808198 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Sat, 7 May 2022 15:30:10 +0800 Subject: [PATCH 03/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routers/repo/cloudbrain.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index ab816c944..bc9a61161 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -1683,6 +1683,13 @@ func CloudBrainBenchmarkIndex(ctx *context.Context) { } else if ciTasks[i].JobType == string(models.JobTypeSnn4imagenet) || ciTasks[i].JobType == string(models.JobTypeBrainScore) { ciTasks[i].BenchmarkType = ctx.Tr("cloudbrain.benchmark.model") ciTasks[i].BenchmarkTypeName = ciTasks[i].JobType + + if ciTasks[i].JobType == string(models.JobTypeSnn4imagenet) { + ciTasks[i].BenchmarkTypeRankLink = setting.Snn4imagenetServerHost + } else { + ciTasks[i].BenchmarkTypeRankLink = setting.BrainScoreServerHost + } + } ciTasks[i].BenchmarkTypeName = "" if task.BenchmarkTypeID > 0 { @@ -1734,6 +1741,7 @@ func CloudBrainBenchmarkNew(ctx *context.Context) { ctx.Data["description"] = "" ctx.Data["benchmarkTypeID"] = -1 ctx.Data["benchmark_child_types_id_hidden"] = -1 + ctx.Data["type"] = ctx.Query("type") err := cloudBrainNewDataPrepare(ctx) if err != nil { ctx.ServerError("get new cloudbrain info failed", err) From 292b805607f8c7b1c0bdd6f4cdc192e0ac21e52e Mon Sep 17 00:00:00 2001 From: zhoupzh Date: Sat, 7 May 2022 15:30:39 +0800 Subject: [PATCH 04/37] fix issue --- templates/repo/cloudbrain/benchmark/new.tmpl | 268 ++++++++++++++++++++------- web_src/js/features/images.js | 12 ++ 2 files changed, 209 insertions(+), 71 deletions(-) diff --git a/templates/repo/cloudbrain/benchmark/new.tmpl b/templates/repo/cloudbrain/benchmark/new.tmpl index 0db184206..32445432f 100755 --- a/templates/repo/cloudbrain/benchmark/new.tmpl +++ b/templates/repo/cloudbrain/benchmark/new.tmpl @@ -31,7 +31,9 @@ margin-left: 1.5rem; width: 81% !important; } - +.width48{ + width: 48.5% !important; +} .add{font-size: 18px; padding: 0.5rem; border: 1px solid rgba(187, 187, 187, 100); @@ -74,90 +76,175 @@ {{.i18n.Tr "repo.modelarts.evaluate_job.new_job"}}
+ + -
+ {{.CsrfTokenHtml}} - - +
- - + +
-
- - -
- -
- - -
- - -
-
- -   - +
+
+ + +
+ +
+ + -
-
- - - -
-
- -
- + +
+ + +
+
+ +   + +
+
+ + + +
+
+ +
+ +
+ + + +
+ + +
+ +
+ + + {{.i18n.Tr "repo.cloudbrain.benchmark.evaluate_train"}} +
+ +
+ + + {{.i18n.Tr "cloudbrain.view_sample"}} +
+ + +
+ + {{.i18n.Tr "repo.cloudbrain.cancel"}} +
+ + + + @@ -166,7 +253,7 @@ \ No newline at end of file diff --git a/templates/repo/cloudbrain/benchmark/new.tmpl b/templates/repo/cloudbrain/benchmark/new.tmpl index 0e5ecadee..51fd4c972 100755 --- a/templates/repo/cloudbrain/benchmark/new.tmpl +++ b/templates/repo/cloudbrain/benchmark/new.tmpl @@ -76,19 +76,10 @@ {{.i18n.Tr "repo.modelarts.evaluate_job.new_job"}}
+ - - {{if eq .benchmarkMode "model"}} -
+ {{.CsrfTokenHtml}}
@@ -129,10 +120,7 @@ 查看样例
- -
-
{{template "custom/select_dataset_train" .}}
@@ -143,7 +131,6 @@ {{end}}
-
{{else}} -
+ {{.CsrfTokenHtml}} @@ -183,8 +170,6 @@ {{end}}
- -
@@ -206,13 +191,9 @@
-
-
- -
@@ -232,7 +230,4 @@
-{{template "base/footer" .}} - \ No newline at end of file +{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/user/dashboard/cloudbrains.tmpl b/templates/user/dashboard/cloudbrains.tmpl index 0b0776c9b..9abee857c 100644 --- a/templates/user/dashboard/cloudbrains.tmpl +++ b/templates/user/dashboard/cloudbrains.tmpl @@ -12,7 +12,11 @@
- + {{template "admin/cloudbrain/search_dashboard" .}}
{{template "base/alert" .}} @@ -94,7 +98,7 @@ {{$JobType := $.i18n.Tr (printf "cloudbrain.%s" .JobType)}}
- {{$JobType}} + {{$JobType}}
@@ -115,7 +119,7 @@
- {{if eq .JobType "DEBUG" "SNN4IMAGENET" "BRAINSCORE"}} + {{if eq .JobType "DEBUG"}}
{{$.CsrfTokenHtml}} @@ -146,6 +150,14 @@ {{end}}
+ {{if eq .JobType "BENCHMARK"}} + + + {{end}} {{$.CsrfTokenHtml}} @@ -195,7 +207,7 @@ {{$JobType := $.i18n.Tr (printf "cloudbrain.%s" .JobType)}}
- {{$JobType}} + {{$JobType}}
@@ -291,38 +303,4 @@
-{{template "base/footer" .}} - +{{template "base/footer" .}} \ No newline at end of file diff --git a/web_src/js/features/cloudrbanin.js b/web_src/js/features/cloudrbanin.js index 400cf2842..57b8f7d64 100644 --- a/web_src/js/features/cloudrbanin.js +++ b/web_src/js/features/cloudrbanin.js @@ -240,4 +240,52 @@ export default async function initCloudrain() { }) } +function userSearchControll() { + if($('#userCloud').length===0){ + return + } + const params = new URLSearchParams(window.location.search) + let jobType + if($('.cloudbrain_debug').length===1){ + if(!params.get('jobType')){ + jobType = $('.cloudbrain_debug').data('allTask') + }else{ + if(params.get('jobType') === 'DEBUG'){ + jobType = $('.cloudbrain_debug').data('debug-task') + }else if(params.get('jobType') === 'TRAIN'){ + jobType = $('.cloudbrain_debug').data('train-task') + } + else if(params.get('jobType') === 'INFERENCE'){ + jobType = $('.cloudbrain_debug').data('inference-task') + } + else{ + jobType = $('.cloudbrain_debug').data('benchmark-task') + } + } + } + let listType = !params.get('listType')? $('.cloudbrain_debug').data('all-compute') : params.get('listType') + let jobStatus = !params.get('jobStatus')? $('.cloudbrain_debug').data('all-status') : params.get('jobStatus').toUpperCase() + const dropdownValueArray = [jobType,listType,jobStatus] + $('#userCloud .default.text ').each(function(index,e){ + $(e).text(dropdownValueArray[index]) + }) +} + +function AdaminSearchControll() { + if($('#adminCloud').length===0){ + return + } + const params = new URLSearchParams(window.location.search) + let jobType = !params.get('jobType')? $('.cloudbrain_debug').data('all-task') : params.get('jobType') + let listType = !params.get('listType')? $('.cloudbrain_debug').data('all-compute') : params.get('listType') + let jobStatus = !params.get('jobStatus')? $('.cloudbrain_debug').data('all-status') : params.get('jobStatus').toUpperCase() + const dropdownValueArray = [jobType,listType,jobStatus] + $('#adminCloud .default.text ').each(function(index,e){ + $(e).text(dropdownValueArray[index]) + }) +} +userSearchControll() +AdaminSearchControll() + + \ No newline at end of file From 4bf082db2a3a248090b3e1ef5e1ecf6ce1007ba9 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Mon, 9 May 2022 17:23:45 +0800 Subject: [PATCH 14/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routers/repo/cloudbrain.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index 98f702476..fdea6d2ad 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -526,6 +526,7 @@ func cloudBrainShow(ctx *context.Context, tpName base.TplName, jobType models.Jo for _, benchmarkType := range GetBenchmarkTypes(ctx).BenchmarkType { if task.BenchmarkTypeID == benchmarkType.Id { ctx.Data["BenchmarkTypeName"] = benchmarkType.First + task.BenchmarkTypeName = benchmarkType.First for _, benchmarkChildType := range benchmarkType.Second { if task.BenchmarkChildTypeID == benchmarkChildType.Id { ctx.Data["BenchmarkChildTypeName"] = benchmarkChildType.Value @@ -536,6 +537,16 @@ func cloudBrainShow(ctx *context.Context, tpName base.TplName, jobType models.Jo } } } + + if task.JobType == string(models.JobTypeBenchmark) { + task.BenchmarkType = ctx.Tr("repo.cloudbrain.benchmark.algorithm") + } else if task.JobType == string(models.JobTypeSnn4imagenet) || task.JobType == string(models.JobTypeBrainScore) { + task.BenchmarkType = ctx.Tr("repo.cloudbrain.benchmark.model") + task.BenchmarkTypeName = task.JobType + ctx.Data["BenchmarkTypeName"] = task.JobType + + } + if task.TrainJobDuration == "" { if task.Duration == 0 { var duration int64 From b4ce9ceb4ee2b74d1a3a1257e9abbe4c56a57edd Mon Sep 17 00:00:00 2001 From: zhoupzh Date: Tue, 10 May 2022 10:34:54 +0800 Subject: [PATCH 15/37] fix issue --- templates/custom/select_dataset_train.tmpl | 6 +- templates/repo/cloudbrain/benchmark/new.tmpl | 28 ------- templates/repo/cloudbrain/benchmark/show.tmpl | 115 +++++++++++++++++++++----- 3 files changed, 101 insertions(+), 48 deletions(-) diff --git a/templates/custom/select_dataset_train.tmpl b/templates/custom/select_dataset_train.tmpl index 93e99de4f..28fce2490 100644 --- a/templates/custom/select_dataset_train.tmpl +++ b/templates/custom/select_dataset_train.tmpl @@ -9,6 +9,9 @@ {{if .benchmarkMode}}{{.i18n.Tr "repo.modelarts.infer_job.select_model"}}{{else}}{{.i18n.Tr "dataset.select_dataset"}}{{end}} + {{if .benchmarkMode}} + 说明:先使用数据集功能上传模型,然后从数据集列表选模型。 + {{end}}
- + {{if not .benchmarkMode}}
@@ -121,6 +124,7 @@
+ {{end}}
let repolink = {{.RepoLink}} - console.log({{$.benchmarkMode}}) let url_href = window.location.pathname.split('create')[0] $(".ui.button").attr('href',url_href) @@ -260,17 +259,6 @@ } } }) - // console.log("==============") - // const params = new URLSearchParams(location.search) - // if(params.get('type')=='model'){ - // console.log(2) - // $('.model_form').css('display','block') - // $('.alogrithm_form').css('display','none') - // }else if(params.get('type')=='alogrithm'){ - // console.log(1) - // $('.model_form').css('display','none') - // $('.alogrithm_form').css('display','block') - // } }) function setChildType(){ let type_id = $('#benchmark_types_id').val(); @@ -295,22 +283,6 @@ document.getElementById("benchmark_child_types_id").innerHTML=html; }) } - - // $('.alogrithm_benchmark').on('click',(e)=>{ - // $('.alogrithm_benchmark').addClass('active') - // $('.model_benchmark').removeClass('active') - // $('.model_form').css('display','none') - // $('.alogrithm_form').css('display','block') - // }) - // $('.model_benchmark').on('click',(e)=>{ - // $('.model_benchmark').addClass('active') - // $('.alogrithm_benchmark').removeClass('active') - // $('.model_form').css('display','block') - // $('.alogrithm_form').css('display','none') - - // }) - - document.onreadystatechange = function() { if (document.readyState === "complete") { if($('input[name=benchmarkMode]').val()==='alogrithm'){ diff --git a/templates/repo/cloudbrain/benchmark/show.tmpl b/templates/repo/cloudbrain/benchmark/show.tmpl index 944719dc7..5b7474ca1 100755 --- a/templates/repo/cloudbrain/benchmark/show.tmpl +++ b/templates/repo/cloudbrain/benchmark/show.tmpl @@ -56,7 +56,7 @@ margin:10px 5px ; } .tab_2_content { - min-height: 360px; + min-height: 425px; margin-left: 10px; } .ac-grid { @@ -250,24 +250,51 @@ td, th {
- - {{$.i18n.Tr "repo.modelarts.train_job.start_time"}} + {{$.i18n.Tr "repo.modelarts.createtime"}}
- {{if not (eq .StartTime 0)}} - {{TimeSinceUnix1 .StartTime}} - {{else}} - {{TimeSinceUnix1 .CreatedUnix}} - {{end}} + {{TimeSinceUnix1 .CreatedUnix}}
+ + + + {{$.i18n.Tr "repo.cloudbrain.time.starttime"}} + + + +
+ {{if not (eq .StartTime 0)}} + {{TimeSinceUnix1 .StartTime}} + {{else}} + -- + {{end}} +
+ + + + + + {{$.i18n.Tr "repo.cloudbrain.time.endtime"}} + + + +
+ {{if not (eq .EndTime 0)}} + {{TimeSinceUnix1 .EndTime}} + {{else}} + -- + {{end}} +
+ + {{$.i18n.Tr "repo.modelarts.train_job.dura_time"}} @@ -292,16 +319,29 @@ td, th { + {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_scenes"}} + + + + +
+ {{.BenchmarkType}} +
+ + + + {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_type"}}
- {{$.BenchmarkTypeName}} + {{.BenchmarkTypeName}}
+ @@ -319,7 +359,11 @@ td, th {
+ {{if eq .BenchmarkType "Benchmark"}} train.py + {{else}} + -- + {{end}}
@@ -330,7 +374,11 @@ td, th {
+ {{if eq .BenchmarkType "Benchmark"}} test.py + {{else}} + -- + {{end}}
@@ -342,11 +390,25 @@ td, th {
+ {{if .Description}} {{.Description}} + {{else}} + -- + {{end}}
- + + + {{$.i18n.Tr "cloudbrain.gpu_type"}} + + + +
+ {{$.resource_type}} +
+ + {{$.i18n.Tr "repo.modelarts.train_job.standard"}} @@ -358,7 +420,17 @@ td, th { + + + {{$.i18n.Tr "repo.model_manager"}} + + +
+ {{$.datasetname}} +
+ + {{$.i18n.Tr "repo.cloudbrain_creator"}} @@ -371,16 +443,21 @@ td, th { - - {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_child_type"}} - - - -
- {{$.BenchmarkChildTypeName}} -
- + + {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_child_type"}} + + + +
+ {{if $.BenchmarkChildTypeName}} + {{$.BenchmarkChildTypeName}} + {{else}} + -- + {{end}} +
+ + From 29235d8517021b24f9e53345e3074fc10e09acd4 Mon Sep 17 00:00:00 2001 From: zhoupzh Date: Tue, 10 May 2022 10:41:09 +0800 Subject: [PATCH 16/37] fix issue --- templates/repo/cloudbrain/benchmark/new.tmpl | 14 +++++++------- web_src/js/features/images.js | 12 ------------ 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/templates/repo/cloudbrain/benchmark/new.tmpl b/templates/repo/cloudbrain/benchmark/new.tmpl index a11ffb402..94fa5fcc8 100755 --- a/templates/repo/cloudbrain/benchmark/new.tmpl +++ b/templates/repo/cloudbrain/benchmark/new.tmpl @@ -83,10 +83,10 @@ {{.CsrfTokenHtml}}
- +
@@ -145,10 +145,10 @@
- +
diff --git a/web_src/js/features/images.js b/web_src/js/features/images.js index 05cb02b48..0cafb3901 100644 --- a/web_src/js/features/images.js +++ b/web_src/js/features/images.js @@ -209,19 +209,7 @@ export default async function initImage(){ render: h => h(selectImages) }); } - function initVueselectImagesCopy() { - const el = document.getElementById('images-new-cb-copy'); - if (!el) { - return; - } - - new Vue({ - el:el, - render: h => h(selectImages) - }); - } initVueImages() initVueAdminImages() initVueselectImages() - initVueselectImagesCopy() } \ No newline at end of file From 05b8257df8ae7be4c6fa9cd86a6cd28548127045 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Wed, 11 May 2022 11:49:18 +0800 Subject: [PATCH 17/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/cloudbrain/cloudbrain.go | 2 ++ routers/repo/cloudbrain.go | 13 +++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/cloudbrain/cloudbrain.go b/modules/cloudbrain/cloudbrain.go index f1d3cb344..46cc45170 100755 --- a/modules/cloudbrain/cloudbrain.go +++ b/modules/cloudbrain/cloudbrain.go @@ -28,6 +28,8 @@ const ( Snn4imagenetMountPath = "/snn4imagenet" BrainScoreMountPath = "/brainscore" TaskInfoName = "/taskInfo" + Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s'` + BrainScoreCommand = `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s'` SubTaskName = "task1" diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index fdea6d2ad..1389d74ae 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -2066,19 +2066,23 @@ func ModelBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainForm) if setting.IsSnn4imagenetEnabled && jobType == string(models.JobTypeSnn4imagenet) { downloadRateCode(repo, jobName, setting.Snn4imagenetOwner, setting.Snn4imagenetName, snn4imagenetPath, "", "") uploadCodeToMinio(snn4imagenetPath+"/", jobName, cloudbrain.Snn4imagenetMountPath+"/") - } + command = fmt.Sprintf(cloudbrain.Snn4imagenetCommand, displayJobName, form.Description) + } + benchmarkChildTypeID := 0 brainScorePath := setting.JobPath + jobName + cloudbrain.BrainScoreMountPath if setting.IsBrainScoreEnabled && jobType == string(models.JobTypeBrainScore) { downloadRateCode(repo, jobName, setting.BrainScoreOwner, setting.BrainScoreName, brainScorePath, "", "") uploadCodeToMinio(brainScorePath+"/", jobName, cloudbrain.BrainScoreMountPath+"/") + benchmarkChildTypeID = form.BenchmarkChildTypeID + command = fmt.Sprintf(cloudbrain.BrainScoreCommand, getBrainRegion(benchmarkChildTypeID), displayJobName, form.Description) } err = cloudbrain.GenerateTask(ctx, displayJobName, jobName, image, command, uuid, storage.GetMinioPath(jobName, cloudbrain.CodeMountPath+"/"), storage.GetMinioPath(jobName, cloudbrain.ModelMountPath+"/"), storage.GetMinioPath(jobName, cloudbrain.BenchMarkMountPath+"/"), storage.GetMinioPath(jobName, cloudbrain.Snn4imagenetMountPath+"/"), storage.GetMinioPath(jobName, cloudbrain.BrainScoreMountPath+"/"), jobType, gpuQueue, form.Description, branchName, form.BootFile, form.Params, - 0, 0, resourceSpecId) + 0, benchmarkChildTypeID, resourceSpecId) if err != nil { cloudBrainNewDataPrepare(ctx) ctx.RenderWithErr(err.Error(), tpl, &form) @@ -2088,6 +2092,11 @@ func ModelBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainForm) ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/cloudbrain/benchmark") } +func getBrainRegion(benchmarkChildTypeID int) string { + values := []string{"V1", "V2", "V4", "IT"} + return values[benchmarkChildTypeID] +} + func BenchmarkDel(ctx *context.Context) { if err := deleteCloudbrainJob(ctx); err != nil { log.Error("deleteCloudbrainJob failed: %v", err, ctx.Data["msgID"]) From 1ae005fa35cda00b26422bf3136f893028ddc060 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Wed, 11 May 2022 12:49:01 +0800 Subject: [PATCH 18/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routers/repo/cloudbrain.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index 1389d74ae..67e65f6f9 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -2066,7 +2066,7 @@ func ModelBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainForm) if setting.IsSnn4imagenetEnabled && jobType == string(models.JobTypeSnn4imagenet) { downloadRateCode(repo, jobName, setting.Snn4imagenetOwner, setting.Snn4imagenetName, snn4imagenetPath, "", "") uploadCodeToMinio(snn4imagenetPath+"/", jobName, cloudbrain.Snn4imagenetMountPath+"/") - command = fmt.Sprintf(cloudbrain.Snn4imagenetCommand, displayJobName, form.Description) + command = fmt.Sprintf(cloudbrain.Snn4imagenetCommand, displayJobName, trimSpaceNewlineInString(form.Description)) } benchmarkChildTypeID := 0 @@ -2075,7 +2075,7 @@ func ModelBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainForm) downloadRateCode(repo, jobName, setting.BrainScoreOwner, setting.BrainScoreName, brainScorePath, "", "") uploadCodeToMinio(brainScorePath+"/", jobName, cloudbrain.BrainScoreMountPath+"/") benchmarkChildTypeID = form.BenchmarkChildTypeID - command = fmt.Sprintf(cloudbrain.BrainScoreCommand, getBrainRegion(benchmarkChildTypeID), displayJobName, form.Description) + command = fmt.Sprintf(cloudbrain.BrainScoreCommand, getBrainRegion(benchmarkChildTypeID), displayJobName, trimSpaceNewlineInString(form.Description)) } err = cloudbrain.GenerateTask(ctx, displayJobName, jobName, image, command, uuid, storage.GetMinioPath(jobName, cloudbrain.CodeMountPath+"/"), @@ -2097,6 +2097,12 @@ func getBrainRegion(benchmarkChildTypeID int) string { return values[benchmarkChildTypeID] } +func trimSpaceNewlineInString(s string) string { + re := regexp.MustCompile(`\r?\n`) + return re.ReplaceAllString(s, " ") + +} + func BenchmarkDel(ctx *context.Context) { if err := deleteCloudbrainJob(ctx); err != nil { log.Error("deleteCloudbrainJob failed: %v", err, ctx.Data["msgID"]) From c912d76fe9c407a567d2ea9cfb419e278b9adeff Mon Sep 17 00:00:00 2001 From: zhoupzh Date: Thu, 12 May 2022 09:24:12 +0800 Subject: [PATCH 19/37] fix issue --- templates/repo/cloudbrain/benchmark/new.tmpl | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/templates/repo/cloudbrain/benchmark/new.tmpl b/templates/repo/cloudbrain/benchmark/new.tmpl index 94fa5fcc8..a602b3741 100755 --- a/templates/repo/cloudbrain/benchmark/new.tmpl +++ b/templates/repo/cloudbrain/benchmark/new.tmpl @@ -108,12 +108,35 @@
-
+ +
+
+ + +
+ @@ -253,8 +276,10 @@ onChange: function(value, text, $selectedItem) { console.log(value,text) if(value==="BRAINSCORE"){ + $('#brainscore_child_type').css('display','block') $('#benchmark_model_example').attr('href','https://git.openi.org.cn/yult/similarity2brain_ann') }else{ + $('#brainscore_child_type').css('display','none') $('#benchmark_model_example').attr('href','https://git.openi.org.cn/yult/snn4imagenet') } } From 76d703aba2dba7a88499cf457ac7bbc15bf80b78 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Thu, 12 May 2022 10:37:48 +0800 Subject: [PATCH 20/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/cloudbrain/cloudbrain.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cloudbrain/cloudbrain.go b/modules/cloudbrain/cloudbrain.go index 46cc45170..9e5620374 100755 --- a/modules/cloudbrain/cloudbrain.go +++ b/modules/cloudbrain/cloudbrain.go @@ -28,8 +28,8 @@ const ( Snn4imagenetMountPath = "/snn4imagenet" BrainScoreMountPath = "/brainscore" TaskInfoName = "/taskInfo" - Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s'` - BrainScoreCommand = `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s'` + Snn4imagenetCommand = Command + ";" + `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s'` + BrainScoreCommand = Command + ";" + `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s'` + ";" SubTaskName = "task1" From 1d0111c158b03c89e03e3182643f1adbfb768d70 Mon Sep 17 00:00:00 2001 From: zhoupzh Date: Thu, 12 May 2022 14:44:33 +0800 Subject: [PATCH 21/37] fix issue --- .prettierignore | 4 + .prettierrc.json | 1 + package-lock.json | 14 +- package.json | 3 +- templates/repo/cloudbrain/benchmark/new.tmpl | 415 +++++++++++++++------------ 5 files changed, 251 insertions(+), 186 deletions(-) create mode 100644 .prettierignore create mode 100644 .prettierrc.json diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..8364976de --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +# Ignore artifacts: +dist +build +coverage diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1 @@ +{} diff --git a/package-lock.json b/package-lock.json index f5a941869..9233b813b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1123,6 +1123,12 @@ "vue-template-es2015-compiler": "^1.9.0" }, "dependencies": { + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "optional": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -11003,10 +11009,10 @@ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "optional": true + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true }, "pretty-error": { "version": "2.1.1", diff --git a/package.json b/package.json index 0f93faaea..748291d5c 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "eslint-config-airbnb-base": "14.1.0", "eslint-plugin-import": "2.20.2", "eslint-plugin-vue": "6.2.2", + "prettier": "2.6.2", "script-loader": "0.7.2", "stylelint": "13.3.3", "stylelint-config-standard": "20.0.0", @@ -78,4 +79,4 @@ "browserslist": [ "defaults" ] -} +} \ No newline at end of file diff --git a/templates/repo/cloudbrain/benchmark/new.tmpl b/templates/repo/cloudbrain/benchmark/new.tmpl index a602b3741..8367541d3 100755 --- a/templates/repo/cloudbrain/benchmark/new.tmpl +++ b/templates/repo/cloudbrain/benchmark/new.tmpl @@ -1,72 +1,80 @@ {{template "base/head" .}}
-
-
-
-
-
-
-
+
+
+
+
+
+
+
{{template "repo/header" .}} @@ -85,25 +93,35 @@
- +
- - + +
- +
- {{range .benchmark_gpu_types}} - + {{end}}
@@ -123,14 +141,17 @@
-
- - +
{{template "custom/select_dataset_train" .}}
- - + +
{{.i18n.Tr "repo.cloudbrain.cancel"}}
@@ -170,181 +198,206 @@ - +
- +
- - + +
- -
- - + +
+ +
- -   - {{range .benchmark_types}} - {{if eq .Id $.benchmarkTypeID}} - - {{else}} - - {{end}} + {{if eq .Id $.benchmarkTypeID}} + + {{else}} + + {{end}} {{end}} -
-
- - - + + -
+
- +
- - + +
- +
- - - {{.i18n.Tr "repo.cloudbrain.benchmark.evaluate_train"}} + + + {{.i18n.Tr "repo.cloudbrain.benchmark.evaluate_train"}}
- +
- - - {{.i18n.Tr "cloudbrain.view_sample"}} + + + {{.i18n.Tr "cloudbrain.view_sample"}}
- - + +
{{.i18n.Tr "repo.cloudbrain.cancel"}}
- + - {{end}} + {{end}}
{{template "base/footer" .}} + \ No newline at end of file From 92a14a547bf7e68d2739826e5ec3413649e1f854 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Fri, 13 May 2022 11:56:04 +0800 Subject: [PATCH 22/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/cloudbrain/cloudbrain.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cloudbrain/cloudbrain.go b/modules/cloudbrain/cloudbrain.go index 9e5620374..007fd4664 100755 --- a/modules/cloudbrain/cloudbrain.go +++ b/modules/cloudbrain/cloudbrain.go @@ -28,8 +28,8 @@ const ( Snn4imagenetMountPath = "/snn4imagenet" BrainScoreMountPath = "/brainscore" TaskInfoName = "/taskInfo" - Snn4imagenetCommand = Command + ";" + `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s'` - BrainScoreCommand = Command + ";" + `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s'` + ";" + Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s' > /model/snn-log.txt` + BrainScoreCommand = `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s' > /model/brainscore-log.txt"` SubTaskName = "task1" From 9246faa148fbc1772e93e140abecdb2c83d36c11 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Fri, 13 May 2022 14:33:31 +0800 Subject: [PATCH 23/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/cloudbrain/cloudbrain.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cloudbrain/cloudbrain.go b/modules/cloudbrain/cloudbrain.go index 007fd4664..9db099750 100755 --- a/modules/cloudbrain/cloudbrain.go +++ b/modules/cloudbrain/cloudbrain.go @@ -28,8 +28,8 @@ const ( Snn4imagenetMountPath = "/snn4imagenet" BrainScoreMountPath = "/brainscore" TaskInfoName = "/taskInfo" - Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s' > /model/snn-log.txt` - BrainScoreCommand = `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s' > /model/brainscore-log.txt"` + Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ` + BrainScoreCommand = `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ` SubTaskName = "task1" From f070b7ef797a5041752fe0b652380876c9833f57 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Fri, 13 May 2022 16:24:25 +0800 Subject: [PATCH 24/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/cloudbrain/cloudbrain.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/cloudbrain/cloudbrain.go b/modules/cloudbrain/cloudbrain.go index 9db099750..6df7d5530 100755 --- a/modules/cloudbrain/cloudbrain.go +++ b/modules/cloudbrain/cloudbrain.go @@ -28,8 +28,10 @@ const ( Snn4imagenetMountPath = "/snn4imagenet" BrainScoreMountPath = "/brainscore" TaskInfoName = "/taskInfo" - Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ` - BrainScoreCommand = `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ` + //Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ` + //BrainScoreCommand = `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ` + Snn4imagenetCommand = `echo "start snn benchmark" ` + BrainScoreCommand = `echo "start brainscore benchmark" ` SubTaskName = "task1" From 98d1a5288c13268776faae85a66c1c19f13a6ad4 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Fri, 13 May 2022 16:38:31 +0800 Subject: [PATCH 25/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/cloudbrain/cloudbrain.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cloudbrain/cloudbrain.go b/modules/cloudbrain/cloudbrain.go index 6df7d5530..673d151ea 100755 --- a/modules/cloudbrain/cloudbrain.go +++ b/modules/cloudbrain/cloudbrain.go @@ -30,8 +30,8 @@ const ( TaskInfoName = "/taskInfo" //Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ` //BrainScoreCommand = `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ` - Snn4imagenetCommand = `echo "start snn benchmark" ` - BrainScoreCommand = `echo "start brainscore benchmark" ` + Snn4imagenetCommand = Command + BrainScoreCommand = Command SubTaskName = "task1" From eadbf3c3363eced9141edc183daecb47a8d12fc7 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Fri, 13 May 2022 16:47:24 +0800 Subject: [PATCH 26/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routers/repo/cloudbrain.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index 67e65f6f9..401de2dc2 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -2066,7 +2066,7 @@ func ModelBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainForm) if setting.IsSnn4imagenetEnabled && jobType == string(models.JobTypeSnn4imagenet) { downloadRateCode(repo, jobName, setting.Snn4imagenetOwner, setting.Snn4imagenetName, snn4imagenetPath, "", "") uploadCodeToMinio(snn4imagenetPath+"/", jobName, cloudbrain.Snn4imagenetMountPath+"/") - command = fmt.Sprintf(cloudbrain.Snn4imagenetCommand, displayJobName, trimSpaceNewlineInString(form.Description)) + //command = fmt.Sprintf(cloudbrain.Snn4imagenetCommand, displayJobName, trimSpaceNewlineInString(form.Description)) } benchmarkChildTypeID := 0 From 6e680ef95d31be0478baea8b7f81fa827da70cda Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Fri, 13 May 2022 17:03:44 +0800 Subject: [PATCH 27/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/cloudbrain/cloudbrain.go | 6 ++---- routers/repo/cloudbrain.go | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/cloudbrain/cloudbrain.go b/modules/cloudbrain/cloudbrain.go index 673d151ea..1370ff74f 100755 --- a/modules/cloudbrain/cloudbrain.go +++ b/modules/cloudbrain/cloudbrain.go @@ -28,10 +28,8 @@ const ( Snn4imagenetMountPath = "/snn4imagenet" BrainScoreMountPath = "/brainscore" TaskInfoName = "/taskInfo" - //Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ` - //BrainScoreCommand = `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ` - Snn4imagenetCommand = Command - BrainScoreCommand = Command + Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ;` + Command + BrainScoreCommand = `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ;` + Command SubTaskName = "task1" diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index 401de2dc2..67e65f6f9 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -2066,7 +2066,7 @@ func ModelBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainForm) if setting.IsSnn4imagenetEnabled && jobType == string(models.JobTypeSnn4imagenet) { downloadRateCode(repo, jobName, setting.Snn4imagenetOwner, setting.Snn4imagenetName, snn4imagenetPath, "", "") uploadCodeToMinio(snn4imagenetPath+"/", jobName, cloudbrain.Snn4imagenetMountPath+"/") - //command = fmt.Sprintf(cloudbrain.Snn4imagenetCommand, displayJobName, trimSpaceNewlineInString(form.Description)) + command = fmt.Sprintf(cloudbrain.Snn4imagenetCommand, displayJobName, trimSpaceNewlineInString(form.Description)) } benchmarkChildTypeID := 0 From 6fb5062d7092438107721659d0cdf3b104c9ba98 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Sat, 14 May 2022 09:12:05 +0800 Subject: [PATCH 28/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/cloudbrain/cloudbrain.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cloudbrain/cloudbrain.go b/modules/cloudbrain/cloudbrain.go index 1370ff74f..29acc1f51 100755 --- a/modules/cloudbrain/cloudbrain.go +++ b/modules/cloudbrain/cloudbrain.go @@ -29,7 +29,7 @@ const ( BrainScoreMountPath = "/brainscore" TaskInfoName = "/taskInfo" Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ;` + Command - BrainScoreCommand = `/opt/conda/bin/python /brainscore/score_a_model.py --brainRegion '%s' --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ;` + Command + BrainScoreCommand = `bash /brainscore/brainscore_test_par4shSrcipt.sh -b '%s' -n '%s' -p '/dataset' -d '%s';` + Command SubTaskName = "task1" From df7b78154b8e0d8e86ea68b6ae234f37696956ee Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Mon, 16 May 2022 09:25:23 +0800 Subject: [PATCH 29/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/cloudbrain/cloudbrain.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cloudbrain/cloudbrain.go b/modules/cloudbrain/cloudbrain.go index 29acc1f51..417611ddf 100755 --- a/modules/cloudbrain/cloudbrain.go +++ b/modules/cloudbrain/cloudbrain.go @@ -28,8 +28,8 @@ const ( Snn4imagenetMountPath = "/snn4imagenet" BrainScoreMountPath = "/brainscore" TaskInfoName = "/taskInfo" - Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s' ;` + Command - BrainScoreCommand = `bash /brainscore/brainscore_test_par4shSrcipt.sh -b '%s' -n '%s' -p '/dataset' -d '%s';` + Command + Snn4imagenetCommand = `/opt/conda/bin/python /snn4imagenet/testSNN_script.py --modelname '%s' --modelpath '/dataset' --modeldescription '%s'` + BrainScoreCommand = `bash /brainscore/brainscore_test_par4shSrcipt.sh -b '%s' -n '%s' -p '/dataset' -d '%s'` SubTaskName = "task1" From 3ee0dcb4ac7287bc57eeb91f1d649a6900c705a0 Mon Sep 17 00:00:00 2001 From: Gitea Date: Mon, 16 May 2022 10:05:25 +0800 Subject: [PATCH 30/37] fix issue --- options/locale/locale_en-US.ini | 3 +- options/locale/locale_zh-CN.ini | 1 + templates/repo/cloudbrain/benchmark/new.tmpl | 33 +- web_src/js/components/images/Images.vue | 4 +- web_src/js/components/images/adminImages.vue | 718 +++++++++++++------------- web_src/js/components/images/selectImages.vue | 573 ++++++++++---------- 6 files changed, 662 insertions(+), 670 deletions(-) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 0c01a5107..6ef33ba75 100755 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -3019,4 +3019,5 @@ SNN4IMAGENET = BENCHMARK BRAINSCORE = BENCHMARK TRAIN = TRAIN INFERENCE = INFERENCE -BENCHMARK = BENCHMARK \ No newline at end of file +BENCHMARK = BENCHMARK +brain_area = Brain Area \ No newline at end of file diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index f117c34f7..83faf0515 100755 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -3030,4 +3030,5 @@ BRAINSCORE = 评测任务 TRAIN = 训练任务 INFERENCE = 推理任务 BENCHMARK = 评测任务 +brain_area = 脑区 diff --git a/templates/repo/cloudbrain/benchmark/new.tmpl b/templates/repo/cloudbrain/benchmark/new.tmpl index 8367541d3..8832da932 100755 --- a/templates/repo/cloudbrain/benchmark/new.tmpl +++ b/templates/repo/cloudbrain/benchmark/new.tmpl @@ -106,11 +106,11 @@ placeholder={{.i18n.Tr "repo.modelarts.train_job.job_name"}} value="{{.display_job_name}}" tabindex="3" autofocus required maxlength="254">
-
+
- @@ -125,19 +125,6 @@ {{end}}
- -
@@ -149,8 +136,8 @@
- - - - - {{end}}
@@ -315,15 +297,11 @@ let repolink = {{.RepoLink }} let url_href = window.location.pathname.split('create')[0] $(".ui.button").attr('href', url_href) - $('.menu .item') .tab(); - $('#benchmark_types_id').change(function () { setChildType(); }) - - $(document).ready(() => { $('.ui.search.dropdown.job_type').dropdown({ onChange: function (value, text, $selectedItem) { @@ -368,7 +346,6 @@ } } } - function validate() { $('.ui.form') .form({ diff --git a/web_src/js/components/images/Images.vue b/web_src/js/components/images/Images.vue index 4c0eb7839..31e1f60b0 100644 --- a/web_src/js/components/images/Images.vue +++ b/web_src/js/components/images/Images.vue @@ -77,9 +77,11 @@ align="center" > -
-
-
-
- -
-
-
- - -
-
-
+
+
+
+
-
- 仅显示平台推荐 - - - {{dropdownPrivate}} - - - 全部 - 公开 - 私有 - - -
- -
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
+
+ + +
+
-
-
-
+
+ - + .header-wrapper { + background-color: #f5f5f6; + padding-top: 15px; + } + + .image_text { + padding: 25px 0 55px 0; + } + + #header { + position: relative; + top: -40px; + } + + .el-dropdown-menu__item--divided { + border-top: 1px solid blue; + } + + .el-table thead { + background-color: #f5f5f6; + } + + /deep/ .el-tabs__item:hover { + color: #000; + font-weight: 500; + + } + + /deep/ .el-tabs__item.is-active { + color: #000; + font-weight: 500; + } + + /deep/ .el-tabs__active-bar { + background-color: #000 + } + + #success { + background-color: #5bb973; + color: white; + } + + .text-over { + overflow: hidden; + text-overflow: ellipsis; + vertical-align: middle; + white-space: nowrap; + } + + .image_title { + display: inline-block; + + cursor: default; + color: rgb(66, 98, 144); + } + + .image_desc { + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + display: -webkit-box; + text-overflow: ellipsis; + overflow: hidden; + } + + .heart-stroke { + stroke: #FA8C16; + stroke-width: 2; + fill: #fff + } + + .stars_active { + fill: #FA8C16 !important; + stroke: #FA8C16 !important + } + + .header-new-drop { + width: 100%; + } + \ No newline at end of file diff --git a/web_src/js/components/images/selectImages.vue b/web_src/js/components/images/selectImages.vue index 0b76d5ae4..3359b2962 100644 --- a/web_src/js/components/images/selectImages.vue +++ b/web_src/js/components/images/selectImages.vue @@ -1,76 +1,87 @@ + .header-wrapper { + background-color: #f5f5f6; + padding-top: 15px; + } + + .image_text { + padding: 25px 0 55px 0; + } + + #header { + position: relative; + top: -40px; + } + + #success { + background-color: #5bb973; + color: white; + } + + .text-over { + overflow: hidden; + text-overflow: ellipsis; + vertical-align: middle; + white-space: nowrap; + } + + .image_title { + display: inline-block; + width: 80%; + cursor: default; + color: rgb(66, 98, 144); + } + + .image_desc { + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + display: -webkit-box; + text-overflow: ellipsis; + overflow: hidden; + } + + .heart-stroke { + stroke: #666; + stroke-width: 2; + fill: #fff + } + + .stars_active { + fill: #FA8C16 !important; + stroke: #FA8C16 !important + } + \ No newline at end of file From 7dd48b9e8d2f9e5b0932b015dcd6a01aa8ed590f Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Mon, 16 May 2022 14:25:04 +0800 Subject: [PATCH 31/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/cloudbrain.go | 5 +++++ modules/cloudbrain/cloudbrain.go | 6 +++++- routers/repo/cloudbrain.go | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index e1dc2cbd0..e28ba3ea5 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -1566,6 +1566,11 @@ func GetCloudbrainCountByUserID(userID int64, jobType string) (int, error) { return int(count), err } +func GetBenchmarkCountByUserID(userID int64) (int, error) { + count, err := x.In("status", JobWaiting, JobRunning).And("(job_type = ? or job_type = ? or job_type = ?) and user_id = ? and type = ?", string(JobTypeBenchmark), string(JobTypeBrainScore), string(JobTypeSnn4imagenet), userID, TypeCloudBrainOne).Count(new(Cloudbrain)) + return int(count), err +} + func GetCloudbrainNotebookCountByUserID(userID int64) (int, error) { count, err := x.In("status", ModelArtsCreateQueue, ModelArtsCreating, ModelArtsStarting, ModelArtsReadyToStart, ModelArtsResizing, ModelArtsStartQueuing, ModelArtsRunning, ModelArtsRestarting). And("job_type = ? and user_id = ? and type = ?", JobTypeDebug, userID, TypeCloudBrainTwo).Count(new(Cloudbrain)) diff --git a/modules/cloudbrain/cloudbrain.go b/modules/cloudbrain/cloudbrain.go index 417611ddf..3dee3a3fa 100755 --- a/modules/cloudbrain/cloudbrain.go +++ b/modules/cloudbrain/cloudbrain.go @@ -349,7 +349,7 @@ func GenerateTask(ctx *context.Context, displayJobName, jobName, image, command, } stringId := strconv.FormatInt(task.ID, 10) - if string(models.JobTypeBenchmark) == jobType { + if IsBenchmarkJob(jobType) { notification.NotifyOtherTask(ctx.User, ctx.Repo.Repository, stringId, displayJobName, models.ActionCreateBenchMarkTask) } else if string(models.JobTypeTrain) == jobType { notification.NotifyOtherTask(ctx.User, ctx.Repo.Repository, jobID, displayJobName, models.ActionCreateGPUTrainTask) @@ -360,6 +360,10 @@ func GenerateTask(ctx *context.Context, displayJobName, jobName, image, command, return nil } +func IsBenchmarkJob(jobType string) bool { + return string(models.JobTypeBenchmark) == jobType || string(models.JobTypeBrainScore) == jobType || string(models.JobTypeSnn4imagenet) == jobType +} + func RestartTask(ctx *context.Context, task *models.Cloudbrain, newID *string) error { dataActualPath := setting.Attachment.Minio.RealPath + setting.Attachment.Minio.Bucket + "/" + diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index 67e65f6f9..d4e2acdaa 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -1903,7 +1903,7 @@ func BenchMarkAlgorithmCreate(ctx *context.Context, form auth.CreateCloudBrainFo return } - count, err := models.GetCloudbrainCountByUserID(ctx.User.ID, string(models.JobTypeBenchmark)) + count, err := models.GetBenchmarkCountByUserID(ctx.User.ID) if err != nil { log.Error("GetCloudbrainCountByUserID failed:%v", err, ctx.Data["MsgID"]) cloudBrainNewDataPrepare(ctx) @@ -2040,7 +2040,7 @@ func ModelBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainForm) return } - count, err := models.GetCloudbrainCountByUserID(ctx.User.ID, jobType) + count, err := models.GetBenchmarkCountByUserID(ctx.User.ID) if err != nil { log.Error("GetCloudbrainCountByUserID failed:%v", err, ctx.Data["MsgID"]) cloudBrainNewDataPrepare(ctx) From 5bcd952e4aac35f6c023501e1cfd37d930853795 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Mon, 16 May 2022 14:46:29 +0800 Subject: [PATCH 32/37] =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- options/locale/locale_en-US.ini | 2 ++ options/locale/locale_zh-CN.ini | 1 + routers/repo/cloudbrain.go | 8 ++++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 6ef33ba75..6fdffa45e 100755 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -1100,6 +1100,8 @@ cloudbrain.benchmark.evaluate_mirror=Mirror cloudbrain.benchmark.evaluate_train=Train Script cloudbrain.benchmark.evaluate_test=Test Script cloudbrain.benchmark.types={"type":[{"id":1,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=detection","first":"Target detection","second":[{"id":1,"value":"None","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"yangzhx","repo_name":"detection_benchmark_script"}]},{"id":2,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=reid","first":"Target re-identification","second":[{"id":1,"value":"Vehicle re-identification","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"},{"id":2,"value":"Image-based person re-identification","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"}]},{"id":3,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=tracking","first":"Multi-target tracking","second":[{"id":1,"value":"None","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"lix07","repo_name":"MOT_benchmark_script"}]}]} +cloudbrain.morethanonejob=You already have a running or waiting task, create it after that task is over. + modelarts.infer_job_model = Model modelarts.infer_job_model_file = Model File diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index 83faf0515..fb86eaef7 100755 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -1111,6 +1111,7 @@ cloudbrain.benchmark.evaluate_train=训练程序 cloudbrain.benchmark.evaluate_test=测试程序 cloudbrain.benchmark.types={"type":[{"id":1,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=detection","first":"目标检测","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"yangzhx","repo_name":"detection_benchmark_script"}]},{"id":2,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=reid","first":"目标重识别","second":[{"id":1,"value":"车辆重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"},{"id":2,"value":"基于图像的行人重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"}]},{"id":3,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=tracking","first":"多目标跟踪","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"lix07","repo_name":"MOT_benchmark_script"}]}]} cloudbrain.benchmark.model.types={"type":[{"id":1,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=detection","first":"目标检测","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"yangzhx","repo_name":"detection_benchmark_script"}]},{"id":2,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=reid","first":"目标重识别","second":[{"id":1,"value":"车辆重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"},{"id":2,"value":"基于图像的行人重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"}]},{"id":3,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=tracking","first":"多目标跟踪","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"lix07","repo_name":"MOT_benchmark_script"}]}]} +cloudbrain.morethanonejob=您已经创建了一个正在等待或运行中的同类任务,请等任务结束再创建。 modelarts.infer_job_model = 模型名称 modelarts.infer_job_model_file = 模型文件 diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index d4e2acdaa..b06fea165 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -268,7 +268,7 @@ func CloudBrainCreate(ctx *context.Context, form auth.CreateCloudBrainForm) { if count >= 1 { log.Error("the user already has running or waiting task", ctx.Data["MsgID"]) cloudBrainNewDataPrepare(ctx) - ctx.RenderWithErr("you have already a running or waiting task, can not create more", tpl, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain.morethanonejob"), tpl, &form) return } } @@ -381,7 +381,7 @@ func CloudBrainRestart(ctx *context.Context) { if count >= 1 { log.Error("the user already has running or waiting task", ctx.Data["MsgID"]) resultCode = "-1" - errorMsg = "you have already a running or waiting task, can not create more" + errorMsg = ctx.Tr("repo.cloudbrain.morethanonejob") break } } @@ -1913,7 +1913,7 @@ func BenchMarkAlgorithmCreate(ctx *context.Context, form auth.CreateCloudBrainFo if count >= 1 { log.Error("the user already has running or waiting task", ctx.Data["MsgID"]) cloudBrainNewDataPrepare(ctx) - ctx.RenderWithErr("you have already a running or waiting task, can not create more", tplCloudBrainBenchmarkNew, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain.morethanonejob"), tplCloudBrainBenchmarkNew, &form) return } } @@ -2050,7 +2050,7 @@ func ModelBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainForm) if count >= 1 { log.Error("the user already has running or waiting task", ctx.Data["MsgID"]) cloudBrainNewDataPrepare(ctx) - ctx.RenderWithErr("you have already a running or waiting task, can not create more", tpl, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain.morethanonejob"), tpl, &form) return } } From 1ff63e73d52841b774a52a060d6638a19de24cec Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Mon, 16 May 2022 14:55:07 +0800 Subject: [PATCH 33/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routers/repo/cloudbrain.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index b06fea165..b14d29a83 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -544,6 +544,9 @@ func cloudBrainShow(ctx *context.Context, tpName base.TplName, jobType models.Jo task.BenchmarkType = ctx.Tr("repo.cloudbrain.benchmark.model") task.BenchmarkTypeName = task.JobType ctx.Data["BenchmarkTypeName"] = task.JobType + if task.JobType == string(models.JobTypeBrainScore) { + ctx.Data["BenchmarkChildTypeName"] = getBrainRegion(task.BenchmarkChildTypeID) + } } From 29017c16c5254b261a52a8c82c98b0cfd9b65091 Mon Sep 17 00:00:00 2001 From: zhoupzh Date: Mon, 16 May 2022 15:03:13 +0800 Subject: [PATCH 34/37] fix issue --- templates/repo/cloudbrain/benchmark/new.tmpl | 40 +- templates/repo/cloudbrain/benchmark/show.tmpl | 671 ++++++++++++++------------ 2 files changed, 366 insertions(+), 345 deletions(-) diff --git a/templates/repo/cloudbrain/benchmark/new.tmpl b/templates/repo/cloudbrain/benchmark/new.tmpl index 8832da932..f6f253387 100755 --- a/templates/repo/cloudbrain/benchmark/new.tmpl +++ b/templates/repo/cloudbrain/benchmark/new.tmpl @@ -17,20 +17,6 @@ } - .width { - width: 100% !important; - } - - .width80 { - width: 80.7% !important; - margin-left: 10px; - } - - .width85 { - width: 85% !important; - margin-left: 4.5rem !important; - } - .width81 { margin-left: 1.5rem; width: 81% !important; @@ -40,26 +26,6 @@ width: 48.5% !important; } - .add { - font-size: 18px; - padding: 0.5rem; - border: 1px solid rgba(187, 187, 187, 100); - border-radius: 0px 5px 5px 0px; - line-height: 21px; - text-align: center; - color: #C2C7CC; - } - - .min { - font-size: 18px; - padding: 0.5rem; - border: 1px solid rgba(187, 187, 187, 100); - border-radius: 5px 0px 0px 5px; - line-height: 21px; - text-align: center; - color: #C2C7CC; - } - .nowrapx { white-space: nowrap !important; } @@ -151,7 +117,7 @@ data-position="right center" data-variation="mini"> {{.i18n.Tr "cloudbrain.view_sample"}} + href="https://git.openi.org.cn/BDIP/snn4imagenet">{{.i18n.Tr "cloudbrain.view_sample"}}
@@ -308,10 +274,10 @@ console.log(value, text) if (value === "BRAINSCORE") { $('#brainscore_child_type').css('display', 'block') - $('#benchmark_model_example').attr('href', 'https://git.openi.org.cn/yult/similarity2brain_ann') + $('#benchmark_model_example').attr('href', 'https://git.openi.org.cn/BDIP/similarity2brain_ann') } else { $('#brainscore_child_type').css('display', 'none') - $('#benchmark_model_example').attr('href', 'https://git.openi.org.cn/yult/snn4imagenet') + $('#benchmark_model_example').attr('href', 'https://git.openi.org.cn/BDIP/snn4imagenet') } } }) diff --git a/templates/repo/cloudbrain/benchmark/show.tmpl b/templates/repo/cloudbrain/benchmark/show.tmpl index 5b7474ca1..2a2404f7c 100755 --- a/templates/repo/cloudbrain/benchmark/show.tmpl +++ b/templates/repo/cloudbrain/benchmark/show.tmpl @@ -1,165 +1,199 @@ {{template "base/head" .}}
@@ -171,7 +205,7 @@ td, th {
-{{template "repo/header" .}} + {{template "repo/header" .}}

+
{{.displayJobName}}
+

{{range $k ,$v := .version_list_task}} -
+
@@ -197,18 +232,23 @@ td, th {
- {{if not (eq .StartTime 0)}} - {{TimeSinceUnix1 .StartTime}} - {{else}} - {{TimeSinceUnix1 .CreatedUnix}} - {{end}} - + {{if not (eq .StartTime 0)}} + {{TimeSinceUnix1 .StartTime}} + {{else}} + {{TimeSinceUnix1 .CreatedUnix}} + + {{end}} + {{$.i18n.Tr "repo.modelarts.status"}}: - {{.Status}} + {{.Status}} - {{$.i18n.Tr "repo.modelarts.train_job.dura_time"}}: - {{$.duration}} + {{$.i18n.Tr "repo.modelarts.train_job.dura_time"}}: + {{$.duration}}
@@ -219,8 +259,10 @@ td, th {
@@ -270,11 +312,12 @@ td, th { -
+
{{if not (eq .StartTime 0)}} - {{TimeSinceUnix1 .StartTime}} + {{TimeSinceUnix1 .StartTime}} {{else}} - -- + -- {{end}}
@@ -286,11 +329,12 @@ td, th { -
+
{{if not (eq .EndTime 0)}} - {{TimeSinceUnix1 .EndTime}} + {{TimeSinceUnix1 .EndTime}} {{else}} - -- + -- {{end}}
@@ -301,7 +345,8 @@ td, th { -
+
{{$.duration}}
@@ -320,11 +365,12 @@ td, th { {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_scenes"}} - + -
+
{{.BenchmarkType}}
@@ -332,135 +378,142 @@ td, th { {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_type"}} - + -
- {{.BenchmarkTypeName}} +
+ {{.BenchmarkTypeName}}
- +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_train"}} - -
- {{if eq .BenchmarkType "Benchmark"}} - train.py - {{else}} - -- - {{end}} -
-
- {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_test"}} - -
- {{if eq .BenchmarkType "Benchmark"}} - test.py - {{else}} - -- - {{end}} -
-
- {{$.i18n.Tr "repo.modelarts.train_job.description"}} - -
- {{if .Description}} - {{.Description}} - {{else}} - -- - {{end}} -
-
- {{$.i18n.Tr "cloudbrain.gpu_type"}} - -
- {{$.resource_type}} -
-
- {{$.i18n.Tr "repo.modelarts.train_job.standard"}} - -
- {{$.resource_spec}} -
-
- {{$.i18n.Tr "repo.model_manager"}} - -
- {{$.datasetname}} -
-
- {{$.i18n.Tr "repo.cloudbrain_creator"}} - -
- {{.User.Name}} -
-
- {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_child_type"}} - -
- {{if $.BenchmarkChildTypeName}} - {{$.BenchmarkChildTypeName}} - {{else}} - -- - {{end}} -
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_train"}} + +
+ {{if eq .BenchmarkType "Benchmark"}} + train.py + {{else}} + -- + {{end}} +
+
+ {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_test"}} + +
+ {{if eq .BenchmarkType "Benchmark"}} + test.py + {{else}} + -- + {{end}} +
+
+ {{$.i18n.Tr "repo.modelarts.train_job.description"}} + +
+ {{if .Description}} + {{.Description}} + {{else}} + -- + {{end}} +
+
+ {{$.i18n.Tr "cloudbrain.gpu_type"}} + +
+ {{$.resource_type}} +
+
+ {{$.i18n.Tr "repo.modelarts.train_job.standard"}} + +
+ {{$.resource_spec}} +
+
+ {{$.i18n.Tr "repo.model_manager"}} + +
+ {{$.datasetname}} +
+
+ {{$.i18n.Tr "repo.cloudbrain_creator"}} + +
+ {{.User.Name}} +
+
+ {{if eq .BenchmarkTypeName "BRAINSCORE"}} + {{$.i18n.Tr "cloudbrain.brain_area"}} + {{else}} + {{$.i18n.Tr "repo.cloudbrain.benchmark.evaluate_child_type"}} + {{end}} + +
+ + {{if $.BenchmarkChildTypeName}} + {{$.BenchmarkChildTypeName}} + {{else}} + -- + {{end}} +
+
+
@@ -471,9 +524,10 @@ td, th { -
- - +
+ +

                             
@@ -512,19 +566,20 @@ td, th { {{template "base/footer" .}} + \ No newline at end of file From 986c36f5e33036509b03214d1e4859a88b243cab Mon Sep 17 00:00:00 2001 From: zhoupzh Date: Mon, 16 May 2022 15:08:19 +0800 Subject: [PATCH 35/37] fix issue --- templates/repo/cloudbrain/benchmark/new.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/repo/cloudbrain/benchmark/new.tmpl b/templates/repo/cloudbrain/benchmark/new.tmpl index f6f253387..393076df3 100755 --- a/templates/repo/cloudbrain/benchmark/new.tmpl +++ b/templates/repo/cloudbrain/benchmark/new.tmpl @@ -53,7 +53,7 @@ {{if eq .benchmarkMode "model"}} -
+ {{.CsrfTokenHtml}}
From 4d09db05b5d50fe031a1424e945b0681646f92a6 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Mon, 16 May 2022 15:23:27 +0800 Subject: [PATCH 36/37] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- options/locale/locale_zh-CN.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index fb86eaef7..ea65d8fc8 100755 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -1111,7 +1111,7 @@ cloudbrain.benchmark.evaluate_train=训练程序 cloudbrain.benchmark.evaluate_test=测试程序 cloudbrain.benchmark.types={"type":[{"id":1,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=detection","first":"目标检测","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"yangzhx","repo_name":"detection_benchmark_script"}]},{"id":2,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=reid","first":"目标重识别","second":[{"id":1,"value":"车辆重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"},{"id":2,"value":"基于图像的行人重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"}]},{"id":3,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=tracking","first":"多目标跟踪","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"lix07","repo_name":"MOT_benchmark_script"}]}]} cloudbrain.benchmark.model.types={"type":[{"id":1,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=detection","first":"目标检测","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"yangzhx","repo_name":"detection_benchmark_script"}]},{"id":2,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=reid","first":"目标重识别","second":[{"id":1,"value":"车辆重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"},{"id":2,"value":"基于图像的行人重识别","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"JiahongXu","repo_name":"benchmark_reID_script"}]},{"id":3,"rank_link":"https://git.openi.org.cn/benchmark/?username=admin&algType=tracking","first":"多目标跟踪","second":[{"id":1,"value":"无","attachment":"84cf39c4-d8bc-41aa-aaa3-182ce289b105","owner":"lix07","repo_name":"MOT_benchmark_script"}]}]} -cloudbrain.morethanonejob=您已经创建了一个正在等待或运行中的同类任务,请等任务结束再创建。 +cloudbrain.morethanonejob=您已经创建了一个正在等待或运行中的同类任务,请等待任务结束再创建。 modelarts.infer_job_model = 模型名称 modelarts.infer_job_model_file = 模型文件 From 54ac5e6b4bf5475afea181e01ca8ce5377eb0b87 Mon Sep 17 00:00:00 2001 From: zhoupzh Date: Mon, 16 May 2022 15:35:56 +0800 Subject: [PATCH 37/37] fix issue --- web_src/js/components/images/Images.vue | 2 +- web_src/js/components/images/adminImages.vue | 2 +- web_src/js/components/images/selectImages.vue | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web_src/js/components/images/Images.vue b/web_src/js/components/images/Images.vue index 31e1f60b0..2a42b8b9e 100644 --- a/web_src/js/components/images/Images.vue +++ b/web_src/js/components/images/Images.vue @@ -81,7 +81,7 @@ - + - + diff --git a/web_src/js/components/images/selectImages.vue b/web_src/js/components/images/selectImages.vue index 3359b2962..cc706fd86 100644 --- a/web_src/js/components/images/selectImages.vue +++ b/web_src/js/components/images/selectImages.vue @@ -37,7 +37,7 @@ - {{publicData.description}}
@@ -73,7 +73,7 @@ - {{customData.description}} @@ -125,7 +125,7 @@ - {{starData.description}}