| @@ -81,7 +81,8 @@ func GetQueuesDetail() (*map[string]int, error) { | |||
| var jobResult models.QueueDetailResult | |||
| var result = make(map[string]int, 0) | |||
| retry := 0 | |||
| sendjob: | |||
| res, err := client.R(). | |||
| SetHeader("Content-Type", "application/json"). | |||
| SetAuthToken(TOKEN). | |||
| @@ -92,6 +93,12 @@ func GetQueuesDetail() (*map[string]int, error) { | |||
| return nil, fmt.Errorf("resty get queues detail failed: %s", err) | |||
| } | |||
| if jobResult.Code == errInvalidToken && retry < 1 { | |||
| retry++ | |||
| _ = loginCloudbrain() | |||
| goto sendjob | |||
| } | |||
| if jobResult.Code != Success { | |||
| return nil, fmt.Errorf("jobResult err: %s", res.String()) | |||
| } | |||
| @@ -1209,7 +1209,7 @@ modelarts.infer_job_model_file = Model File | |||
| modelarts.infer_job = Inference Job | |||
| modelarts.infer_job.model_version = Model/Version | |||
| modelarts.infer_job.select_model = Select Model | |||
| modelarts.infer_job.boot_file_helper=The startup file is the entry file for your program execution and must end in.py.Such as inference.py, main.py, example/inference. Py, case/main.py. | |||
| modelarts.infer_job.boot_file_helper=The startup file is the entry file for your program execution and must end in.py.Such as inference.py, main.py, example/inference.py, case/main.py. | |||
| modelarts.infer_job.tooltip = The model has been deleted and cannot be viewed. | |||
| modelarts.download_log=Download log file | |||
| @@ -1232,7 +1232,7 @@ model.manage.version = Version | |||
| model.manage.label = Label | |||
| model.manage.size = Size | |||
| model.manage.create_time = Create Time | |||
| model.manage.Description = Description | |||
| model.manage.description = Description | |||
| model.manage.Accuracy = Accuracy | |||
| model.manage.F1 = F1 | |||
| model.manage.Precision = Precision | |||
| @@ -1244,6 +1244,49 @@ model.convert=Model Transformation | |||
| model.list=Model List | |||
| model.manage.create_new_convert_task=Create Model Transformation Task | |||
| model.manage.notcreatemodel=No model has been created. | |||
| model.manage.init1=Code version: You have not initialized the code repository, please | |||
| model.manage.init2=initialized first ; | |||
| model.manage.createtrainjob_tip=Training task: you haven't created a training task, please create it first | |||
| model.manage.createtrainjob=Training task | |||
| model.manage.delete=Delete Model | |||
| model.manage.delete_confirm=Are you sure to delete this model? Once this model is deleted, it cannot be restored. | |||
| model.manage.select.trainjob=Select train task | |||
| model.manage.select.version=Select version | |||
| model.manage.engine=Model engine | |||
| model.manage.select.engine=Select model engine | |||
| model.manage.modelfile=Model file | |||
| model.manage.modellabel=Model label | |||
| model.manage.modeldesc=Model description | |||
| model.manage.baseinfo=Base Information | |||
| modelconvert.notcreate=No model conversion task has been created. | |||
| modelconvert.importfirst1=Please import first | |||
| modelconvert.importfirst2=download model | |||
| modelconvert.importfirst3=, then converts it. | |||
| modelconvert.download=Download | |||
| modelconvert.taskname=Task name | |||
| modelconvert.modelname=Model name | |||
| modelconvert.selectmodel=Select model | |||
| modelconvert.modelversion=Model version | |||
| modelconvert.selectversion=Select version | |||
| modelconvert.selectmodelfile=Select model file | |||
| modelconvert.taskstatus=Status | |||
| modelconvert.srcengine=Source model engine | |||
| modelconvert.outputformat=Output format | |||
| modelconvert.createtime=Created time | |||
| modelconvert.inputdataformat=Input data format | |||
| modelconvert.inputshape=Input tensor shape | |||
| modelconvert.inputshapetip=For example: 1,1,32,32, corresponding to the input data format. | |||
| modelconvert.netoutputdata=Network output data type | |||
| modelconvert.taskdesc=Task description | |||
| modelconvert.newtask=New | |||
| modelconvert.createtask=Create model transformation task | |||
| modelconvert.taskurlname=Model transformation task | |||
| log_scroll_start=Scroll to top | |||
| log_scroll_end=Scroll to bottom | |||
| modelconvert.tasknameempty=Please enter a task name. | |||
| modelconvert.inputshapeerror=Format input error, please input such as: 1,1,32,32, corresponding to the input data format. | |||
| modelconvert.manage.create_error1=A model transformation task with the same name already exists. | |||
| modelconvert.manage.create_error2=Only one running model transformation task can be created. | |||
| modelconvert.manage.model_not_exist=The model does not exist. | |||
| @@ -1257,6 +1257,50 @@ model.convert=模型转换任务 | |||
| model.list=模型列表 | |||
| model.manage.create_new_convert_task=创建模型转换任务 | |||
| model.manage.notcreatemodel=未创建过模型 | |||
| model.manage.init1=代码版本:您还没有初始化代码仓库,请先 | |||
| model.manage.init2=创建代码版本; | |||
| model.manage.createtrainjob_tip=训练任务:您还没创建过训练任务,请先创建 | |||
| model.manage.createtrainjob=训练任务 | |||
| model.manage.delete=删除模型 | |||
| model.manage.delete_confirm=你确认删除该模型么?此模型一旦删除不可恢复。 | |||
| model.manage.select.trainjob=选择训练任务 | |||
| model.manage.select.version=选择版本 | |||
| model.manage.engine=模型框架 | |||
| model.manage.select.engine=选择模型框架 | |||
| model.manage.modelfile=模型文件 | |||
| model.manage.modellabel=模型标签 | |||
| model.manage.modeldesc=模型描述 | |||
| model.manage.baseinfo=基本信息 | |||
| modelconvert.notcreate=未创建过模型转换任务 | |||
| modelconvert.importfirst1=请您先导入 | |||
| modelconvert.importfirst2=模型下载 | |||
| modelconvert.importfirst3=,然后再对其进行转换。 | |||
| modelconvert.download=下载 | |||
| modelconvert.taskname=任务名称 | |||
| modelconvert.modelname=模型名称 | |||
| modelconvert.selectmodel=选择模型 | |||
| modelconvert.modelversion=模型版本 | |||
| modelconvert.selectversion=选择版本 | |||
| modelconvert.selectmodelfile=选择模型文件 | |||
| modelconvert.taskstatus=状态 | |||
| modelconvert.srcengine=原模型框架 | |||
| modelconvert.outputformat=转换后格式 | |||
| modelconvert.createtime=创建时间 | |||
| modelconvert.inputdataformat=输入数据格式 | |||
| modelconvert.inputshape=输入张量形状 | |||
| modelconvert.inputshapetip=如:1,1,32,32,与输入数据格式对应。 | |||
| modelconvert.netoutputdata=网络输出数据类型 | |||
| modelconvert.taskdesc=任务描述 | |||
| modelconvert.newtask=新建任务 | |||
| modelconvert.createtask=创建模型转换任务 | |||
| modelconvert.taskurlname=模型转换任务 | |||
| log_scroll_start=滚动到顶部 | |||
| log_scroll_end=滚动到底部 | |||
| modelconvert.tasknameempty=请输入任务名称。 | |||
| modelconvert.inputshapeerror=格式输入错误,请输入如:1,1,32,32,与输入数据格式对应。 | |||
| modelconvert.manage.create_error1=相同的名称模型转换任务已经存在。 | |||
| modelconvert.manage.create_error2=只能创建一个正在运行的模型转换任务。 | |||
| modelconvert.manage.model_not_exist=选择的模型不存在。 | |||
| @@ -134,7 +134,7 @@ | |||
| </div> | |||
| </form> | |||
| {{else}} | |||
| <form class="ui form alogrithm_form" action="{{.Link}}?benchmarkMode=alogrithm" method="post"> | |||
| <form id="form_id" class="ui form alogrithm_form" action="{{.Link}}?benchmarkMode=alogrithm" method="post"> | |||
| {{.CsrfTokenHtml}} | |||
| <input type="hidden" name="action" value="update"> | |||
| <input type="hidden" name="job_type" value="BENCHMARK"> | |||
| @@ -178,8 +178,7 @@ | |||
| </div> | |||
| <div class="required unite inline min_title fields" style="width: 90%;margin-left: 5.7rem;"> | |||
| <div class="required eight wide field"> | |||
| <label | |||
| style="font-weight: normal;white-space: nowrap;">{{.i18n.Tr "repo.cloudbrain.benchmark.evaluate_type"}}</label> | |||
| <label style="font-weight: normal;white-space: nowrap;">{{.i18n.Tr "repo.cloudbrain.benchmark.evaluate_type"}}</label> | |||
| <select class="ui fluid selection search dropdown" id="benchmark_types_id" | |||
| name="benchmark_types_id"> | |||
| @@ -193,12 +192,9 @@ | |||
| </select> | |||
| </div> | |||
| <div class="eight wide field" id="engine_name"> | |||
| <input type="hidden" id="benchmark_child_types_id_hidden" | |||
| name="benchmark_child_types_id_hidden" value="{{.benchmark_child_types_id_hidden}}"> | |||
| <label | |||
| style="font-weight: normal;white-space: nowrap;">{{.i18n.Tr "repo.cloudbrain.benchmark.evaluate_child_type"}}</label> | |||
| <select class="ui fluid selection dropdown nowrapx" id="benchmark_child_types_id" | |||
| style='width: 100%;' name="benchmark_child_types_id"> | |||
| <input type="hidden" id="benchmark_child_types_id_hidden" name="benchmark_child_types_id_hidden" value="{{.benchmark_child_types_id_hidden}}"> | |||
| <label style="font-weight: normal;white-space: nowrap;">{{.i18n.Tr "repo.cloudbrain.benchmark.evaluate_child_type"}}</label> | |||
| <select class="ui fluid selection dropdown nowrapx" id="benchmark_child_types_id" style='width: 100%;' name="benchmark_child_types_id"> | |||
| </select> | |||
| </div> | |||
| </div> | |||
| @@ -388,17 +388,19 @@ | |||
| let value = '' | |||
| value += `<div class="two fields width85" id= "para${i}">` | |||
| value += '<div class="field">' | |||
| let placeholder_value='{{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}' | |||
| let placeholder_name='{{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}' | |||
| if(flag){ | |||
| value +=`<input type="text" class="shipping_first-name" value="${paramsObject.label}">` | |||
| }else{ | |||
| value +='<input type="text" class="shipping_first-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}>' | |||
| value +='<input type="text" class="shipping_first-name" required placeholder="' + placeholder_name+ '">' | |||
| } | |||
| value += '</div>' | |||
| value += '<div class="field">' | |||
| if(flag){ | |||
| value +=`<input type="text" class="shipping_last-name" value="${paramsObject.value}">` | |||
| }else{ | |||
| value +='<input type="text" class="shipping_last-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}>' | |||
| value +='<input type="text" class="shipping_last-name" required placeholder="' + placeholder_value+ '">' | |||
| } | |||
| value += '</div>' | |||
| value += '<span><i class="trash icon"></i></span>' | |||
| @@ -297,17 +297,19 @@ | |||
| let value = '' | |||
| value += `<div class="two fields width85" id= "para${i}">` | |||
| value += '<div class="field">' | |||
| let placeholder_value='{{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}' | |||
| let placeholder_name='{{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}' | |||
| if(flag){ | |||
| value +=`<input type="text" class="shipping_first-name" value="${paramsObject.label}">` | |||
| }else{ | |||
| value +='<input type="text" class="shipping_first-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}>' | |||
| value +='<input type="text" class="shipping_first-name" required placeholder="' + placeholder_name+ '">' | |||
| } | |||
| value += '</div>' | |||
| value += '<div class="field">' | |||
| if(flag){ | |||
| value +=`<input type="text" class="shipping_last-name" value="${paramsObject.value}">` | |||
| }else{ | |||
| value +='<input type="text" class="shipping_last-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}>' | |||
| value +='<input type="text" class="shipping_last-name" required placeholder="' + placeholder_value + '">' | |||
| } | |||
| value += '</div>' | |||
| value += '<span><i class="trash icon"></i></span>' | |||
| @@ -584,7 +584,7 @@ | |||
| <div id="newmodel"> | |||
| <div class="ui modal second"> | |||
| <div class="header" style="padding: 1rem;background-color: rgba(240, 240, 240, 100);"> | |||
| <h4 id="model_header">导入新模型</h4> | |||
| <h4 id="model_header">{{.i18n.Tr "repo.model.manage.import_new_model"}}</h4> | |||
| </div> | |||
| <div class="content content-padding"> | |||
| <form id="formId" method="POST" class="ui form"> | |||
| @@ -594,26 +594,26 @@ | |||
| <input type="hidden" name="trainTaskCreate" value="true"> | |||
| <div class="required inline field"> | |||
| <label>训练任务</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.createtrainjob"}}</label> | |||
| <input type="hidden" class="width83" id="JobId" name="JobId" readonly required> | |||
| <input type="hidden" id="VersionName" name="VersionName" value="V0001"> | |||
| <input style="width: 45%;" id="JobName" readonly required> | |||
| </div> | |||
| <div class="required inline field" id="modelname"> | |||
| <label>模型名称</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.model_name"}}</label> | |||
| <input style="width: 45%;" id="name" name="Name" required maxlength="25" | |||
| onkeyup="this.value=this.value.replace(/[, ]/g,'')"> | |||
| </div> | |||
| <div class="required inline field" id="verionname"> | |||
| <label>模型版本</label> | |||
| <label>{{.i18n.Tr "repo.modelconvert.modelversion"}}</label> | |||
| <input style="width: 45%;" id="version" name="Version" value="" readonly required maxlength="255"> | |||
| </div> | |||
| <div class="unite min_title inline field required"> | |||
| <label>模型框架</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.engine"}}</label> | |||
| <div class="ui dropdown selection search width70" id="choice_Engine"> | |||
| <input type="hidden" id="Engine" name="Engine" required> | |||
| <div class="default text">选择模型框架</div> | |||
| <div class="default text">{{.i18n.Tr "repo.model.manage.select.engine"}}</div> | |||
| <i class="dropdown icon"></i> | |||
| <div class="menu" id="job-Engine"> | |||
| <option class="active item" data-value="0">PyTorch</option> | |||
| @@ -628,7 +628,7 @@ | |||
| </div> | |||
| <div class="unite min_title inline fields required"> | |||
| <div class="field required"> | |||
| <label for="modelSelectedFile">模型文件</label> | |||
| <label for="modelSelectedFile">{{.i18n.Tr "repo.model.manage.modelfile"}}</label> | |||
| </div> | |||
| <div class="thirteen wide field" style="position:relative"> | |||
| <input id="modelSelectedFile" type="text" readonly required onclick="showMenu();" name="modelSelectedFile" > | |||
| @@ -638,12 +638,12 @@ | |||
| </div> | |||
| </div> | |||
| <div class="inline field"> | |||
| <label>模型标签</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.modellabel"}}</label> | |||
| <input style="width: 83%;margin-left: 7px;" id="label" name="Label" maxlength="255" | |||
| placeholder='{{.i18n.Tr "repo.modelarts.train_job.label_place"}}'> | |||
| </div> | |||
| <div class="inline field"> | |||
| <label for="description">模型描述</label> | |||
| <label for="description">{{.i18n.Tr "repo.model.manage.modeldesc"}}</label> | |||
| <textarea style="width: 83%;margin-left: 7px;" id="Description" name="Description" rows="3" | |||
| maxlength="255" placeholder='{{.i18n.Tr "repo.modelarts.train_job.new_place"}}' | |||
| onchange="this.value=this.value.substring(0, 255)" | |||
| @@ -243,17 +243,19 @@ | |||
| let value = '' | |||
| value += `<div class="two fields width85" id= "para${i}">` | |||
| value += '<div class="field">' | |||
| let placeholder_value='{{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}' | |||
| let placeholder_name='{{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}' | |||
| if(flag){ | |||
| value +=`<input type="text" class="shipping_first-name" value="${paramsObject.label}">` | |||
| }else{ | |||
| value +='<input type="text" class="shipping_first-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}>' | |||
| value +='<input type="text" class="shipping_first-name" required placeholder="' + placeholder_name+ '">' | |||
| } | |||
| value += '</div>' | |||
| value += '<div class="field">' | |||
| if(flag){ | |||
| value +=`<input type="text" class="shipping_last-name" value="${paramsObject.value}">` | |||
| }else{ | |||
| value +='<input type="text" class="shipping_last-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}>' | |||
| value +='<input type="text" class="shipping_last-name" required placeholder="' + placeholder_value+ '">' | |||
| } | |||
| value += '</div>' | |||
| value += '<span><i class="trash icon"></i></span>' | |||
| @@ -269,17 +269,19 @@ | |||
| let value = '' | |||
| value += `<div class="two fields width85" id= "para${i}">` | |||
| value += '<div class="field">' | |||
| let placeholder_value='{{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}' | |||
| let placeholder_name='{{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}' | |||
| if(flag){ | |||
| value +=`<input type="text" class="shipping_first-name" value="${paramsObject.label}">` | |||
| }else{ | |||
| value +='<input type="text" class="shipping_first-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}>' | |||
| value +='<input type="text" class="shipping_first-name" required placeholder="' + placeholder_name+ '">' | |||
| } | |||
| value += '</div>' | |||
| value += '<div class="field">' | |||
| if(flag){ | |||
| value +=`<input type="text" class="shipping_last-name" value="${paramsObject.value}">` | |||
| }else{ | |||
| value +='<input type="text" class="shipping_last-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}>' | |||
| value +='<input type="text" class="shipping_last-name" required placeholder="' + placeholder_value+ '">' | |||
| } | |||
| value += '</div>' | |||
| value += '<span><i class="trash icon"></i></span>' | |||
| @@ -470,11 +470,11 @@ | |||
| <div class="ui tab" data-tab="second{{$k}}"> | |||
| <div style="position: relative;"> | |||
| <span> | |||
| <a title="滚动到顶部" style="position: absolute; right: -32px;cursor: pointer;" | |||
| <a title="{{$.i18n.Tr "repo.log_scroll_start"}}" style="position: absolute; right: -32px;cursor: pointer;" | |||
| class="log_top" data-version="{{.VersionName}}"><i class="icon-to-top"></i></a> | |||
| </span> | |||
| <span class="log-info-{{.VersionName}}"> | |||
| <a title="滚动到底部" style="position: absolute; bottom: 10px;right: -32px;cursor: pointer;" | |||
| <a title="{{$.i18n.Tr "repo.log_scroll_end"}}" style="position: absolute; bottom: 10px;right: -32px;cursor: pointer;" | |||
| class="log_bottom" data-version="{{.VersionName}}"><i | |||
| class="icon-to-bottom"></i></a> | |||
| </span> | |||
| @@ -541,7 +541,7 @@ | |||
| <div id="newmodel"> | |||
| <div class="ui modal second"> | |||
| <div class="header" style="padding: 1rem;background-color: rgba(240, 240, 240, 100);"> | |||
| <h4 id="model_header">导入新模型</h4> | |||
| <h4 id="model_header">{{.i18n.Tr "repo.model.manage.import_new_model"}}</h4> | |||
| </div> | |||
| <div class="content content-padding"> | |||
| <form id="formId" method="POST" class="ui form"> | |||
| @@ -551,26 +551,26 @@ | |||
| <input type="hidden" name="trainTaskCreate" value="true"> | |||
| <div class="required inline field"> | |||
| <label>训练任务</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.createtrainjob"}}</label> | |||
| <input type="hidden" class="width83" id="JobId" name="JobId" readonly required> | |||
| <input type="hidden" id="VersionName" name="VersionName" value="V0001"> | |||
| <input style="width: 45%;" id="JobName" readonly required> | |||
| </div> | |||
| <div class="required inline field" id="modelname"> | |||
| <label>模型名称</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.model_name"}}</label> | |||
| <input style="width: 45%;" id="name" name="Name" required maxlength="25" | |||
| onkeyup="this.value=this.value.replace(/[, ]/g,'')"> | |||
| </div> | |||
| <div class="required inline field" id="verionname"> | |||
| <label>模型版本</label> | |||
| <label>{{.i18n.Tr "repo.modelconvert.modelversion"}}</label> | |||
| <input style="width: 45%;" id="version" name="Version" value="" readonly required maxlength="255"> | |||
| </div> | |||
| <div class="unite min_title inline field required"> | |||
| <label>模型框架</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.engine"}}</label> | |||
| <div class="ui dropdown selection search width70" id="choice_Engine"> | |||
| <input type="hidden" id="Engine" name="Engine" required> | |||
| <div class="default text">选择模型框架</div> | |||
| <div class="default text">{{.i18n.Tr "repo.model.manage.select.engine"}}</div> | |||
| <i class="dropdown icon"></i> | |||
| <div class="menu" id="job-Engine"> | |||
| <option class="active item" data-value="0">PyTorch</option> | |||
| @@ -586,7 +586,7 @@ | |||
| </div> | |||
| <div class="unite min_title inline fields required"> | |||
| <div class="field required"> | |||
| <label for="modelSelectedFile">模型文件</label> | |||
| <label for="modelSelectedFile">{{.i18n.Tr "repo.model.manage.modelfile"}}</label> | |||
| </div> | |||
| <div class="thirteen wide field" style="position:relative"> | |||
| <input id="modelSelectedFile" type="text" readonly required onclick="showMenu();" name="modelSelectedFile" > | |||
| @@ -596,12 +596,12 @@ | |||
| </div> | |||
| </div> | |||
| <div class="inline field"> | |||
| <label>模型标签</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.modellabel"}}</label> | |||
| <input style="width: 83%;margin-left: 7px;" id="label" name="Label" maxlength="255" | |||
| placeholder='{{.i18n.Tr "repo.modelarts.train_job.label_place"}}'> | |||
| </div> | |||
| <div class="inline field"> | |||
| <label for="description">模型描述</label> | |||
| <label for="description">{{.i18n.Tr "repo.model.manage.modeldesc"}}</label> | |||
| <textarea style="width: 83%;margin-left: 7px;" id="Description" name="Description" rows="3" | |||
| maxlength="255" placeholder='{{.i18n.Tr "repo.modelarts.train_job.new_place"}}' | |||
| onchange="this.value=this.value.substring(0, 255)" | |||
| @@ -196,7 +196,7 @@ | |||
| {{end}} | |||
| </select> | |||
| </div> | |||
| <span class="tooltips" style="margin-left: 11.5rem;margin-bottom: 1rem;"></span> | |||
| <!-- 数据集 --> | |||
| <div id="select-multi-dataset"> | |||
| @@ -409,12 +409,14 @@ | |||
| // 参数增加、删除、修改、保存 | |||
| function Add_parameter(i){ | |||
| let placeholder_value='{{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}' | |||
| let placeholder_name='{{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}' | |||
| value = '<div class="two fields width85" id= "para'+ i +'">' + | |||
| '<div class="field">' + | |||
| '<input type="text" name="shipping_first-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}> ' + | |||
| '<input type="text" name="shipping_first-name" required placeholder="' + placeholder_name+ '">' + | |||
| '</div> ' + | |||
| '<div class="field"> ' + | |||
| '<input type="text" name="shipping_last-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}>' + | |||
| '<input type="text" name="shipping_last-name" required placeholder="' + placeholder_value + '">' + | |||
| '</div>'+ | |||
| '<span>' + | |||
| '<i class="trash icon">' + | |||
| @@ -76,10 +76,10 @@ | |||
| {{range .para}} | |||
| <div class="two fields"> | |||
| <div class="field"> | |||
| <input type="text" name="shipping_first-name" placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}> | |||
| <input type="text" name="shipping_first-name" placeholder="{{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}"> | |||
| </div> | |||
| <div class="field"> | |||
| <input type="text" name="shipping_last-name" placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}> | |||
| <input type="text" name="shipping_last-name" placeholder="{{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}"> | |||
| </div> | |||
| <span> | |||
| <i class="trash icon"> | |||
| @@ -151,12 +151,14 @@ | |||
| // 参数增加、删除、修改、保存 | |||
| function Add_parameter(){ | |||
| let placeholder_value='{{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}' | |||
| let placeholder_name='{{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}' | |||
| value = '<div class="two fields">' + | |||
| '<div class="field">' + | |||
| '<input type="text" name="shipping_first-name" placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}> ' + | |||
| '<input type="text" name="shipping_first-name" placeholder="' + placeholder_name+ '">' + | |||
| '</div> ' + | |||
| '<div class="field"> ' + | |||
| '<input type="text" name="shipping_last-name" placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}>' + | |||
| '<input type="text" name="shipping_last-name" placeholder="' + placeholder_value+ '">' + | |||
| '</div>'+ | |||
| '<span>' + | |||
| '<i class="trash icon">' + | |||
| @@ -332,12 +332,14 @@ | |||
| }); | |||
| // 参数增加、删除、修改、保存 | |||
| function Add_parameter(i) { | |||
| let placeholder_value='{{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}' | |||
| let placeholder_name='{{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}' | |||
| value = '<div class="two fields width85" id= "para' + i + '">' + | |||
| '<div class="field">' + | |||
| '<input type="text" name="shipping_first-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}> ' + | |||
| '<input type="text" name="shipping_first-name" required placeholder="' + placeholder_name+ '">' + | |||
| '</div> ' + | |||
| '<div class="field"> ' + | |||
| '<input type="text" name="shipping_last-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}>' + | |||
| '<input type="text" name="shipping_last-name" required placeholder="' + placeholder_value+ '">' + | |||
| '</div>' + | |||
| '<span>' + | |||
| '<i class="trash icon">' + | |||
| @@ -514,11 +514,11 @@ | |||
| <div | |||
| style="position: relative;border: 1px solid rgba(0,0,0,.2);padding: 0 10px;margin-top: 10px;"> | |||
| <span> | |||
| <a title="滚动到顶部" style="position: absolute; right: -32px;cursor: pointer;" | |||
| <a title="{{$.i18n.Tr "repo.log_scroll_start"}}" style="position: absolute; right: -32px;cursor: pointer;" | |||
| class="log_top" data-version="{{.VersionName}}"><i class="icon-to-top"></i></a> | |||
| </span> | |||
| <span class="log-info-{{.VersionName}}"> | |||
| <a title="滚动到底部" style="position: absolute; bottom: 10px;right: -32px;cursor: pointer;" | |||
| <a title="{{$.i18n.Tr "repo.log_scroll_end"}}" style="position: absolute; bottom: 10px;right: -32px;cursor: pointer;" | |||
| class="log_bottom" data-version="{{.VersionName}}"><i | |||
| class="icon-to-bottom"></i></a> | |||
| </span> | |||
| @@ -593,7 +593,7 @@ | |||
| <div id="newmodel"> | |||
| <div class="ui modal second"> | |||
| <div class="header" style="padding: 1rem;background-color: rgba(240, 240, 240, 100);"> | |||
| <h4 id="model_header">导入新模型</h4> | |||
| <h4 id="model_header">{{.i18n.Tr "repo.model.manage.import_new_model"}}</h4> | |||
| </div> | |||
| <div class="content content-padding"> | |||
| <form id="formId" method="POST" class="ui form"> | |||
| @@ -604,34 +604,34 @@ | |||
| <div class="two inline fields "> | |||
| <div class="required ten wide field"> | |||
| <label style="margin-left: -23px;">选择训练任务</label> | |||
| <label style="margin-left: -23px;">{{.i18n.Tr "repo.model.manage.createtrainjob"}}</label> | |||
| <input type="hidden" class="width83" id="JobId" name="JobId" readonly required> | |||
| <input class="width83" id="JobName" readonly required> | |||
| </div> | |||
| <div class="required six widde field"> | |||
| <label>版本</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.version"}}</label> | |||
| <input class="width70" id="VersionName" name="VersionName" readonly required> | |||
| </div> | |||
| </div> | |||
| <div class="required inline field" id="modelname"> | |||
| <label>模型名称</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.model_name"}}</label> | |||
| <input style="width: 45%;" id="name" name="Name" required maxlength="25" | |||
| onkeyup="this.value=this.value.replace(/[, ]/g,'')"> | |||
| </div> | |||
| <div class="required inline field" id="verionname"> | |||
| <label>模型版本</label> | |||
| <label>{{.i18n.Tr "repo.modelconvert.modelversion"}}</label> | |||
| <input style="width: 45%;" id="version" name="Version" value="" readonly required maxlength="255"> | |||
| </div> | |||
| <div class="unite min_title inline field required"> | |||
| <label>模型框架</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.engine"}}</label> | |||
| <input type="hidden" id="Engine" name="Engine" required> | |||
| <input style="width: 45%;" id="Engine_name" name="Engine_name" readonly required maxlength="255"> | |||
| </div> | |||
| <div class="unite min_title inline fields required"> | |||
| <div class="field required"> | |||
| <label for="modelSelectedFile">模型文件</label> | |||
| <label for="modelSelectedFile">{{.i18n.Tr "repo.model.manage.modelfile"}}</label> | |||
| </div> | |||
| <div class="thirteen wide field" style="position:relative"> | |||
| <input id="modelSelectedFile" type="text" readonly required onclick="showMenu();" name="modelSelectedFile" > | |||
| @@ -641,12 +641,12 @@ | |||
| </div> | |||
| </div> | |||
| <div class="inline field"> | |||
| <label>模型标签</label> | |||
| <label>{{.i18n.Tr "repo.model.manage.modellabel"}}</label> | |||
| <input style="width: 83%;margin-left: 7px;" id="label" name="Label" maxlength="255" | |||
| placeholder='{{.i18n.Tr "repo.modelarts.train_job.label_place"}}'> | |||
| </div> | |||
| <div class="inline field"> | |||
| <label for="description">模型描述</label> | |||
| <label for="description">{{.i18n.Tr "repo.model.manage.modeldesc"}}</label> | |||
| <textarea style="width: 83%;margin-left: 7px;" id="Description" name="Description" rows="3" | |||
| maxlength="255" placeholder='{{.i18n.Tr "repo.modelarts.train_job.new_place"}}' | |||
| onchange="this.value=this.value.substring(0, 255)" | |||
| @@ -280,12 +280,14 @@ | |||
| // 参数增加、删除、修改、保存 | |||
| function Add_parameter(i){ | |||
| let placeholder_value='{{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}' | |||
| let placeholder_name='{{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}' | |||
| value = '<div class="two fields width85" id= "para'+ i +'">' + | |||
| '<div class="field">' + | |||
| '<input type="text" name="shipping_first-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_name"}}> ' + | |||
| '<input type="text" name="shipping_first-name" required placeholder="' + placeholder_name+ '">' + | |||
| '</div> ' + | |||
| '<div class="field"> ' + | |||
| '<input type="text" name="shipping_last-name" required placeholder={{.i18n.Tr "repo.modelarts.train_job.parameter_value"}}>' + | |||
| '<input type="text" name="shipping_last-name" required placeholder="' + placeholder_value+ '">' + | |||
| '</div>'+ | |||
| '<span>' + | |||
| '<i class="trash icon">' + | |||
| @@ -47,13 +47,12 @@ | |||
| {{if eq .MODEL_CONVERT_COUNT 0}} | |||
| <div class="ui placeholder segment bgtask-none"> | |||
| <div class="ui icon header bgtask-header-pic"></div> | |||
| <div class="bgtask-content-header">未创建过模型转换任务</div> | |||
| <div class="bgtask-content-header">{{$.i18n.Tr "repo.modelconvert.notcreate"}}</div> | |||
| <div class="bgtask-content"> | |||
| {{if eq .MODEL_COUNT 0}} | |||
| <div class="bgtask-content-txt">请您先导入<a href="{{.RepoLink}}/modelmanage/show_model">模型</a>,然后再对其进行转换。</div> | |||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.modelconvert.importfirst1"}}<a href="{{.RepoLink}}/modelmanage/show_model">{{$.i18n.Tr "repo.modelconvert.importfirst2"}}</a>{{$.i18n.Tr "repo.modelconvert.importfirst3"}}</div> | |||
| {{end}} | |||
| <div class="bgtask-content-txt">使用说明:可以参考启智AI协作平台<a | |||
| href="https://git.openi.org.cn/zeizei/OpenI_Learning">小白训练营课程。</a></div> | |||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.platform_instructions"}}</div> | |||
| </div> | |||
| </div> | |||
| @@ -68,19 +67,19 @@ | |||
| <div class="ui grid stackable" style="background: #f0f0f0;;"> | |||
| <div class="row"> | |||
| <div class="three wide column padding0"> | |||
| <span style="margin:0 6px">任务名称</span> | |||
| <span style="margin:0 6px">{{$.i18n.Tr "repo.modelconvert.taskname"}}</span> | |||
| </div> | |||
| <div class="two wide column text center padding0"> | |||
| <span>状态</span> | |||
| <span>{{$.i18n.Tr "repo.modelconvert.taskstatus"}}</span> | |||
| </div> | |||
| <div class="two wide column text center padding0"> | |||
| <span>原模型框架</span> | |||
| <span>{{$.i18n.Tr "repo.modelconvert.srcengine"}}</span> | |||
| </div> | |||
| <div class="two wide column text center padding0"> | |||
| <span>转换后格式</span> | |||
| <span>{{$.i18n.Tr "repo.modelconvert.outputformat"}}</span> | |||
| </div> | |||
| <div class="two wide column text center padding0"> | |||
| <span>创建时间</span> | |||
| <span>{{$.i18n.Tr "repo.modelconvert.createtime"}}</span> | |||
| </div> | |||
| <div class="one wide column text center padding0"> | |||
| <span>{{$.i18n.Tr "repo.cloudbrain_creator"}}</span> | |||
| @@ -143,10 +142,10 @@ | |||
| {{if .IsCanOper}} | |||
| <a id="ai-download-{{.ID}}" href="{{$.Repository.HTMLURL}}/modelmanage/download_model_convert/{{.ID}}?AllDownload=true&a=1" class='ui basic {{if eq .Status "SUCCEEDED" "COMPLETED"}}blue {{else}}disabled {{end}}button' style="border-radius: .28571429rem;"> | |||
| 下载 | |||
| {{$.i18n.Tr "repo.modelconvert.download"}} | |||
| </a> | |||
| {{else}} | |||
| <a class="ui basic disabled button">下载</a> | |||
| <a class="ui basic disabled button">{{$.i18n.Tr "repo.modelconvert.download"}}</a> | |||
| {{end}} | |||
| </div> | |||
| </div> | |||
| @@ -211,7 +210,7 @@ | |||
| <input type="hidden" name="_csrf" value=""> | |||
| <div class="unite min_title required inline fields" id="task_name"> | |||
| <div class="three wide field right aligned"> | |||
| <label for="model_convert_name">任务名称</label> | |||
| <label for="model_convert_name">{{$.i18n.Tr "repo.modelconvert.taskname"}}</label> | |||
| </div> | |||
| <div class="twelve wide field"> | |||
| <input id="model_convert_name" name="model_convert_name" required maxlength="25" onkeyup="this.value=this.value.replace(/[, ]/g,'')"> | |||
| @@ -219,10 +218,10 @@ | |||
| </div> | |||
| <div class="unite min_title inline fields required"> | |||
| <div class="three wide field right aligned"> | |||
| <label for="choice_model">模型名称</label> | |||
| <label for="choice_model">{{$.i18n.Tr "repo.modelconvert.modelname"}}</label> | |||
| </div> | |||
| <div class="ui dropdown selection search eight wide field loading" id="choice_model" name="choice_model"> | |||
| <div class="default text">选择模型</div> | |||
| <div class="default text">{{$.i18n.Tr "repo.modelconvert.selectmodel"}}</div> | |||
| <i class="dropdown icon"></i> | |||
| <div class="menu" id="model-name"> | |||
| </div> | |||
| @@ -230,12 +229,12 @@ | |||
| </div> | |||
| <div class="unite min_title inline fields required"> | |||
| <div class="three wide field right aligned"> | |||
| <label for="choice_version">模型版本</label> | |||
| <label for="choice_version">{{$.i18n.Tr "repo.modelconvert.modelversion"}}</label> | |||
| </div> | |||
| <div class="ui dropdown selection search eight wide field" id="choice_version"> | |||
| <input type="hidden" id="ModelVersion" name="ModelVersion" required> | |||
| <div class="default text">选择版本</div> | |||
| <div class="default text">{{$.i18n.Tr "repo.modelconvert.selectversion"}}</div> | |||
| <i class="dropdown icon"></i> | |||
| <div class="menu" id="model-version"> | |||
| @@ -244,11 +243,11 @@ | |||
| </div> | |||
| <div class="unite min_title inline fields required"> | |||
| <div class="three wide field right aligned"> | |||
| <label for="choice_file">模型文件</label> | |||
| <label for="choice_file">{{$.i18n.Tr "repo.model.manage.modelfile"}}</label> | |||
| </div> | |||
| <div class="ui dropdown selection search eight wide field" id="choice_file"> | |||
| <input type="hidden" id="ModelFile" name="ModelFile" required> | |||
| <div class="default text">选择模型文件</div> | |||
| <div class="default text">{{$.i18n.Tr "repo.modelconvert.selectmodelfile"}}</div> | |||
| <i class="dropdown icon"></i> | |||
| <div class="menu" id="model-file"> | |||
| @@ -261,7 +260,7 @@ | |||
| </div> | |||
| <div class="unite min_title inline fields required"> | |||
| <div class="three wide field right aligned"> | |||
| <label for="SrcEngine">原模型框架</label> | |||
| <label for="SrcEngine">{{$.i18n.Tr "repo.modelconvert.srcengine"}}</label> | |||
| </div> | |||
| <select id="SrcEngine" class="ui search dropdown eight wide field" placeholder="" style='color:#000000;' name="SrcEngine" onchange="javascript:srcEngineChanged()"> | |||
| @@ -270,7 +269,7 @@ | |||
| </div> | |||
| <div class="unite min_title required inline fields" id="inputdataformat_div"> | |||
| <div class="three wide field right aligned"> | |||
| <label for="inputdataformat">输入数据格式</label> | |||
| <label for="inputdataformat">{{$.i18n.Tr "repo.modelconvert.inputdataformat"}}</label> | |||
| </div> | |||
| <select id="inputdataformat" class="ui search dropdown eight wide field" placeholder="" style='width:50%' name="inputdataformat"> | |||
| @@ -281,16 +280,16 @@ | |||
| </div> | |||
| <div class="unite min_title required inline fields" id="inputshape_div"> | |||
| <div class="three wide field right aligned"> | |||
| <label for="inputshape">输入张量形状</label> | |||
| <label for="inputshape">{{$.i18n.Tr "repo.modelconvert.inputshape"}}</label> | |||
| </div> | |||
| <div class="eight wide field"> | |||
| <input id="inputshape" name="inputshape" placeholder="如:1,1,32,32,与输入数据格式对应。" required maxlength="25"> | |||
| <input id="inputshape" name="inputshape" placeholder="{{$.i18n.Tr "repo.modelconvert.inputshapetip"}}" required maxlength="25"> | |||
| </div> | |||
| </div> | |||
| <div class="unite min_title inline fields required"> | |||
| <div class="three wide field right aligned"> | |||
| <label for="DestFormat">转换后格式</label> | |||
| <label for="DestFormat">{{$.i18n.Tr "repo.modelconvert.outputformat"}}</label> | |||
| </div> | |||
| <select id="DestFormat" class="ui search dropdown eight wide field" placeholder="" style='width:50%' name="DestFormat"> | |||
| @@ -300,7 +299,7 @@ | |||
| </div> | |||
| <div class="unite min_title inline fields"> | |||
| <div class="three wide field right aligned"> | |||
| <label for="NetOutputFormat">网络输出数据类型 </label> | |||
| <label for="NetOutputFormat">{{$.i18n.Tr "repo.modelconvert.netoutputdata"}} </label> | |||
| </div> | |||
| <select id="NetOutputFormat" class="ui search dropdown eight wide field" placeholder="" style='width:50%' name="NetOutputFormat"> | |||
| @@ -310,7 +309,7 @@ | |||
| </div> | |||
| <div class="unite min_title inline fields"> | |||
| <div class="three wide field right aligned"> | |||
| <label for="Description">任务描述 </label> | |||
| <label for="Description">{{$.i18n.Tr "repo.modelconvert.taskdesc"}} </label> | |||
| </div> | |||
| <div class="twelve wide field"> | |||
| <textarea id="Description" name="Description" rows="1" maxlength="255" placeholder='{{.i18n.Tr "repo.modelarts.train_job.new_place"}}' onchange="this.value=this.value.substring(0, 255)" onkeydown="this.value=this.value.substring(0, 255)" onkeyup="this.value=this.value.substring(0, 256)"></textarea> | |||
| @@ -318,7 +317,7 @@ | |||
| </div> | |||
| <div class="unite min_title inline field"> | |||
| <button id="submitId" name="submitId" type="button" class="ui create_train_job green button" style="position: absolute;margin-left: 150px;"> | |||
| 新建任务 | |||
| {{$.i18n.Tr "repo.modelconvert.newtask"}} | |||
| </button> | |||
| </div> | |||
| </div> | |||
| @@ -357,7 +356,7 @@ | |||
| data['name']= $('#model_convert_name').val() | |||
| if(data['name']==""){ | |||
| $('.ui.error.message').text("请输入任务名称。") | |||
| $('.ui.error.message').text("{{.i18n.Tr "repo.modelconvert.tasknameempty"}}") | |||
| $('.ui.error.message').css('display','block') | |||
| $("#task_name").addClass("error") | |||
| return false | |||
| @@ -371,7 +370,7 @@ | |||
| data['inputshape']= $('#inputshape').val(); | |||
| if(inputshapeNotValid(data['inputshape'])){ | |||
| $('.ui.error.message').text("格式输入错误,请输入如:1,1,32,32,与输入数据格式对应。") | |||
| $('.ui.error.message').text("{{.i18n.Tr "repo.modelconvert.inputshapeerror"}}") | |||
| $('.ui.error.message').css('display','block') | |||
| $("#inputshape_div").addClass("error") | |||
| return false | |||
| @@ -411,7 +410,7 @@ | |||
| .modal({ | |||
| centered: false, | |||
| onShow:function(){ | |||
| $('#model_header').text("创建模型转换任务") | |||
| $('#model_header').text("{{.i18n.Tr "repo.modelconvert.createtask"}}") | |||
| $('.ui.dimmer').css({"background-color":"rgb(136, 136, 136,0.7)"}) | |||
| createModelName() | |||
| loadModelList() | |||
| @@ -173,7 +173,7 @@ td, th { | |||
| <h4 class="ui header" id="vertical-segment"> | |||
| <div class="ui breadcrumb"> | |||
| <a class="section" href="{{$.RepoLink}}/modelmanage/convert_model"> | |||
| 模型转换任务 | |||
| {{.i18n.Tr "repo.modelconvert.taskurlname"}} | |||
| </a> | |||
| <div class="divider"> / </div> | |||
| <div class="active section">{{.Name}}</div> | |||
| @@ -243,7 +243,7 @@ td, th { | |||
| <tr class="ti-no-ng-animate"> | |||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||
| 输入张量形状 | |||
| {{$.i18n.Tr "repo.modelconvert.inputshape"}} | |||
| </td> | |||
| <td class="ti-text-form-content"> | |||
| @@ -255,7 +255,7 @@ td, th { | |||
| <tr class="ti-no-ng-animate"> | |||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||
| 输入数据格式 | |||
| {{$.i18n.Tr "repo.modelconvert.inputdataformat"}} | |||
| </td> | |||
| <td class="ti-text-form-content"> | |||
| @@ -291,7 +291,7 @@ td, th { | |||
| <tr class="ti-no-ng-animate"> | |||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||
| 网络输出数据类型 | |||
| {{$.i18n.Tr "repo.modelconvert.netoutputdata"}} | |||
| </td> | |||
| <td class="ti-text-form-content"> | |||
| @@ -311,7 +311,7 @@ td, th { | |||
| <tr class="ti-no-ng-animate"> | |||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||
| 模型名称 | |||
| {{$.i18n.Tr "repo.modelconvert.modelname"}} | |||
| </td> | |||
| <td class="ti-text-form-content"> | |||
| @@ -324,7 +324,7 @@ td, th { | |||
| <tr class="ti-no-ng-animate"> | |||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||
| 模型版本 | |||
| {{$.i18n.Tr "repo.modelconvert.modelversion"}} | |||
| </td> | |||
| <td class="ti-text-form-content"> | |||
| @@ -337,7 +337,7 @@ td, th { | |||
| <tr class="ti-no-ng-animate"> | |||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||
| 模型文件 | |||
| {{$.i18n.Tr "repo.model.manage.modelfile"}} | |||
| </td> | |||
| <td class="ti-text-form-content"> | |||
| @@ -350,7 +350,7 @@ td, th { | |||
| <tr class="ti-no-ng-animate"> | |||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||
| 原模型框架 | |||
| {{$.i18n.Tr "repo.modelconvert.srcengine"}} | |||
| </td> | |||
| <td class="ti-text-form-content"> | |||
| @@ -362,7 +362,7 @@ td, th { | |||
| <tr class="ti-no-ng-animate"> | |||
| <td class="ti-no-ng-animate ti-text-form-label text-width80"> | |||
| 转换后格式 | |||
| {{$.i18n.Tr "repo.modelconvert.outputformat"}} | |||
| </td> | |||
| <td class="ti-text-form-content"> | |||
| @@ -439,10 +439,10 @@ td, th { | |||
| <div class="ui tab" data-tab="five"> | |||
| <div style="position: relative;"> | |||
| <span> | |||
| <a title="滚动到顶部" style="position: absolute; right: -32px;cursor: pointer;" class="log_top" data-version="V0001"><i class="icon-to-top"></i></a> | |||
| <a title="{{$.i18n.Tr "repo.log_scroll_start"}}" style="position: absolute; right: -32px;cursor: pointer;" class="log_top" data-version="V0001"><i class="icon-to-top"></i></a> | |||
| </span> | |||
| <span> | |||
| <a title="滚动到底部" style="position: absolute; bottom: 10px;right: -32px;cursor: pointer;" class="log_bottom" data-version="V0001"><i class="icon-to-bottom"></i></a> | |||
| <a title="{{$.i18n.Tr "repo.log_scroll_end"}}" style="position: absolute; bottom: 10px;right: -32px;cursor: pointer;" class="log_bottom" data-version="V0001"><i class="icon-to-bottom"></i></a> | |||
| </span> | |||
| <div id="log_npu_message" class="ui message message" style="display: none;"> | |||
| <div id="log_npu_header"></div> | |||
| @@ -64,17 +64,16 @@ | |||
| {{if eq $.MODEL_COUNT 0}} | |||
| <div class="ui placeholder segment bgtask-none"> | |||
| <div class="ui icon header bgtask-header-pic"></div> | |||
| <div class="bgtask-content-header">未创建过模型</div> | |||
| <div class="bgtask-content-header">{{$.i18n.Tr "repo.model.manage.notcreatemodel"}}</div> | |||
| <div class="bgtask-content"> | |||
| {{if $.RepoIsEmpty}} | |||
| <div class="bgtask-content-txt">代码版本:您还没有初始化代码仓库,请先<a href="{{.RepoLink}}">创建代码版本;</a></div> | |||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.model.manage.init1"}}<a href="{{.RepoLink}}">{{$.i18n.Tr "repo.model.manage.init2"}}</a></div> | |||
| {{end}} | |||
| {{if eq $.TRAIN_COUNT 0}} | |||
| <div class="bgtask-content-txt">训练任务:您还没创建过训练任务,请先创建<a | |||
| href="{{.RepoLink}}/modelarts/train-job">训练任务</a>。</div> | |||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.model.manage.createtrainjob_tip"}}<a | |||
| href="{{.RepoLink}}/modelarts/train-job">{{$.i18n.Tr "repo.model.manage.createtrainjob"}}</a>。</div> | |||
| {{end}} | |||
| <div class="bgtask-content-txt">使用说明:可以参考启智AI协作平台<a | |||
| href="https://git.openi.org.cn/zeizei/OpenI_Learning">小白训练营课程。</a></div> | |||
| <div class="bgtask-content-txt">{{$.i18n.Tr "repo.platform_instructions"}}</a></div> | |||
| </div> | |||
| <div style="display: none;"> | |||
| @@ -108,11 +107,11 @@ | |||
| <div id="deletemodel"> | |||
| <div class="ui basic modal first"> | |||
| <div class="ui icon header"> | |||
| <i class="trash icon"></i> 删除模型 | |||
| <i class="trash icon"></i> {{.i18n.Tr "repo.model.manage.delete"}} | |||
| </div> | |||
| <div class="content"> | |||
| <p>你确认删除该模型么?此模型一旦删除不可恢复。</p> | |||
| <p>{{.i18n.Tr "repo.model.manage.delete_confirm"}}</p> | |||
| </div> | |||
| <div class="actions"> | |||
| <div class="ui red basic inverted cancel button"> | |||
| @@ -139,21 +138,21 @@ | |||
| <input type="hidden" name="_csrf" value=""> | |||
| <div class="inline fields"> | |||
| <div class="required two wide field right aligned"> | |||
| <label for="JobId">选择训练任务</label> | |||
| <label for="JobId">{{.i18n.Tr "repo.model.manage.select.trainjob"}}</label> | |||
| </div> | |||
| <div class="required thirteen wide inline field"> | |||
| <div class="ui dropdown selection search loading" id="choice_model"> | |||
| <input type="hidden" id="JobId" name="JobId" required> | |||
| <div class="default text">选择训练任务</div> | |||
| <div class="default text">{{.i18n.Tr "repo.model.manage.select.trainjob"}}</div> | |||
| <i class="dropdown icon"></i> | |||
| <div class="menu" id="job-name"> | |||
| </div> | |||
| </div> | |||
| <label for="VersionName">版本</label> | |||
| <label for="VersionName">{{.i18n.Tr "repo.model.manage.version"}}</label> | |||
| <span> </span> | |||
| <div class="ui dropdown selection search" id="choice_version"> | |||
| <input type="hidden" id="VersionName" name="VersionName" required> | |||
| <div class="default text">选择版本</div> | |||
| <div class="default text">{{.i18n.Tr "repo.model.manage.select.version"}}</div> | |||
| <i class="dropdown icon"></i> | |||
| <div class="menu" id="job-version"> | |||
| @@ -163,7 +162,7 @@ | |||
| </div> | |||
| <div class="required inline fields" id="modelname"> | |||
| <div class="two wide field right aligned"> | |||
| <label for="Name">模型名称</label> | |||
| <label for="Name">{{.i18n.Tr "repo.model.manage.model_name"}}</label> | |||
| </div> | |||
| <div class="eight wide field"> | |||
| <input id="name" name="Name" required maxlength="25" onkeyup="this.value=this.value.replace(/[, ]/g,'')"> | |||
| @@ -171,7 +170,7 @@ | |||
| </div> | |||
| <div class="required inline fields" id="verionname"> | |||
| <div class="two wide field right aligned"> | |||
| <label for="Version">模型版本</label> | |||
| <label for="Version">{{.i18n.Tr "repo.model.manage.version"}}</label> | |||
| </div> | |||
| <div class="eight wide field"> | |||
| <input id="version" name="Version" value="" readonly required maxlength="255"> | |||
| @@ -180,11 +179,11 @@ | |||
| <div class="unite min_title inline fields required"> | |||
| <div class="two wide field right aligned"> | |||
| <label for="Engine">模型框架</label> | |||
| <label for="Engine">{{.i18n.Tr "repo.model.manage.engine"}}</label> | |||
| </div> | |||
| <div class="ui ten wide field dropdown selection search" id="choice_Engine"> | |||
| <input type="hidden" id="Engine" name="Engine" required> | |||
| <div class="default text newtext">选择模型框架</div> | |||
| <div class="default text newtext">{{.i18n.Tr "repo.model.manage.select.engine"}}</div> | |||
| <i class="dropdown icon"></i> | |||
| <div class="menu" id="job-Engine"> | |||
| @@ -195,7 +194,7 @@ | |||
| <div class="unite min_title inline fields required"> | |||
| <div class="two wide field right aligned"> | |||
| <label for="modelSelectedFile">模型文件</label> | |||
| <label for="modelSelectedFile">{{.i18n.Tr "repo.model.manage.modelfile"}}</label> | |||
| </div> | |||
| <div class="thirteen wide field" style="position:relative"> | |||
| <input id="modelSelectedFile" type="text" readonly required onclick="showMenu();" name="modelSelectedFile" > | |||
| @@ -207,7 +206,7 @@ | |||
| <div class="inline fields"> | |||
| <div class="two wide field right aligned"> | |||
| <label for="Label">模型标签  </label> | |||
| <label for="Label">{{.i18n.Tr "repo.model.manage.modellabel"}}  </label> | |||
| </div> | |||
| <div class="thirteen wide field"> | |||
| <input id="label" name="Label" maxlength="255" placeholder='{{.i18n.Tr "repo.modelarts.train_job.label_place"}}'> | |||
| @@ -215,7 +214,7 @@ | |||
| </div> | |||
| <div class="inline fields"> | |||
| <div class="two wide field right aligned"> | |||
| <label for="description">模型描述  </label> | |||
| <label for="description">{{.i18n.Tr "repo.model.manage.modeldesc"}}  </label> | |||
| </div> | |||
| <div class="thirteen wide field"> | |||
| <textarea id="Description" name="Description" rows="3" | |||
| @@ -86,7 +86,7 @@ | |||
| </div> | |||
| <div class="ui tab active" data-tab="first"> | |||
| <div class="half-table"> | |||
| <span class="model_header_text">基本信息</span> | |||
| <span class="model_header_text">{{$.i18n.Tr "repo.model.manage.baseinfo"}}</span> | |||
| <table class="tableStyle" style="margin-top:20px;"> | |||
| <tbody> | |||
| <tr> | |||
| @@ -125,7 +125,7 @@ | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td class="ti-text-form-label text-width80">训练任务</td> | |||
| <td class="ti-text-form-label text-width80">{{$.i18n.Tr "repo.model.manage.createtrainjob"}}</td> | |||
| <td class="ti-text-form-content word-elipsis"> | |||
| <a id="DisplayJobNameHref" class="title" style="font-size: 14px;" target="_blank"> | |||
| <span id="DisplayJobName" class="fitted" style="width: 90%;vertical-align: middle;"></span> | |||