Browse Source

create trainjob html

tags/v1.21.12.1
lewis 4 years ago
parent
commit
3f6994d9c1
4 changed files with 54 additions and 30 deletions
  1. +1
    -0
      modules/auth/modelarts.go
  2. +20
    -7
      modules/modelarts/modelarts.go
  3. +16
    -6
      routers/repo/modelarts.go
  4. +17
    -17
      templates/repo/modelarts/trainjob/new.tmpl

+ 1
- 0
modules/auth/modelarts.go View File

@@ -21,6 +21,7 @@ type CreateModelArtsTrainJobForm struct {
BootFile string `form:"boot_file" binding:"Required"`
WorkServerNumber int `form:"work_server_number" binding:"Required"`
EngineID int `form:"engine_id" binding:"Required"`
Flavor string `form:"flavor" binding:"Required"`
Description string `form:"description"`
}



+ 20
- 7
modules/modelarts/modelarts.go View File

@@ -23,17 +23,16 @@ const (
FlavorInfo = "Ascend: 1*Ascend 910 CPU: 24 核 96GiB (modelarts.kat1.xlarge)"

//train-job
engineID = 118

Engine = "Ascend-Powered-Engine"
ResourcePools = "{\"resource_pool\":[{\"id\":1, \"value\":\"专属资源池\"}]}"
Engines = "{\"engine\":[{\"id\":1, \"value\":\"Ascend-Powered-Engine\"}]}"
EngineVersions = "{\"version\":[{\"id\":118,\"value\":\"MindSpore-1.0.0-c75-python3.7-euleros2.8-aarch64\"}," +
"{\"id\":119,\"value\":\"MindSpore-1.1.1-c76-python3.7-euleros2.8-aarch64\"}" +
"{\"id\":120,\"value\":\"MindSpore-1.1.1-c76-tr5-python3.7-euleros2.8-aarch64\"}" +
"{\"id\":119,\"value\":\"MindSpore-1.1.1-c76-python3.7-euleros2.8-aarch64\"}," +
"{\"id\":120,\"value\":\"MindSpore-1.1.1-c76-tr5-python3.7-euleros2.8-aarch64\"}," +
"{\"id\":117,\"value\":\"TF-1.15-c75-python3.7-euleros2.8-aarch64\"}" +
"]}"
FlavorInfos = "{\"flavor\":[{\"id\":1,\"value\":\"Ascend : 2 * Ascend 910 CPU:48 核 512GiB\"}," +
"{\"id\":2,\"value\":\"Ascend : 8 * Ascend 910 CPU:192 核 2048GiB\"}" +
"{\"id\":3,\"value\":\"Ascend : 4 * Ascend 910 CPU:96 核 1024GiB\"}" +
"{\"id\":2,\"value\":\"Ascend : 8 * Ascend 910 CPU:192 核 2048GiB\"}," +
"{\"id\":3,\"value\":\"Ascend : 4 * Ascend 910 CPU:96 核 1024GiB\"}," +
"{\"id\":4,\"value\":\"Ascend : 1 * Ascend 910 CPU:24 核 256GiB\"}" +
"]}"
CodePath = "/code/"
@@ -67,6 +66,20 @@ type Flavor struct {
} `json:"flavor"`
}

type Engine struct {
Info []struct {
ID int `json:"id"`
Value string `json:"value"`
} `json:"engine"`
}

type ResourcePool struct {
Info []struct {
ID int `json:"id"`
Value string `json:"value"`
} `json:"resource_pool"`
}

func GenerateTask(ctx *context.Context, jobName, uuid, description string) error {
dataActualPath := setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + "/"
jobResult, err := createNotebook(models.CreateNotebookParams{


+ 16
- 6
routers/repo/modelarts.go View File

@@ -296,25 +296,35 @@ func TrainJobNew(ctx *context.Context) {
ctx.ServerError("GetAllUserAttachments failed:", err)
return
}

ctx.Data["attachments"] = attachs
ctx.Data["engine"] = modelarts.Engine

var resourcePools modelarts.ResourcePool
if err = json.Unmarshal([]byte(modelarts.ResourcePools), &resourcePools); err != nil {
ctx.ServerError("json.Unmarshal failed:", err)
return
}
ctx.Data["resource_pools"] = resourcePools.Info

var engines modelarts.Engine
if err = json.Unmarshal([]byte(modelarts.Engines), &engines); err != nil {
ctx.ServerError("json.Unmarshal failed:", err)
return
}
ctx.Data["engines"] = engines.Info

var versionInfos modelarts.VersionInfo
if err = json.Unmarshal([]byte(modelarts.EngineVersions), &versionInfos); err != nil {
ctx.ServerError("json.Unmarshal failed:", err)
return
}

ctx.Data["engine_versions"] = versionInfos
ctx.Data["engine_versions"] = versionInfos.Version

var flavorInfos modelarts.Flavor
if err = json.Unmarshal([]byte(modelarts.FlavorInfos), &flavorInfos); err != nil {
ctx.ServerError("json.Unmarshal failed:", err)
return
}

ctx.Data["flavor_infos"] = flavorInfos
ctx.Data["flavor_infos"] = flavorInfos.Info
ctx.HTML(200, tplModelArtsTrainJobNew)
}



+ 17
- 17
templates/repo/modelarts/trainjob/new.tmpl View File

@@ -108,7 +108,7 @@
<h4 class="ui dividing header">基本信息</h4>
<div class="required field">
<label>{{.i18n.Tr "repo.modelarts.train_job.job_name"}}</label>
<input name="job_name" id="cloudbrain_job_name" placeholder={{.i18n.Tr "repo.modelarts.train_job.job_name"}} value="{{.job_name}}" tabindex="3" autofocus required maxlength="255">
<input name="job_name" id="trainjob_job_name" placeholder={{.i18n.Tr "repo.modelarts.train_job.job_name"}} value="{{.job_name}}" tabindex="3" autofocus required maxlength="255">
</div>
<div class="inline field">
<label>{{.i18n.Tr "repo.modelarts.train_job.version"}}</label>
@@ -129,16 +129,16 @@
<label>{{.i18n.Tr "repo.modelarts.train_job.AI_driver"}}</label>
<div class="two fields">
<div class="field">
<select class="ui search dropdown" id="cloudbrain_benchmark_category" style='width:385px'>
{{range .benchmark_categories}}
<select class="ui search dropdown" id="trainjob_engines" style='width:385px'>
{{range .engines}}
<option value="{{.Value}}">{{.Value}}</option>
{{end}}
</select>
</div>
<div class="field">
<select class="ui search dropdown" id="cloudbrain_benchmark_category" style='width:385px'>
{{range .benchmark_categories}}
<option value="{{.Value}}">{{.Value}}</option>
<select class="ui search dropdown" id="trainjob_engine_versions" style='width:385px'>
{{range .engine_versions}}
<option name="engine_id" value="{{.ID}}">{{.Value}}</option>
{{end}}
</select>
</div>
@@ -146,20 +146,20 @@
</div>
<div class="inline required field">
<label>{{.i18n.Tr "repo.modelarts.train_job.start_file"}}</label>
<input name="dataset_path" id="cloudbrain_dataset_path" value="{{.dataset_path}}" tabindex="3" autofocus required maxlength="255" readonly="readonly">
<input name="boot_file" id="trainjob_boot_file" value="{{.dataset_path}}" tabindex="3" autofocus required maxlength="255" readonly="readonly">
</div>
</div>
</div>
<div class="required field">
<label>{{.i18n.Tr "repo.modelarts.train_job.dataset"}}</label>
<select class="ui search dropdown" id="cloudbrain_benchmark_category" style='width:385px'>
{{range .benchmark_categories}}
<option value="{{.Value}}">{{.Value}}</option>
<select class="ui search dropdown" id="trainjob_datasets" style='width:385px'>
{{range .attachments}}
<option name="attachment" value="{{.UUID}}">{{.Attachment.Name}}</option>
{{end}}
</select>
</div>
<div class="inline required field">
<div class="inline field">
<label>{{.i18n.Tr "repo.modelarts.train_job.run_parameter"}}</label>
<span id="add_run_para"><i class="plus circle icon"></i>增加运行参数</span>
<div class="dynamic field">
@@ -170,8 +170,8 @@
<h4 class="ui dividing header">资源设置</h4>
<div class="required field">
<label>{{.i18n.Tr "repo.modelarts.train_job.resource_pool"}}</label>
<select class="ui search dropdown" multiple="multiple" id="cloudbrain_benchmark_category" style='width:385px'>
{{range .benchmark_categories}}
<select class="ui search dropdown" id="trainjob_resource_pool" style='width:385px'>
{{range .resource_pools}}
<option value="{{.Value}}">{{.Value}}</option>
{{end}}
</select>
@@ -197,15 +197,15 @@

<div class="required field">
<label>{{.i18n.Tr "repo.modelarts.train_job.standard"}}</label>
<select class="ui search dropdown" multiple="multiple" id="cloudbrain_benchmark_category" style='width:385px'>
{{range .benchmark_categories}}
<option value="{{.Value}}">{{.Value}}</option>
<select class="ui search dropdown" id="trainjob-flavor" style='width:385px'>
{{range .flavor_infos}}
<option name="flavor" value="{{.Value}}">{{.Value}}</option>
{{end}}
</select>
</div>
<div class="inline required field">
<label>{{.i18n.Tr "repo.modelarts.train_job.amount_of_compute_node"}}</label>
<input name="job_type" id="cloudbrain_job_type" value="{{.notebook_type}}" tabindex="3" autofocus required maxlength="255">
<input name="work_server_number" id="trainjob_work_server_num" tabindex="3" autofocus required maxlength="255">
</div>
<div class="field">
<div class="ui save checkbox">


Loading…
Cancel
Save