PAI-TF是深度学习计算框架,支持多种模型训练。本文为您介绍PAI-TF任务涉及的命令参数和相关IO参数。

PAI-TF命令参数

您可以在PAI-Designer的SQL节点、DataWorks SQL节点及MaxCompute的命令行客户端使用PAI命令发起任务,或者直接在PAI-Designer中使用封装好的TensorFlow组件。PAI命令及其参数如下。
# 实际使用中,需要根据业务需求设置参数。
pai -name tensorflow1120_ext
    -project algo_public
    -Dscript= 'oss://<bucket_name>.<oss_host>.aliyuncs.com/*.tar.gz'
    -DentryFile='entry_file.py'
    -Dbuckets='oss://<bucket_name>.<oss_host>.aliyuncs.com/<path>'
    -Dtables='odps://prj_name/tables/table_name'
    -Doutputs='odps://prj_name/tables/table_name'
    -DcheckpointDir='oss://<bucket_name>.<oss_host>.aliyuncs.com/<path>'
    -Dcluster="{\"ps\":{\"count\":1},\"worker\":{\"count\":2,\"gpu\":100}}"
    -Darn="acs:ram::******:role/aliyunodpspaidefaultrole"
    -DossHost="oss-cn-beijing-internal.aliyuncs.com"
参数说明如下表所示。
参数描述示例默认值是否必选
script用于指定要执行的TF算法脚本,script的格式为file:///path/to/fileproject_name/resources/resource_namefile:///path/to/file为绝对路径。
TensorFlow模型文件(python)。文件类型如下:
  • 本地文件
  • 本地的tar包(gzip压缩,扩展名为tar.gz)
  • python文件
格式为oss://..aliyuncs.com/.tar.gzoss://..aliyuncs.com/*.py
oss://demo-yuze.oss-cn-beijing-internal.aliyuncs.com/deepfm/deepfm.tar.gz
entryFile如果script是一个tar包,则需通过该参数指定入口脚本。main.py如果script是单个脚本,则无需配置该参数。
buckets输入bucket。

如果使用多个bucket,则需要以逗号隔开,每个bucket须以/结尾。

oss://..aliyuncs.com/
tables输入表,如果使用多个表,则需要以逗号隔开。odps:///tables/
outputs输出表,如果使用多个表,则需要以逗号隔开。odps:///tables/“”odps:///tables/
gpuRequired该参数决定运行script参数所指定的训练脚本的服务器是否需要GPU。

默认为一张卡,200表示申请2张卡。该功能只适用于单机训练任务,多机任务请参考Cluster。如果不需要使用GPU进行计算,可以将gpuRequired参数值设置为0(该功能只支持TensorFlow1120)。

100
checkpointDirTF checkpoint目录oss://..aliyuncs.com/
cluster分布式运行信息,详情请参见下面的分布式命令参数表格{\"ps\":{\"count\":1},\"worker\":{\"count\":2,\"gpu\":100}}
enableDynamicCluster指定是否打开单个worker节点failover的功能。

当该参数设置为true时,worker节点出现故障时会被重新拉起,训练job不会因此而失败。

  • true
  • false
false
jobName您需要指定实验名称,用于在后期更好的分析历史所有该实验的性能指标。

参数建议是一个有意义的字符串,避免为test之类的字符串。

jk_wdl_online_job
maxHungTimeBeforeGCInSeconds提交作业时新增-DmaxHungTimeBeforeGCInSeconds参数,用于设置自动回收需要观察到GPU挂起状态的最大持续时间。

该参数设置为0时,则关闭该功能。

36003600
分布式PAI-TF支持cluster参数,您可以通过该参数指定PS和Worker数目。cluster的格式为JSON,引号需要转义,示例如下。
{
  "ps": {
    "count": 2
  },
  "worker": {
    "count": 4
  }
}
其中JSON包含两个key,即psworker,每个key又分别包含如下信息。
参数描述默认值是否必选
countpsworker的数量。
gpupsworker申请的GPU数量,取值100表示一张GPU卡。如果workergpu配置为0,则系统会调度到CPU集群,不消耗GPU,以保障调度。ps对应的gpu默认值为0,worker对应的gpu默认值为100。
cpupsworker申请的CPU数量,取值100表示一个CPU核。600
memorypsworker申请的内存,取值100表示100 MB。30000

IO参数

IO相关参数如下表所示。
参数描述
tables用于指定需要读取的Table路径。
outputs用于指定写入的Table路径,如果需要指定多个路径,可以使用逗号分割。
  • 非分区表Table路径格式:odps://<prj_name>/tables/<table_name>
  • 分区表Table路径格式:odps://<proj_name>/tables/<table_name>/<pt_key1=v1>
  • 多级分区表Table路径格式:odps://<prj_name>/tables/<table_name>/<pt_key1=v1>/<pt_key2=v2>
buckets用于指定算法将要读取的OSS bucket。

与其他MaxCompute的IO不同,使用OSS需要配置role_arnhost

您可以登录PAI控制台,在全部产品依赖页面的Designer区域,单击操作列下的查看授权信息,获取role_arn,具体操作请参见PAI访问云产品授权:OSS

checkpointDir用于指定算法写入的OSS bucket。