如何使用 TI-ONE 平台 SDK 玩转算法大赛

背景

  • 在这篇文章中,我们向您介绍智能钛机器学习平台(TI-ONE)SDK 的使用流程。本文所有内容和数据路径均为示例,仅演示流程,并非比赛官方数据。
  • 如果您对智能钛机器学习平台(TI-ONE)的基本情况还缺乏了解,您可以阅读 什么是智能钛机器学习平台。
  • 在开始之前,请确保您已经完成了注册与开通智能钛服务。

数据说明

  • 本案例为测试案例,训练数据已经存放到cos://tesla-ap-guangzhou-1256322946/cephfs/tesla_common/deeplearning/dataset/contest/demo,您可以下载到本地或者Notebook中试用。比赛数据需要报名成功后获取。
  • 本测试案例数据存放在上海地域的cos中,请在上海地域执行例子中的代码。训练代码路径放在code文件夹中,文件可点击下方链接下载,上传完成后如下图:

如何使用 TI-ONE 平台 SDK 玩转算法大赛_第1张图片

如何使用 TI-ONE 平台 SDK 玩转算法大赛_第2张图片

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 官方文档。

你可能感兴趣的:(2020腾讯广告算法大赛)