作者小头像 Lv.1
52 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据
个人勋章
TA还没获得勋章~
成长雷达
10
42
0
0
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据

达成规则

发布时间 2022/03/11 15:44:59 最后回复 yd_214026455 2022/05/09 17:18:44 版块 昇腾
32823 1979 6
发布时间 2022/04/06 12:26:14 最后回复 多米诺的古牌 2022/04/23 21:40:21 版块 昇腾
735 5 0
他的回复:
Modelarts训练Pycharm ToolKit训练:准备工作:注册华为云账号,获取AK/SAK,授权ModelArts,并申请华为云代金卷;获取训练数据集,并进行数据预处理,例如离线制作tfrecords;将数据集(训练脚本)上传到OBS;下载OBS-Browser+,根据指导获取AK/SK,登录;创建文件夹;将数据集拖入即可上传成功。安装Pycharm IDE及Toolkit插件;对TF训练代码进行NPU的迁移与适配。OBS/Modelarts/Pycharm的关系:对象存储服务(object storage service OBS):是基于对象的海量存储服务,为客服提供海量、安全、高可靠、低成本的数据存储能力;ModelArts平台:是华为云面向开发者的一站式开发平台,开发者可以在云上进行数据处理、模型训练以及模型部署等操作,自身不具备存储服务Pycharm插件ToolKit:为开发者快速的将本地代码提交到公有云的训练环境,协助用户完成代码上传、提交训练作业、将训练日志获取到本地展示等用户只需要专注于本地的代码开发即可。训练前的准备工作:1.AK/SAK的获取:在华为云账号中心的“管理我的凭证“申请访问密钥,之后会得到AK/SAK。最多可以添加两个。2.授权ModelArts:ModelArts的全局配置->“北京四区“->获取访问授权3.下载OBS下的OBS_Browser+和ModelArts下的Pycharm-ToolKit以及网上下载PyCharm-community版本4.在Pycharm中增加Ptcharm-ToolKit插件:setting->plugins->上传TK包。ModelArts上配置AK/SAK。5.安装OBS,AK登录,创建文件夹,上传数据集cache文件夹的内存为3T,比较大,一般将数据集和结果存在cache上。修改脚本以支持Pycharm训练:   1、将OBS数据集传输至Modelarts,OBS对象存储服务是s3协议,不能在代码中直接使用该路径,需要使用moxing的接口mox.file.copy_parallel()将训练数据从OBS文件夹中拷贝到Modelarts任务器中。Modelarts会挂载硬盘至“/cache”目录,用户可以使用此目录来存储临时文件,“/cache”与代码目录共有资源,不同资源规格有不同的容量,选用昇腾AI引擎具有3T的容量大小。Modelarts启动一个任务时,会根据界面选择的AI Engine配置,创建一个全新的Docker容器,当训练结束或者异常时,会自动销毁该容器和释放占用的处理器资源,并删除上面的代码和数据。    2、将Modelarts的训练结果传输至OBS,训练结束后,需通过mox.file.copy_parallel()接口将容器中的训练结果数据传输至OBS;    3、依赖包的引用和配置(可选)和 指定PYTHONPATH(可选)pycharm 训练作业:1.配置job configurations:AI Engine:Ascend-Powered-Engine  TF-1.15-python3.7-aarch64                          Boot File Path:modelarts启动的脚本 code directory:脚本代码的文件路径                          OBS Path:需要的OBS路径   Data Path in OBS:obs上的数据集的位置勾选Debugger生成Dump数据和算子编译.o数据。2.单击“Apply and Run”,将自动上传本地代码至云上ModelArts并启动训练;3.训练过程中,可以在控制台查看训练作业日志;其中ModelArts Event Log栏为工具打印的日志,Modelarts Training Log为训练脚本代码打印的。4.训练完成后,可以在项目的MA_LOG文件夹下看到含有对应JOB名称的训练作业日志。在OBS查看训练输出结果:提交训练作业时,系统将自动在配置的OBS Path中使用作业名称创建一个新的文件夹,用于存储训练输出的模型、日志和代码;在作业名称下分别新建三个文件夹“code”、“log”、“output”,用于存储训练代码、日志和输出模型。模型调优:采集Dump数据,通过精度比对工具进行精度分析;采集Profiling数据,通过Profiling工具进行性能分析;通过Auto Tune工具进行算子自动调优。ModelArts Web训练:ModelArts Web训练需要在昇腾AI处理器上调试基本没有问题后,直接在Web页面上部署训练。修改训练脚本以支持Web页面训练:需要保证脚本中的输入路径(data_url)和输出路径(train_url)尽量为相对路径,以免造成拷贝到ModelArts容器后路径失效。训练脚本的依赖包的引用和适配:由于无法知晓“project_dir”在容器中的位置,所以利用绝对路径,在“main.py”中将“project_dir”添加到“sys.path”中,再导入。启动训练脚本之前指定PYTHONPATH训练脚本和数据集上传到OBS创建OBS桶,并将训练集和训练脚本上传到桶目录下,并创建训练输出目录和日志输出目录:test:dataset、train、output、log创建训练任务  1、进入ModelArts主页并进入控制台;   2、创建算法:算法页面配置:注意数据集路径data_url和输出路径train_url以及脚本启动文件路径等配置   3、下一步在“超参规范”页面中,可以根据实际情况定义此算法的超级参数(可选);下一步的“使用约束”页面中,可以定义此算法的输入约束和训练约束。     4、使用已有算法创建训练作业以及训练配置:算法来源:算法管理  算法名称:选择上一步创建好的算法    资源池:选择公共资源池>Ascend,规格选择Ascend:1*Ascend910CPU:24核96GiB,表示单机单卡规格。      5、查看运行结果:在训练作业列表中,可查看作业的运行详情;  在“日志”页签查看当前训练作业的运行日志并可下载日志到本地;  查看资源占用情况:如果NPU曲线不为0,说明当前网络下沉到了昇腾AI处理器上训练。
发布时间 2022/04/06 12:26:14 最后回复 多米诺的古牌 2022/04/23 21:40:21 版块 昇腾
735 5 0
他的回复:
第三节课笔记:Modelarts训练PyCharm ToolKit 训练:准备工作:注册华为云账号,获取AK/SAK,授权ModelArts,并申请华为云代金卷;获取训练数据集,并进行数据预处理,例如离线制作tfrecords;将数据集(训练脚本)上传到OBS;下载OBS-Browser+,根据指导获取AK/SK,登录;创建文件夹;将数据集拖入即可上传成功。安装Pycharm IDE及Toolkit插件;对TF训练代码进行NPU的迁移与适配。OBS/Modelarts/Pycharm的关系:对象存储服务(object storage service OBS):是基于对象的海量存储服务,为客服提供海量、安全、高可靠、低成本的数据存储能力;ModelArts平台:是华为云面向开发者的一站式开发平台,开发者可以在云上进行数据处理、模型训练以及模型部署等操作,自身不具备存储服务Pycharm插件ToolKit:为开发者快速的将本地代码提交到公有云的训练环境,协助用户完成代码上传、提交训练作业、将训练日志获取到本地展示等用户只需要专注于本地的代码开发即可。训练准备工作:1.AK/SAK的获取:在华为云账号中心的“管理我的凭证“申请访问密钥,之后会得到AK/SAK。最多可以添加两个。2.授权ModelArts:ModelArts的全局配置->“北京四区“->获取访问授权3.下载OBS下的OBS_Browser+和ModelArts下的Pycharm-ToolKit以及网上下载PyCharm-community版本4.在Pycharm中增加Ptcharm-ToolKit插件:setting->plugins->上传TK包。ModelArts上配置AK/SAK。5.安装OBS,AK登录,创建文件夹,上传数据集配置job configurations:1.配置job configurations:AI Engine:Ascend-Powered-Engine  TF-1.15-python3.7-aarch64                          Boot File Path:modelarts启动的脚本 code directory:脚本代码的文件路径                          OBS Path:需要的OBS路径   Data Path in OBS:obs上的数据集的位置勾选Debugger生成Dump数据和算子编译.o数据。模型调优:采集Dump数据,通过精度比对工具进行精度分析;采集Profiling数据,通过Profiling工具进行性能分析;通过Auto Tune工具进行算子自动调优。训练完成后,可以在项目的MA_LOG文件夹下看到含有对应JOB名称的训练作业日志。在OBS查看训练输出结果:提交训练作业时,系统将自动在配置的OBS Path中使用作业名称创建一个新的文件夹,用于存储训练输出的模型、日志和代码;在作业名称下分别新建三个文件夹“code”、“log”、“output”,用于存储训练代码、日志和输出模型ModelArts Web训练:ModelArts Web训练需要在昇腾AI处理器上调试基本没有问题后,直接在Web页面上部署训练。修改训练脚本以支持Web页面训练:需要保证脚本中的输入路径(data_url)和输出路径(train_url)尽量为相对路径,以免造成拷贝到ModelArts容器后路径失效。训练脚本的依赖包的引用和适配启动训练脚本之前指定PYTHONPATH训练脚本和数据集上传到OBS创建OBS桶,并将训练集和训练脚本上传到桶目录下,并创建训练输出目录和日志输出目录:test:dataset、train、output、log创建训练任务     1.进入ModelArts主页并进入控制台;      2.创建算法:算法页面配置:配置数据集路径data_url和输出路径(train_url)以及启动文件脚本的路径等      3.下一步在“超参规范”页面中,可以根据实际情况定义此算法的超级参数(可选);下一步的“使用约束”页面中,可以定义此算法的输入约束和训练约束。      4.使用已有算法创建训练作业以及训练配置:算法来源:算法管理  算法名称:选择上一步创建好的算法    资源池:选择公共资源池>Ascend,规格选择Ascend:1*Ascend910CPU:24核96GiB,表示单机单卡规格。      5.查看运行结果:在训练作业列表中,可查看作业的运行详情;  在“日志”页签查看当前训练作业的运行日志并可下载日志到本地;  查看资源占用情况:如果NPU曲线不为0,说明当前网络下沉到了昇腾AI处理器上训练。
发布时间 2022/03/11 15:44:59 最后回复 yd_214026455 2022/05/09 17:18:44 版块 昇腾
32823 1979 6
发布时间 2022/03/11 15:44:59 最后回复 yd_214026455 2022/05/09 17:18:44 版块 昇腾
32823 1979 6
发布时间 2022/04/06 12:26:14 最后回复 多米诺的古牌 2022/04/23 21:40:21 版块 昇腾
735 5 0
他的回复:
第二节课笔记:1.模型迁移的原因:高性能AI处理器高效地高速地计算参数量、样本数繁多的模型,大大缩短模型训练的时间可借助异构计算架构CANN的Plugin设配层转换,使TensorFlow和PyTorch等深度学习框架下的模型可以在昇腾AI处理器上训练和推理。模型迁移主要包括:手工迁移和自动迁移2.两种模型迁移方式:自动迁移方式:通过迁移工具对原始脚本进行 AST 语法树扫描,可自动分析原生的 TensorFlow API 在昇腾 AI 处理器上的支持度,并将原始的 TensorFlow训练脚本自动迁移成昇腾 AI 处理器支持的脚本,对于无法自动迁移的 API,可以参考工具输出的迁移报告,对训练脚本进行相应的适配修改。手工迁移方式:算法工程师需要人工分析 TensorFlow 训练脚本中的 API 支持度情况,并且参照文档逐一手工修改不支持的 API,以便在昇腾 AI 处理器上训练,该种方式较为复杂,我们建议大家优先使用自动迁移方式。3.自动迁移详解Ascend平台提供的TensorFlow1.15网络迁移工具,该工具适用于原生的TensorFlow训练脚本迁移场景,分析原生的TensorFlow Python API和Horovod Python API在昇腾AI处理器上的支持度情况,自动将Tensorflow训练脚本自动迁移成昇腾AI支持的脚本。而无法迁移的API,则可对训练脚本进行相应的适配修改。获取:a.CANN软件的“tfplugin安装目录/tfplugin/latest/python/site-packages/npu_bridge/convert_tf2npu/”目录下;  b.直接下载convert_tf2npu文件夹到linux或wins环境上使用限制:a.要求原始脚本在GPU/CPU上跑通且精度收敛;b.要求原始脚本仅使用TF1.15官方API和Horovod官方API,不支持原生Keras API和CuPy API; c.脚本迁移最好使用如下方式:import tensorflow as tf import tensorflow.compat.v1 as tf import horovod.tensorflow as hvdd.不支持float64/complex64/complex128/DT_VARIANT数据类型;e.不支持te.keras和原生Keras的Loss Scale功能迁移;f.不支持动态shape网络迁移 。迁移操作步骤:a.安装依赖:pip install pandas xlrd==1.2.0  openpyxl  tkintertable goole_pastab.linux环境操作步骤:python3 main.py -i modelfile  参数-i(迁移脚本原始路径)-o指指定迁移后的脚本路径  -r 指定生成的迁移报告路径  -m(python执行入口文件)-d原始脚本支持分布式训练,需要指定分布式策略,其取值为tf_strategy (tf.distribute.Strategy分布式策略)和horovod(horovod策略);-h 获取使用帮助c.windows环境操作步骤:python3 main_win.py启动工具窗口d.迁移结束产生迁移脚本和迁移报告迁移报告说明:success_report.txt:记录脚本的全部修改点      failed_report.txt:记录迁移过程中的报错信息以及不支持的API      api_analysis.xlsx:API支持度分析,用户可以筛选“不支持(无迁移方案,建议不使用)”和“废弃类”API单独分析,并根据修改建议修改训练脚本。   api_brief_report.txt:汇总脚本中API支持度统计结果单Device训练:a.配置环境变量  b.执行训练脚本拉起训练过程:python3 /home/xxx.py检查执行结果:a.检查训练过程是否正常,Loss是否收敛   b.训练结束后,一般会生成如下目录和文件:model目录:存放checkpoint文件和模型文件  在脚本执行目录下生成kernel_meta:用于存放算子的.o及.json文件,可用于GE/FE问题定位,默认情况该目录没有文件,可在训练脚本中将运行参数op_debug_level传入3,从而保留.o和.json文件。问题定位:通过日志分析并定位问题,Host侧日志路径~/ascend/log/plog/plog_*.log和Device侧日志路径:~/ascend/log/device-id/device-id_*.log。日志格式:[Level] ModuleName(PID,PName):DateTimeMS  [FileName:LineNumber]LogContent ModuleName:系统类报错、数据类处理、GE、FE、TEFUSION、RUNTIME迁移好的TensorFlow训练脚本在裸机环境的多个Device上执行训练,单个Device上对应执行一个训练进程,不支持多个进程在同一个Device上进行训练。如果使用1台训练服务器(Server),要求实际参与集合通信的昇腾AI处理器数目只能为1/2/4/8,且0-3卡和4-7卡各为一个组网,使用2张卡或4张卡训练时,不支持跨组网创建设备集群。如果使用Server集群,即由集群管理主节点+一组训练服务器(Server)组成训练服务器集群,要求参与集合通信的的昇腾AI处理器数目只能为8*n(其中n为参与训练的Server个数,上限为512)。且n为2的指数倍情况下,集群性能最好,建议用户优先采用此种方式进行集群组网。4.手工迁移:迁移流程:模型迁移->模型训练->训练性能提升->训练精度提升->将ckpt模型转换成pb模型手工迁移有:Estimator迁移,keras迁移和sess.run迁移Estimation进行训练脚本开发的流程:数据预处理、模型构建、进行配置、执行训练。keras API和Estimation都属于TF高阶API,提供了方便的构图功能,并对训练、评估、验证、导出都提供了方便的接口。流程:数据预处理、模型搭建、模型编译、模型训练。sess.run API属于TF的低阶API,其灵活性较高,但模型的实现较为复杂。
发布时间 2022/03/11 15:44:59 最后回复 yd_214026455 2022/05/09 17:18:44 版块 昇腾
32823 1979 6
发布时间 2022/03/23 12:54:38 最后回复 yd_272054718 2022/04/03 16:47:00 版块 昇腾
517 5 0
发布时间 2022/03/11 15:44:59 最后回复 yd_214026455 2022/05/09 17:18:44 版块 昇腾
32823 1979 6