Browse Source

fix issue

pull/1310/head
zhoupzh 3 years ago
parent
commit
e3df303fc4
8 changed files with 43 additions and 26 deletions
  1. +2
    -1
      options/locale/locale_en-US.ini
  2. +5
    -2
      options/locale/locale_zh-CN.ini
  3. +1
    -1
      templates/repo/debugjob/index.tmpl
  4. +6
    -5
      templates/repo/modelarts/inferencejob/index.tmpl
  5. +6
    -6
      templates/repo/modelarts/inferencejob/new.tmpl
  6. +17
    -7
      templates/repo/modelarts/inferencejob/show.tmpl
  7. +5
    -3
      templates/repo/modelarts/trainjob/index.tmpl
  8. +1
    -1
      templates/repo/modelarts/trainjob/show.tmpl

+ 2
- 1
options/locale/locale_en-US.ini View File

@@ -891,7 +891,8 @@ modelarts.train_job_para_admin=train_job_para_admin
modelarts.train_job_para.edit=train_job_para.edit modelarts.train_job_para.edit=train_job_para.edit
modelarts.train_job_para.connfirm=train_job_para.connfirm modelarts.train_job_para.connfirm=train_job_para.connfirm



modelarts.infer_job_model = Model
modelarts.infer_job_model_file = Model File
modelarts.infer_job = Inference Job modelarts.infer_job = Inference Job
modelarts.infer_job.model_version = Model/Version modelarts.infer_job.model_version = Model/Version
modelarts.infer_job.select_model = Select Model modelarts.infer_job.select_model = Select Model


+ 5
- 2
options/locale/locale_zh-CN.ini View File

@@ -841,7 +841,7 @@ modelarts.train_job.new_train=新建训练任务
modelarts.train_job.new_infer=新建推理任务 modelarts.train_job.new_infer=新建推理任务
modelarts.train_job.config=配置信息 modelarts.train_job.config=配置信息
modelarts.train_job.new=新建训练任务 modelarts.train_job.new=新建训练任务
modelarts.train_job.new_place=描述字数不超过256个字符
modelarts.train_job.new_place=描述字数不超过255个字符
modelarts.model_name=模型名称 modelarts.model_name=模型名称
modelarts.model_size=模型大小 modelarts.model_size=模型大小
modelarts.import_model=导入模型 modelarts.import_model=导入模型
@@ -891,7 +891,7 @@ modelarts.train_job.NAS_mount_path=NAS挂载路径
modelarts.train_job.query_whether_save_parameter=保存作业参数 modelarts.train_job.query_whether_save_parameter=保存作业参数
modelarts.train_job.save_helper=保存当前作业的配置参数,后续您可以使用已保存的配置参数快速创建训练作业。 modelarts.train_job.save_helper=保存当前作业的配置参数,后续您可以使用已保存的配置参数快速创建训练作业。
modelarts.train_job.common_frame=常用框架 modelarts.train_job.common_frame=常用框架
modelarts.train_job.amount_of_compute_node=计算节点
modelarts.train_job.amount_of_compute_node=计算节点数
modelarts.train_job.job_parameter_name=任务参数名称 modelarts.train_job.job_parameter_name=任务参数名称
modelarts.train_job.parameter_description=任务参数描述 modelarts.train_job.parameter_description=任务参数描述
modelarts.log=日志 modelarts.log=日志
@@ -901,9 +901,12 @@ modelarts.train_job_para_admin=任务参数管理
modelarts.train_job_para.edit=编辑 modelarts.train_job_para.edit=编辑
modelarts.train_job_para.connfirm=确定 modelarts.train_job_para.connfirm=确定


modelarts.infer_job_model = 模型
modelarts.infer_job_model_file = 模型文件
modelarts.infer_job = 推理任务 modelarts.infer_job = 推理任务
modelarts.infer_job.model_version = 模型/版本 modelarts.infer_job.model_version = 模型/版本
modelarts.infer_job.select_model = 选择模型 modelarts.infer_job.select_model = 选择模型
modelarts.infer_job.boot_file_helper=启动文件是您程序执行的入口文件,必须是以.py结尾的文件。比如inferenece.py、main.py、example/nferenec.py、case/main.py。


model.manage.import_new_model=导入新模型 model.manage.import_new_model=导入新模型
model.manage.create_error=相同的名称和版本的模型已经存在。 model.manage.create_error=相同的名称和版本的模型已经存在。


+ 1
- 1
templates/repo/debugjob/index.tmpl View File

@@ -607,7 +607,7 @@
const jobID = job.dataset.jobid; const jobID = job.dataset.jobid;
const repoPath = job.dataset.repopath; const repoPath = job.dataset.repopath;
const computeResource = job.dataset.resource const computeResource = job.dataset.resource
const initArray = ['STOPPED','FAILED','START_FAILED','CREATE_FAILED','SUCCEEDED']
const initArray = ['STOPPED','FAILED','START_FAILED','CREATE_FAILED','SUCCEEDED','UNAVAILABLE','DELETED','RESIZE_FAILED']
if (initArray.includes(job.textContent.trim())) { if (initArray.includes(job.textContent.trim())) {
return return


+ 6
- 5
templates/repo/modelarts/inferencejob/index.tmpl View File

@@ -111,7 +111,7 @@
</div> </div>
<!-- 模型版本 --> <!-- 模型版本 -->
<div class="three wide column text center padding0"> <div class="three wide column text center padding0">
<a >{{.ModelName}} </a>/&nbsp;<span style="font-size: 12px;">{{.ModelVersion}} </span>
<a href="{{$.RepoLink}}/modelmanage/show_model_info?name={{.ModelName}}">{{.ModelName}}</a>/&nbsp;<span style="font-size: 12px;">{{.ModelVersion}} </span>
</div> </div>
<!-- 任务状态 --> <!-- 任务状态 -->
<div class="two wide column text center padding0" > <div class="two wide column text center padding0" >
@@ -145,11 +145,11 @@
<div class="ui compact buttons"> <div class="ui compact buttons">
{{$.CsrfTokenHtml}} {{$.CsrfTokenHtml}}
{{if .CanDel}} {{if .CanDel}}
<a style="padding: 0.5rem 1rem;" id="{{.VersionName}}-stop" class="ui basic {{if eq .Status "KILLED" "FAILED" "START_FAILED" "KILLING" "COMPLETED"}}disabled {{else}} blue {{end}}button" onclick="stopVersion({{.VersionName}},{{.JobID}})">
<a style="padding: 0.5rem 1rem;" id="{{.JobID}}-stop" class="ui basic {{if eq .Status "KILLED" "FAILED" "START_FAILED" "KILLING" "COMPLETED"}}disabled {{else}} blue {{end}}button" onclick="stopVersion({{.VersionName}},{{.JobID}})">
{{$.i18n.Tr "repo.stop"}} {{$.i18n.Tr "repo.stop"}}
</a> </a>
{{else}} {{else}}
<a style="padding: 0.5rem 1rem;" id="{{.VersionName}}-stop" class="ui basic disabled button">
<a style="padding: 0.5rem 1rem;" id="{{.JobID}}-stop" class="ui basic disabled button">
{{$.i18n.Tr "repo.stop"}} {{$.i18n.Tr "repo.stop"}}
</a> </a>
{{end}} {{end}}
@@ -232,7 +232,8 @@ function loadJobStatus() {
const repoPath = job.dataset.repopath const repoPath = job.dataset.repopath
const versionname = job.dataset.version const versionname = job.dataset.version
const status_text = $(`#${jobID}-text`).text() const status_text = $(`#${jobID}-text`).text()
if(['IMAGE_FAILED','SUBMIT_FAILED','DELETE_FAILED','KILLED','COMPLETED','FAILED','CANCELED','LOST','START_FAILED'].includes(status_text)){
const finalState = ['IMAGE_FAILED','SUBMIT_FAILED','DELETE_FAILED','KILLED','COMPLETED','FAILED','CANCELED','LOST','START_FAILED','SUBMIT_MODEL_FAILED','DEPLOY_SERVICE_FAILED','CHECK_FAILED']
if(finalState.includes(status_text)){
return return
} }
$.get(`/api/v1/repos/${repoPath}/modelarts/inference-job/${jobID}?version_name=${versionname}`, (data) => { $.get(`/api/v1/repos/${repoPath}/modelarts/inference-job/${jobID}?version_name=${versionname}`, (data) => {
@@ -243,7 +244,7 @@ function loadJobStatus() {
if (status != job.textContent.trim()) { if (status != job.textContent.trim()) {
$('#' + jobID+'-icon').removeClass().addClass(status) $('#' + jobID+'-icon').removeClass().addClass(status)
$('#' + jobID+ '-text').text(status) $('#' + jobID+ '-text').text(status)
finalState.includes(status) && $('#' + jobID + '-stop').removeClass('blue').addClass('disabled')
} }
}).fail(function(err) { }).fail(function(err) {


+ 6
- 6
templates/repo/modelarts/inferencejob/new.tmpl View File

@@ -45,7 +45,7 @@
<div class="ui container"> <div class="ui container">
{{template "base/alert" .}} {{template "base/alert" .}}
<h4 class="ui top attached header"> <h4 class="ui top attached header">
{{.i18n.Tr "repo.modelarts.train_job.new"}}
{{.i18n.Tr "repo.modelarts.train_job.new_infer"}}
</h4> </h4>
<div class="ui attached segment"> <div class="ui attached segment">
<!-- equal width --> <!-- equal width -->
@@ -65,7 +65,7 @@
<div class="unite min_title inline field"> <div class="unite min_title inline field">
<label style="font-weight: normal;" for="description">{{.i18n.Tr "repo.modelarts.train_job.description"}}</label>&nbsp;&nbsp; <label style="font-weight: normal;" for="description">{{.i18n.Tr "repo.modelarts.train_job.description"}}</label>&nbsp;&nbsp;
<textarea style="width: 80%;" id="description" name="description" rows="3" maxlength="254" 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, 255)"></textarea>
<textarea style="width: 80%;" 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)" onkeydown="this.value=this.value.substring(0, 255)" onkeyup="this.value=this.value.substring(0, 255)"></textarea>
</div> </div>
<div class="ui divider"></div> <div class="ui divider"></div>


@@ -74,7 +74,7 @@
<div class="required unite inline min_title fields" style="width: 91.8%;"> <div class="required unite inline min_title fields" style="width: 91.8%;">
<div class="required eight wide field"> <div class="required eight wide field">
<label style="font-weight: normal;white-space: nowrap;">{{.i18n.Tr "repo.modelarts.infer_job.select_model"}}</label>&nbsp;&nbsp; <label style="font-weight: normal;white-space: nowrap;">{{.i18n.Tr "repo.modelarts.infer_job.select_model"}}</label>&nbsp;&nbsp;
<div class="ui fluid search selection dropdown loading" id="select_model">
<div class="ui fluid search selection dropdown {{if ne 0 $.MODEL_COUNT}} loading {{end}}" id="select_model">
{{if $.ckpt_name}} {{if $.ckpt_name}}
<input type="hidden" name="model_name" value="{{$.model_name}}" required> <input type="hidden" name="model_name" value="{{$.model_name}}" required>
<div class="text">{{$.model_name}}</div> <div class="text">{{$.model_name}}</div>
@@ -118,7 +118,7 @@
</div> </div>
<span > <span >
<i class="question circle icon" data-content="模型文件位置存储在环境变量ckpt_path中。" data-position="top center" data-variation="inverted mini"></i>
<i class="question circle icon" data-content="模型文件位置存储在环境变量ckpt_url中。" data-position="top center" data-variation="inverted mini"></i>
</span> </span>
</div> </div>
<!-- AI引擎 --> <!-- AI引擎 -->
@@ -175,7 +175,6 @@
<span> <span>
<i class="question circle icon" data-content="数据集位置存储在环境变量data_url中。" data-position="top center" data-variation="inverted mini"></i> <i class="question circle icon" data-content="数据集位置存储在环境变量data_url中。" data-position="top center" data-variation="inverted mini"></i>
</span> </span>
<span class="tooltips" style="display: block;">数据集位置存储在环境变量data_url中,推理输出路径存储在环境变量result_url中。</span>
</div> </div>
<!-- 启动文件 --> <!-- 启动文件 -->
<div class="inline unite min_title field required"> <div class="inline unite min_title field required">
@@ -186,7 +185,7 @@
<input style="width: 35.5%;" name="boot_file" id="trainjob_boot_file" value="" tabindex="3" autofocus required maxlength="254" > <input style="width: 35.5%;" name="boot_file" id="trainjob_boot_file" value="" tabindex="3" autofocus required maxlength="254" >
{{end}} {{end}}
<span > <span >
<i class="question circle icon" data-content={{.i18n.Tr "repo.modelarts.train_job.boot_file_helper"}} data-position="top center" data-variation="inverted mini"></i>
<i class="question circle icon" data-content={{.i18n.Tr "repo.modelarts.infer_job.boot_file_helper"}} data-position="top center" data-variation="inverted mini"></i>
</span> </span>
<a href="https://git.openi.org.cn/OpenIOSSG/MINIST_Example" target="_blank">查看样例</a> <a href="https://git.openi.org.cn/OpenIOSSG/MINIST_Example" target="_blank">查看样例</a>
</div> </div>
@@ -240,6 +239,7 @@
<div class="ui labeled input" style="width: 5%;"> <div class="ui labeled input" style="width: 5%;">
<input style="border-radius: 0;text-align: center;" name="work_server_number" id="trainjob_work_server_num" tabindex="3" autofocus required maxlength="254" value="1" readonly> <input style="border-radius: 0;text-align: center;" name="work_server_number" id="trainjob_work_server_num" tabindex="3" autofocus required maxlength="254" value="1" readonly>
</div> </div>
<span class="tooltips" style="display: block;">推理输出路径存储在环境变量result_url中。</span>
</div> </div>
<!-- 表单操作 --> <!-- 表单操作 -->
<div class="inline unite min_title field"> <div class="inline unite min_title field">


+ 17
- 7
templates/repo/modelarts/inferencejob/show.tmpl View File

@@ -214,7 +214,7 @@ td, th {
</div> </div>
</td> </td>
</tr> </tr>
<tr class="ti-no-ng-animate">
<!-- <tr class="ti-no-ng-animate">
<td class="ti-no-ng-animate ti-text-form-label text-width80"> <td class="ti-no-ng-animate ti-text-form-label text-width80">
{{$.i18n.Tr "repo.modelarts.run_version"}} {{$.i18n.Tr "repo.modelarts.run_version"}}
</td> </td>
@@ -224,7 +224,7 @@ td, th {
{{.VersionName}} {{.VersionName}}
</div> </div>
</td> </td>
</tr>
</tr> -->
<tr class="ti-no-ng-animate"> <tr class="ti-no-ng-animate">
<td class="ti-no-ng-animate ti-text-form-label text-width80"> <td class="ti-no-ng-animate ti-text-form-label text-width80">
{{$.i18n.Tr "repo.modelarts.train_job.start_time"}} {{$.i18n.Tr "repo.modelarts.train_job.start_time"}}
@@ -321,13 +321,23 @@ td, th {
<tbody class="ti-text-form"> <tbody class="ti-text-form">
<tr class="ti-no-ng-animate"> <tr class="ti-no-ng-animate">
<td class="ti-no-ng-animate ti-text-form-label text-width80"> <td class="ti-no-ng-animate ti-text-form-label text-width80">
模型
{{$.i18n.Tr "repo.modelarts.infer_job_model"}}
</td> </td>
<td class="ti-text-form-content"> <td class="ti-text-form-content">
<div class="text-span text-span-w"> <div class="text-span text-span-w">
<span style="color: #8a8e99">名称:</span><span>testTrainJob1_model_5d21</span>&nbsp;&nbsp; <span style="color: #8a8e99">名称:</span><span>testTrainJob1_model_5d21</span>&nbsp;&nbsp;
<span style="color: #8a8e99">版本:</span><span>asdasdasd</span>&nbsp;&nbsp; <span style="color: #8a8e99">版本:</span><span>asdasdasd</span>&nbsp;&nbsp;
<span style="color: #8a8e99">权重:</span><span title="{{.CkptName}}">{{.CkptName}}</span>
</div>
</td>
</tr>
<tr class="ti-no-ng-animate">
<td class="ti-no-ng-animate ti-text-form-label text-width80">
{{$.i18n.Tr "repo.modelarts.infer_job_model_file"}}
</td>
<td class="ti-text-form-content">
<div class="text-span text-span-w">
{{.CkptName}}
</div> </div>
</td> </td>
</tr> </tr>
@@ -439,7 +449,7 @@ td, th {
<input type="hidden" name="model{{.VersionName}}" value="-1"> <input type="hidden" name="model{{.VersionName}}" value="-1">
<input type="hidden" name="modelback{{.VersionName}}" value="-1"> <input type="hidden" name="modelback{{.VersionName}}" value="-1">
<div class='ui breadcrumb model_file_bread' id='file_breadcrumb{{.VersionName}}'> <div class='ui breadcrumb model_file_bread' id='file_breadcrumb{{.VersionName}}'>
<div class="active section">{{.VersionName}}</div>
<div class="active section">result</div>
<div class="divider"> / </div> <div class="divider"> / </div>


</div> </div>
@@ -559,7 +569,7 @@ function renderSize(value){
var srcsize = parseFloat(value); var srcsize = parseFloat(value);
index=Math.floor(Math.log(srcsize)/Math.log(1024)); index=Math.floor(Math.log(srcsize)/Math.log(1024));
var size =srcsize/Math.pow(1024,index); var size =srcsize/Math.pow(1024,index);
size=size.toFixed(2);//保留的小数位数
size=size.toFixed(0);//保留的小数位数
return size+unitArr[index]; return size+unitArr[index];
} }
function loadModelFile(version_name,parents,filename,init){ function loadModelFile(version_name,parents,filename,init){
@@ -574,7 +584,7 @@ function loadModelFile(version_name,parents,filename,init){
$(`input[name=modelback${version_name}]`).val(version_name) $(`input[name=modelback${version_name}]`).val(version_name)
$(`#file_breadcrumb${version_name}`).empty() $(`#file_breadcrumb${version_name}`).empty()
let htmlBread = "" let htmlBread = ""
htmlBread += `<div class='active section'>${version_name}</div>`
htmlBread += `<div class='active section'>result</div>`
htmlBread += "<div class='divider'> / </div>" htmlBread += "<div class='divider'> / </div>"
$(`#file_breadcrumb${version_name}`).append(htmlBread) $(`#file_breadcrumb${version_name}`).append(htmlBread)
}else{ }else{


+ 5
- 3
templates/repo/modelarts/trainjob/index.tmpl View File

@@ -142,11 +142,11 @@
<div class="ui compact buttons"> <div class="ui compact buttons">
{{$.CsrfTokenHtml}} {{$.CsrfTokenHtml}}
{{if .CanDel}} {{if .CanDel}}
<a style="padding: 0.5rem 1rem;" id="{{.VersionName}}-stop" class="ui basic {{if eq .Status "KILLED" "FAILED" "START_FAILED" "KILLING" "COMPLETED"}}disabled {{else}} blue {{end}}button" onclick="stopVersion({{.VersionName}},{{.JobID}})">
<a style="padding: 0.5rem 1rem;" id="{{.JobID}}-stop" class="ui basic {{if eq .Status "KILLED" "FAILED" "START_FAILED" "KILLING" "COMPLETED"}}disabled {{else}} blue {{end}}button" onclick="stopVersion({{.VersionName}},{{.JobID}})">
{{$.i18n.Tr "repo.stop"}} {{$.i18n.Tr "repo.stop"}}
</a> </a>
{{else}} {{else}}
<a style="padding: 0.5rem 1rem;" id="{{.VersionName}}-stop" class="ui basic disabled button">
<a style="padding: 0.5rem 1rem;" id="{{.JobID}}-stop" class="ui basic disabled button">
{{$.i18n.Tr "repo.stop"}} {{$.i18n.Tr "repo.stop"}}
</a> </a>
{{end}} {{end}}
@@ -263,7 +263,8 @@
const repoPath = job.dataset.repopath const repoPath = job.dataset.repopath
const versionname = job.dataset.version const versionname = job.dataset.version
const status_text = $(`#${jobID}-text`).text() const status_text = $(`#${jobID}-text`).text()
if(['IMAGE_FAILED','SUBMIT_FAILED','DELETE_FAILED','KILLED','COMPLETED','FAILED','CANCELED','LOST','START_FAILED'].includes(status_text)){
const finalState = ['IMAGE_FAILED','SUBMIT_FAILED','DELETE_FAILED','KILLED','COMPLETED','FAILED','CANCELED','LOST','START_FAILED','SUBMIT_MODEL_FAILED','DEPLOY_SERVICE_FAILED','CHECK_FAILED']
if(finalState.includes(status_text)){
return return
} }
$.get(`/api/v1/repos/${repoPath}/modelarts/train-job/${jobID}?version_name=${versionname}`, (data) => { $.get(`/api/v1/repos/${repoPath}/modelarts/train-job/${jobID}?version_name=${versionname}`, (data) => {
@@ -274,6 +275,7 @@
if (status != job.textContent.trim()) { if (status != job.textContent.trim()) {
$('#' + jobID+'-icon').removeClass().addClass(status) $('#' + jobID+'-icon').removeClass().addClass(status)
$('#' + jobID+ '-text').text(status) $('#' + jobID+ '-text').text(status)
finalState.includes(status) && $('#' + jobID + '-stop').removeClass('blue').addClass('disabled')


} }


+ 1
- 1
templates/repo/modelarts/trainjob/show.tmpl View File

@@ -489,7 +489,7 @@ td, th {
var srcsize = parseFloat(value); var srcsize = parseFloat(value);
index=Math.floor(Math.log(srcsize)/Math.log(1024)); index=Math.floor(Math.log(srcsize)/Math.log(1024));
var size =srcsize/Math.pow(1024,index); var size =srcsize/Math.pow(1024,index);
size=size.toFixed(2);//保留的小数位数
size=size.toFixed(0);//保留的小数位数
return size+unitArr[index]; return size+unitArr[index];
} }
function loadJobStatus() { function loadJobStatus() {


Loading…
Cancel
Save