NPU训练环境准备
完成MindX DL的安装后,可使用yaml下发一个训练任务,检测系统是否可以正常运行。
获取训练镜像
可选择以下方式中的一种来获取训练镜像:
- (推荐)从昇腾镜像仓库根据系统架构(ARM/X86)下载训练基础镜像(如:ascend-tensorflow)。基于训练基础镜像进行修改,将容器中默认用户修改为root(21.0.4版本之后训练基础镜像默认用户为非root)。基础镜像中不包含训练脚本、代码等文件,训练时通常使用挂载的方式将训练脚本、代码等文件映射到容器内。
- 从头开始定制用户自己的训练镜像,制作过程请参考使用Dockerfile构建容器镜像(TensorFlow)。
可将下载/制作的训练基础镜像重命名,如:tf_arm64:b030。
(推荐)加固镜像
可参考容器镜像安全加固。
准备数据集
- 请用户自行准备ResNet-50对应的数据集,使用时请遵守对应规范。
- 管理员用户上传数据集到存储节点。
- 进入“/data/atlas_dls/public”目录,将数据集上传到任意位置,如“/data/atlas_dls/public/dataset/resnet50/imagenet_TF”。
root@ubuntu:/data/atlas_dls/public/dataset/resnet50/imagenet_TF# pwd /data/atlas_dls/public/dataset/resnet50/imagenet_TF
- 执行du -sh命令,查看数据集大小。
root@ubuntu:/data/atlas_dls/public/dataset/resnet50/imagenet_TF# du -sh 144G
- 进入“/data/atlas_dls/public”目录,将数据集上传到任意位置,如“/data/atlas_dls/public/dataset/resnet50/imagenet_TF”。
修改训练脚本
- 获取脚本文件。
- 将获取训练脚本中下载的脚本解压到本地。
- 将解压后的文件夹拷贝到“/data/atlas_dls/code/ResNet50_for_TensorFlow_1.7_code”目录。
- 进入“MindXDL-deploy”仓库,选择“3.0.RC3”分支。获取“samples/train”目录中的“train_start.sh”,“utils.sh”和“rank_table.sh”文件,结合1.b,在host上构造成如下的目录结构。
/data/atlas_dls/code/ResNet50_for_TensorFlow_1.7_code ├── scripts │ ├── train_start.sh │ ├── utils.sh │ ├── rank_table.sh │ ... │ ... ├── EnvPerformCheck(文件夹) ├── infer ├── on_platform ├── src ├── test ... └── configs
- 修改“/data/atlas_dls/code/ResNet50_for_TensorFlow_1.7_code/src/mains/res50.py”文件,增加如下内容
... config['model_dir'] = FLAGS.model_dir config['over_dump'] = FLAGS.over_dump config['over_dump_path'] = FLAGS.over_dump_path # 如果没有则增加以下两行代码,注意使用空格作为缩进并对齐 config['data_url'] = FLAGS.data_path print("data_url :%s" %(config['data_url'])) print("iterations_per_loop:%d" %(config['iterations_per_loop'])) ...
- 训练任务yaml示例中“config_file”为训练脚本的参数,它的值表示配置文件的名字,如“--config_file=res50_256bs_8p”表示训练脚本使用的配置文件是“res50_256bs_8p.py”。
- Atlas 800 训练服务器,训练yaml示例为单机8卡任务,“config_file”参数的值默认为res50_256bs_8p,对应配置文件为“res50_256bs_8p.py”。文件配置参考如下。
... 'rank_size': 8, # 训练任务实际使用的芯片总个数 'shard': True, # 多卡需要配置为True ... 'num_epochs': None, ...
- 服务器(插Atlas 300T 训练卡),训练yaml示例为单机单卡任务,“config_file”参数的值默认为res50_256bs_1p,对应配置文件为“res50_256bs_1p.py”。文件配置参考如下。
... 'rank_size': 1, # 训练任务实际使用的芯片总个数 'shard': False, # 单卡需要配置为False ... 'num_epochs': None, ...
- Atlas 800 训练服务器,训练yaml示例为单机8卡任务,“config_file”参数的值默认为res50_256bs_8p,对应配置文件为“res50_256bs_8p.py”。文件配置参考如下。
父主题: TensorFlow