code.zip
from __future__ import absolute_import, print_function
from ti import session
import sys
from ti.tensorflow import TensorFlow
# 初始化session
ti_session = session.Session()
# 训练数据存放的路径.格式为cos://作为前缀拼接bucket名称再拼接训练数据存放的路径
inputs = 'cos://tesla-ap-shanghai-1256322946/cephfs/tesla_common/deeplearning/dataset/contest/demo'
# 指定训练集、测试集和训练结果路径
hyperparameters = {'train_path': '/opt/ml/input/data/training/iris_training.csv',
'test_path': '/opt/ml/input/data/training/iris_test.csv',
'result_dir': '/opt/ml/output'}
# 授权给TI的服务角色
role = "TIONE_QCSRole"
# 创建一个Tensorflow Estimator
tf_estimator = TensorFlow(role=role,
train_instance_count=1,
train_instance_type='TI.3XLARGE24.12core24g',
py_version='py3',
script_mode=True,
hyperparameters=hyperparameters,
framework_version='1.14.0',
entry_point='main.py',
source_dir='code')
# 提交Tensorflow训练任务
tf_estimator.fit(inputs)
Training job request : {
"TrainingJobName": "tensorflow-2020-04-15-03-26-49-992",
"AlgorithmSpecification": {
"TrainingInputMode": "File",
"TrainingImageName": "ccr.ccs.tencentyun.com/ti_public/tensorflow:1.14.0-py3"
},
"InputDataConfig": [
{
"DataSource": {
"CosDataSource": {
"DataDistributionType": "FullyReplicated",
"DataType": "COSPrefix",
"Bucket": "tesla-ap-shanghai-1256322946",
"KeyPrefix": "cephfs/tesla_common/deeplearning/dataset/contest/demo"
}
},
"ChannelName": "training"
}
],
"OutputDataConfig": {
"CosOutputBucket": "ti-ap-shanghai-100010875047-1259675134",
"CosOutputKeyPrefix": ""
},
"ResourceConfig": {
"InstanceCount": 1,
"InstanceType": "TI.3XLARGE24.12core24g",
"VolumeSizeInGB": 0
},
"RoleName": "TIONE_QCSRole",
"StoppingCondition": {
"MaxRuntimeInSeconds": 86400
},
"HyperParameters": "{\"train_path\": \"\\\"/opt/ml/input/data/training/iris_training.csv\\\"\", \"test_path\": \"\\\"/opt/ml/input/data/training/iris_test.csv\\\"\", \"result_dir\": \"\\\"/opt/ml/output\\\"\", \"ti_submit_directory\": \"\\\"cos://ti-ap-shanghai-100010875047-1259675134/tensorflow-2020-04-15-03-26-49-992/source/source.tar.gz\\\"\", \"ti_program\": \"\\\"main.py\\\"\", \"ti_container_log_level\": \"20\", \"ti_job_name\": \"\\\"tensorflow-2020-04-15-03-26-49-992\\\"\", \"ti_region\": \"\\\"ap-shanghai\\\"\"}"
}
Training job response : {
"TrainingJobName": "tensorflow-2020-04-15-03-26-49-992",
"RequestId": "06bb534b-f874-4ba6-9610-1d41f5044417"
}
如果训练任务完成有模型输出,那么TI会将模型上传到cos上。
你可以通过output_path='cos://'指定模型存储的cos路径。如果没指定,TI会按以下格式创建存储通
ti-region-uin-appid,最终模型会放在 #{bucket}/#{job_name}/output/目录下。
TI训练过程中会把日志上传到腾讯云日志服务中,使用腾讯云日志服务需要先开通。
TI会针对训练任务创建TiOne日志集和TrainingJob日志主题,通过日志检索功能可以搜索对应训练任务的日志。
目前TI会默认创建一个日志集(TI)和日志主题(TrainingJob)
TI内置了任务名称(job)关键词,可以通过以下条件过滤指定任务的日志
job: #{job_name}
更多日志检索语法请参考https://cloud.tencent.com/document/product/614/16981
您可以在TI产品控制台上的【任务列表】-【SDK任务】中查看您提交的SDK任务历史,点击【任务名称】列中的任务名可以看到任务的详细信息,在列表的右侧【监控】可以查看任务运行的资源监控图表
至此,我们完成了使用智能钛机器学习平台的 TI SDK 训练模型的流程。在使用过程中,如果您想了解更多的操作详情,请参考TI-ONE 官方文档。