执行训练
通过环境变量方式配置好参与分布式训练的资源信息后,可参考本节拉起训练进程,执行训练。
前提条件
- 已了解使用前须知。
- 已准备好迁移好的TensorFlow训练脚本和对应数据集。
- 已在每个参与训练的Device上完成资源信息环境变量的配置,请参考通过环境变量配置资源信息。
在多Device上执行训练
在多个Device上进行分布式训练时,需要依次在每个Device上拉起所有训练进程,下面以单机两个Device的训练场景举例介绍如何拉起各训练进程。用户可以在不同的shell窗口依次拉起不同的训练进程。
请确保不同Device上执行的模型相同,否则业务会执行失败,详细可参见多Device上执行模型不同导致应用程序出错。
- 拉起训练进程0:
- 配置除资源信息环境变量以外的其他必选环境变量。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# 请依据实际在下列场景中选择一个进行训练依赖包安装路径的环境变量设置。具体如下(以HwHiAiUser安装用户为例): # 场景一:昇腾设备安装部署开发套件包Ascend-cann-toolkit(此时开发环境可进行训练任务)。 . /home/HwHiAiUser/Ascend/ascend-toolkit/set_env.sh # 场景二:昇腾设备安装部署软件包Ascend-cann-nnae。 . /home/HwHiAiUser/Ascend/nnae/set_env.sh # tfplugin包依赖。 . /home/HwHiAiUser/Ascend/tfplugin/set_env.sh # 若运行环境中存在多个python3版本时,需要在环境变量中配置python的安装路径。如下配置以安装python3.7.5为例,可根据实际修改。 export PATH=/usr/local/python3.7.5/bin:$PATH export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH # 指定运行脚本的Device export ASCEND_DEVICE_ID=0 # 当前脚本所在路径,例如: export PYTHONPATH=/home/test:$PYTHONPATH export JOB_ID=10086
- (可选)配置辅助功能环境变量。
- 为了后续方便定位问题,拉起训练脚本前用户也可以通过环境变量使能Dump计算图。
export DUMP_GE_GRAPH = 2 # 1:全量dump;2:不含有权重等数据的基本版dump;3:只显示节点关系的精简版dump export DUMP_GRAPH_PATH = /home/dumpgraph # 通过该环境变量指定dump图文件存储路径
训练任务启动后,会在${DUMP_GRAPH_PATH}/${pid}_${deviceid}路径下生成若干dump图文件,包括后缀为“.pbtxt”和“.txt”的dump文件。由于dump的数据文件较多且文件都较大,若非问题定位需要,可以不生成dump图。
- 若开发者期望程序编译运行过程中产生的文件落盘到归一目录,可通过环境变量ASCEND_CACHE_PATH与ASCEND_WORK_PATH分别设置共享文件的存储路径与进程独享文件的存储路径。
export ASCEND_CACHE_PATH=/repo/task001/cache export ASCEND_WORK_PATH=/repo/task001/172.16.1.12_01_03
关于环境变量ASCEND_CACHE_PATH与ASCEND_WORK_PATH的使用约束以及落盘文件说明,可参见《环境变量参考》中的“安装配置相关 > 落盘文件配置”章节。
配置此环境变量前,请使用env命令查询ASCEND_CACHE_PATH与ASCEND_WORK_PATH环境变量是否已存在,建议系统各功能使用统一的规划路径。
- 为了后续方便定位问题,拉起训练脚本前用户也可以通过环境变量使能Dump计算图。
- 拉起训练脚本。
- 配置除资源信息环境变量以外的其他必选环境变量。
- 拉起训练进程1:
- 配置除资源信息环境变量以外的其他必选环境变量。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# 请依据实际在下列场景中选择一个进行训练依赖包安装路径的环境变量设置。具体如下(以HwHiAiUser安装用户为例): # 场景一:昇腾设备安装部署开发套件包Ascend-cann-toolkit(此时开发环境可进行训练任务)。 . /home/HwHiAiUser/Ascend/ascend-toolkit/set_env.sh # 场景二:昇腾设备安装部署软件包Ascend-cann-nnae。 . /home/HwHiAiUser/Ascend/nnae/set_env.sh # tfplugin包依赖。 . /home/HwHiAiUser/Ascend/tfplugin/set_env.sh # 若运行环境中存在多个python3版本时,需要在环境变量中配置python的安装路径。如下配置以安装python3.7.5为例,可根据实际修改。 export PATH=/usr/local/python3.7.5/bin:$PATH export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH # 指定运行脚本的Device export ASCEND_DEVICE_ID=1 # 当前脚本所在路径,例如: export PYTHONPATH=/home/test:$PYTHONPATH export JOB_ID=10086
- (可选)配置辅助功能环境变量。
- 为了后续方便定位问题,拉起训练脚本前用户也可以通过环境变量使能Dump计算图。
export DUMP_GE_GRAPH = 2 # 1:全量dump;2:不含有权重等数据的基本版dump;3:只显示节点关系的精简版dump export DUMP_GRAPH_PATH = /home/dumpgraph # 通过该环境变量指定dump图文件存储路径
训练任务启动后,会在${DUMP_GRAPH_PATH}/${pid}_${deviceid}路径下生成若干dump图文件,包括后缀为“.pbtxt”和“.txt”的dump文件。由于dump的数据文件较多且文件都较大,若非问题定位需要,可以不生成dump图。
- 若开发者期望程序编译运行过程中产生的文件落盘到归一目录,可通过环境变量ASCEND_CACHE_PATH与ASCEND_WORK_PATH分别设置共享文件的存储路径与进程独享文件的存储路径。
export ASCEND_CACHE_PATH=/repo/task001/cache export ASCEND_WORK_PATH=/repo/task001/172.16.1.12_01_03
关于环境变量ASCEND_CACHE_PATH与ASCEND_WORK_PATH的使用约束以及落盘文件说明,可参见《环境变量参考》中的“安装配置相关 > 落盘文件配置”章节。
配置此环境变量前,请使用env命令查询ASCEND_CACHE_PATH与ASCEND_WORK_PATH环境变量是否已存在,建议系统各功能使用统一的规划路径。
- 为了后续方便定位问题,拉起训练脚本前用户也可以通过环境变量使能Dump计算图。
- 拉起训练脚本。
- 配置除资源信息环境变量以外的其他必选环境变量。