From 32f8c0acf2dfc55bd450b0a763334e62bd552374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E4=B8=9A=E5=BA=86?= Date: Mon, 26 Jul 2021 08:40:52 +0000 Subject: [PATCH 1/8] =?UTF-8?q?add=20Ascend-PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86=E6=8C=87=E5=AF=BC/PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86-=E4=BA=A4=E4=BB=98=E6=A0=87=E5=87=86?= =?UTF-8?q?=E4=B8=8E=E4=BA=A4=E4=BB=98=E4=BB=B6.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" new file mode 100644 index 0000000..e69de29 -- Gitee From c14baedaef52387b51dcd6685ff9d338b1cfc4fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E4=B8=9A=E5=BA=86?= Date: Mon, 26 Jul 2021 08:42:42 +0000 Subject: [PATCH 2/8] =?UTF-8?q?update=20Ascend-PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86=E6=8C=87=E5=AF=BC/PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86-=E4=BA=A4=E4=BB=98=E6=A0=87=E5=87=86?= =?UTF-8?q?=E4=B8=8E=E4=BA=A4=E4=BB=98=E4=BB=B6.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...16\344\272\244\344\273\230\344\273\266.md" | 211 ++++++++++++++++++ 1 file changed, 211 insertions(+) diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" index e69de29..c34c430 100644 --- "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" +++ "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" @@ -0,0 +1,211 @@ +# 交付标准与规范 +- 交付标准 + - 精度: + om模型推理的精度与Ascend 910训练出的权重精度或PyTorch预训练模型github代码仓README.md或官网文档公布的精度对比,精度下降不超过1%则认为精度达标 + - 性能: + Ascend benchmark工具在数据集上推理测的NPU 310单颗device吞吐率乘以4颗即单卡吞吐率大于TensorRT工具测的GPU T4单卡吞吐率则认为性能达标 + 如若交付要求中对性能有要求(易模型),310性能必须高于t4性能 + 如若交付要求中没有对性能有要求(中难模型),310上推理需尽可能进行性能优化以使性能达标,默认310性能必须大于0.5倍t4性能 + 若无法达到,则需要向华为方提交性能已达瓶颈的认证申请,华为方将定期组织专家组对申请模型进行评审,通过评审的模型允许以不高于t4的性能进行交付 + - 脚本: + 脚本命名格式需统一,含模型名称的文件名的模型名称使用驼峰命名,模型名称含多个字符串时用-连接; + xxx_pth2onnx.py中不能使用从网络下载权重pth文件的代码,xxx_pth2onnx.py应有输入输出参数,输入是本地权重pth文件,输出是生成的onnx模型文件名; + xxx_pth_preprocess.py与xxx_pth_postprocess.py尽可能只引用torch,torchvision,onxx,numpy,Pillow,opencv-python等基础库; + 代码要尽可能通用与精简,少包含没有使用的库与函数,少复制开源模型代码 + - 推理过程: + 需要提供端到端推理过程中执行的命令等,需要提供端到端推理遇到的关键问题的简要调试过程,至少包含模型转换要点,精度调试,性能优化 + + >![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) +**说明:** + > 如果已经有了Ascend 910训练提供的权重文件,那么优先使用训练的权重做离线推理,精度与该权重精度对齐,注意基于开源PyTorch与开源模型代码做推理,训练修改的影响精度的代码需要移植过来;如果910还没有训练好权重,可以使用官网开源模型代码提供的基础配置的pth权重文件,然后对比om精度与该pth权重的精度 + > + > 如果模型支持多batch,需要测试batch1,4,8,16,32的精度与性能,模型测试脚本与提交代码的描述只需提供bs1和bs16的精度性能数据 + > + > 由于随机数不能模拟真实数据分布,Ascend benchmark工具纯推理功能测试性能对少数模型可能不太准,所以模型测试脚本与提交代码描述中的性能数据以benchmark在数据集上推理时得到的性能数据为准 + > + > 如果导出的onnx因包含npu自定义算子等不能推理,可在t4上运行开源评测脚本测试pth模型在线推理性能 + > + > 对于性能不达标的模型,需要使用Ascend profiling工具分析并尝试优化。对于算子导致的性能问题,优先修改模型代码以使其选择性能好的npu算子,并在modelzoo上提issue。 + > + > 如果需要修改开源模型代码,将修改用git diff做成一个patch文件,交付件不要交付开源代码仓里的代码,只需要交付这个patch文件。 + > + > 通用数据集统一放在/root/datasets/或/opt/npu/目录 + +- 交付件 + - 代码交付件checklist,以Nested-UNet模型为例: + ``` + Nested-UNet #模型名称命名的文件夹 + ├── env.sh #环境变量 + ├── Nested_UNet.patch #如果需要修改开源模型代码,以补丁形式修改 + ├── Nested_UNet_pth2onnx.py #模型转换脚本,通过sys.path.append(r"./pytorch-nested-unet") from archs import NestedUNet的方式引用开源模型代码 + ├── Nested_UNet_preprocess.py #模型前处理脚本,不要import该脚本没有用到的库,类或函数,输入的数据集路径要以参数形式传递给脚本而不是将其写在脚本里 + ├── gen_dataset_info.py #生成数据集info文件 + ├── Nested_UNet_postprocess.py #模型后处理脚本,尽量不import开源模型代码,若因此复制大量开源代码的评测函数,为求精简,也可import开源模型代码的函数 + ├── requirements.txt #模型离线推理用到的所有且必要的依赖库,PyTorch优选开源1.5.0版本,特殊情况选用1.8.0,若其它库具体版本无要求可不写版本 + ├── README.md #模型离线推理说明README + ├── LICENSE #统一选用Apache LICENCE + ├── aipp_Nested_UNet_pth.config #aipp输入时的配置,图片类模型才需要提供该文件 + ├── modelzoo_level.txt #模型精度性能结果 + └── test + ├── pth2om.sh + ├── eval_acc_perf.sh + ├── parse.py + └── aipp_Nested_UNet_test.sh + ``` + >![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) +**说明:** + > Nested-UNet:严格以模型名称命名文件夹等 + > + > Xxx_pth2onnx.py:避免脚本从网上下载权重,加载模型时有pretrained之类的参数的话设置为False;pth2onnx脚本是要在cpu上运行的,因此涉及device相关的参数选为cpu,并且torch.load加载权重时参数map_location='cpu';如果模型支持导出动态batch的onnx,torch.onnx.export导出onnx文件时需要通过参数dynamic_axes设置动态batch,动态batch的onnx文件可以测试不同batch输入时的性能;脚本应尽量精简,少import不需要的库,少复制开源代码,少设置没有用到的模型参数,通常通过sys.path.append(r"./pytorch-nested-unet") from archs import NestedUNet的方式引用开源模型代码;输入的权重文件应以参数形式传递给脚本而不是将权重路径写在脚本里;如果是开源模型代码仓提供的pth2onnx脚本,则不需要提交该文件 + > + > Xxx_preprocess.py:不要import没有用到的库,类或函数;图片预处理一般是缩放,裁剪,均值方差归一化,加pad,通道转换,调用cv2或Pillow接口参考开源模型代码预处理部分实现,不应将开源模型代码预处理相关的dataloader框架也复制过来,代码要精简;输入的数据集路径要以参数形式传递给脚本而不是将其写在脚本里 + > + > Xxx_postprocess.py:尽量不import开源模型代码,但是如果因此脚本直接复制了大量开源模型代码的评测函数,为求精简,也可以import开源模型代码的类或函数;不应将开源模型代码评测相关的框架代码也复制过来,只需要引用实际实现评测的函数,代码要精简 + > + > requirements.txt:模型离线推理用到的所有依赖库与版本,开源模型代码依赖的第三方库模型离线推理时可能并没有依赖,不要写入实际没有依赖的库,常用的是torch,torchvision,onnx,numpy,Pilow,opencv-python;PyTorch优选开源1.5.0版本,特殊情况可选用1.8.0但是需写明具体原因,tochvision版本与torch是配套的,onnx版本默认选用1.7.0,其它库具体版本是离线推理时使用的具体版本,如果对这些库的具体版本没有特殊要求,这些库版本可以不写 + + pth2onnx基本操作与模型目录结构: + ``` + cd Nested-UNet + git clone https://github.com/4uiiurz1/pytorch-nested-unet + cd pytorch-nested-unet + patch -p1 < ../Nested_UNet.patch #以补丁形式修改模型代码,其中补丁是通过git diff > ./Nested_UNet.patch生成的 + cd .. + python3.7 Nested_UNet_pth2onnx.py nested_unet.pth nested_unet.onnx + #pth2onnx脚本通过sys.path.append(r"./pytorch-nested-unet") from archs import NestedUNet的方式引用NestedUNet模型结构 + #工作目录可以选为模型目录或者开源模型代码目录,模型转换与前后处理脚本和开源模型代码尽量处于同一层,执行脚本命令时要根据工作目录确定路径 + ``` + + 代码交付件参考:[代码交付件模板](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/tree/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/ONNX%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/official/cv/ReID/ReID-strong-baseline) + + 代码交付形式: + gitee网址:https://gitee.com/ascend/modelzoo/tree/master/contrib/ACL_PyTorch/Research + commit信息格式:[学校学院名称][高校贡献][PyTorch离线推理][模型名称]-PR内容摘要 + 模型名称风格为大驼峰,模型名含多个字符串时使用横杠或下划线连接,当上下文用横杠时模型名用下划线连接,否则用横杠连接 + 对于batch1与batch16,npu性能均高于T4性能1.2倍的模型,放在Benchmark目录下,1-1.2倍对应Official目录,低于1倍放在Research目录,目前都放在contrib/ACL_PyTorch/Research下即可 + + - 文档交付件: + [PyTorch离线推理-Xxx模型测试报告.docx](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-Xxx%E6%A8%A1%E5%9E%8B%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A.docx) + [PyTorch离线推理-Xxx模型推理指导书.docx](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-Xxx%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC%E4%B9%A6.docx) + + - 算子问题导致精度不达标或性能不达标时的其它交付件: + 1.如果使用autotune模型性能可以达标,需要交付知识库 + 2.在modelzoo提issue + [issue模板](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-issue%E6%A8%A1%E6%9D%BF.md) + [issue示例](https://gitee.com/ascend/modelzoo/issues/I3W5Y3?from=project-issue) + 3.模型性能不达标初步优化压缩包 + ``` + PyTorch离线推理-ICNet性能不达标初步优化 + ├── PyTorch离线推理-ICNet模型测试报告.docx + ├── 优化前的profiling + ├── icnet_bs16.om + ├── icnet.onnx + └── 优化后的profiling + ``` + [PyTorch离线推理-Xxx模型测试报告.docx](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-Xxx%E6%A8%A1%E5%9E%8B%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A.docx)模板中含性能不达标时的优化案例与测试项 + +- 参考 + 如果使用补丁文件修改了模型代码则将补丁打入模型代码,如果需要引用模型代码的类或函数通过sys.path.append(r"./pytorch-nested-unet")添加搜索路径 + 参见https://gitee.com/ascend/modelzoo/pulls/2309 + 参见https://gitee.com/ascend/modelzoo/pulls/2585 + + 模型不支持动态onnx,性能不达标等特殊情况需要在pr备注与README性能优化里说明 + 参见https://gitee.com/ascend/modelzoo/pulls/2122 + 参见https://gitee.com/ascend/modelzoo/pulls/2328 + +- gitee仓PR贡献流程 + - fork [modelzoo](https://gitee.com/ascend/modelzoo) 到个人仓 + - 提交代码到个人仓 + - 签署cla [link](https://clasign.osinfra.cn/sign/Z2l0ZWUlMkZhc2NlbmQ=) + - 选择 Sign Individual CLA + - 若已提交PR,但忘记签署,可在签署CLA后再评论内评论 ```/check-cla``` 重新校验 + - 依据文件夹名称及目录规范整理代码,完成自验,使用PR内容模板进行PR,审查人员请指定 王姜奔(wangjiangben_hw) + - PR后,华为方会进行代码检视,并对PR进行验证,请关注PR的评论并及时修改 + - 最终验收完成后合入主干 +- gitee仓验收使用脚本(请自验)、PR内容模板 + - 验收使用脚本(请自验) + >![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) + **说明:** + > **提交前请确保自验通过!确保直接执行以下脚本就可运行!** + + ```shell + #准备环境 + 交付的代码文件夹下获取模型结构的开源代码,安装必要的依赖,获取训练提供的权重文件,获取数据集路径,获取benchmark工具 + + # pth是否能正确转换为om + bash test/pth2om.sh + + # 精度数据是否达标(需要显示官网pth精度与om模型的精度) + # npu性能数据(确保device空闲时测试,如果模型支持多batch,测试bs1与bs16,否则只测试bs1,性能数据以单卡吞吐率为标准),不指定数据集目录时默认/root/datasets + bash test/eval_acc_perf.sh --datasets_path=/root/datasets + + # 在t4环境测试性能数据(确保gpu空闲时测试,如果模型支持多batch,测试bs1与bs16,否则只测试bs1,如果导出的onnx模型因含自定义算子等不能离线推理,则在t4上测试pytorch模型的在线推理性能,性能数据以单卡吞吐率为标准) + bash perf_g.sh + ``` + - PR内容模板 + - PR示例链接 https://gitee.com/ascend/modelzoo/pulls/2309 + - PR名称 + - [学校学院名称][高校贡献][PyTorch离线推理][模型名称]-PR内容摘要 + - 举例说明:[华为大学昇腾学院][高校贡献][PyTorch离线推理][ResNeXt50]-初次提交 + + ``` + + + **What type of PR is this?** + > /kind task + + **What does this PR do / why do we need it**: + # 简述你这次的PR的详情 + + | 模型 | pth精度 | 310精度 | 性能基准 | 310性能 | + | :------: | :------: | :------: | :------: | :------: | + | ResNeXt50 bs1 | top1:77.62% top5:93.70% | top1:77.62% top5:93.69% | 763.044fps | 1497.252fps | + | ResNeXt50 bs16 | top1:77.62% top5:93.70% | top1:77.62% top5:93.69% | 1234.940fps | 2096.376fps | + # 如果蓝区版本测精度或性能不达标,最新CANN版本测可以达标,这里需要写出原因与最新CANN包版本,用最新版本测。如果是无法规避的算子缺陷导致性能不达标,这里需要添加性能不达标的原因与解决方案。如果onnx因包含自定义算子不支持推理,需要说明性能是在基准环境测的在线推理,如果模型不支持batch 16,也需要说明一下 + + 自验报告 + # 第X次验收测试 + # 验收结果 OK / Failed + # 验收环境: A + K / CANN 5.0.1 + # 关联issue: + + # pth是否能正确转换为om + bash test/pth2om.sh + # 验收结果: OK / Failed + # 备注: 成功生成om,无运行报错,报错日志xx 等 + + # 精度数据是否达标(需要显示官网pth精度与om模型的精度) + # npu性能数据(确保device空闲时测试,如果模型支持多batch,测试bs1与bs16,否则只测试bs1,性能数据以单卡吞吐率为标准) + bash test/eval_acc_perf.sh --datasets_path=/root/datasets + # 验收结果: 是 / 否 + # 备注: 目标pth精度top1:77.62% top5:93.70%;bs1,bs16验收om精度top1:77.62% top5:93.69%;精度下降不超过1%;无运行报错,报错日志xx 等 + # 备注: 验收310测试性能bs1:1497.252FPS bs16:2096.376FPS;无运行报错,报错日志xx 等 + + # 在基准环境测试性能数据(确保卡空闲时测试,如果模型支持多batch,测试bs1与bs16,否则只测试bs1,如果导出的onnx模型因含自定义算子等不能离线推理,则在基准环境测试pytorch模型的在线推理性能,性能数据以单卡吞吐率为标准) + bash perf_g.sh + # 验收结果: OK / Failed + # 备注: 验收基准测试性能bs1:763.044FPS bs16:1234.940FPS;无运行报错,报错日志xx 等 + + # 310性能是否超过基准: 是 / 否 + bs1:310=(1497.252/763.044)1.96倍基准 + bs16:310=(2096.376/1234.940)1.70倍基准 + + - 示例链接 https://gitee.com/ascend/modelzoo/pulls/2309 + + **Which issue(s) this PR fixes**: + # 用于后期issue关联的pr + + Fixes # + + **Special notes for your reviewers**: + # 在reviewer检视时你想要和他说的 + + ``` -- Gitee From 5cbae6d2d6a4d983a5d5af3b58288a21db129893 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E4=B8=9A=E5=BA=86?= Date: Mon, 26 Jul 2021 08:43:15 +0000 Subject: [PATCH 3/8] =?UTF-8?q?update=20Ascend-PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86=E6=8C=87=E5=AF=BC/PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86-=E4=BA=A4=E4=BB=98=E6=A0=87=E5=87=86?= =?UTF-8?q?=E4=B8=8E=E4=BA=A4=E4=BB=98=E4=BB=B6.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" index c34c430..2e68626 100644 --- "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" +++ "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" @@ -1,4 +1,4 @@ -# 交付标准与规范 +# 交付标准与交付件 - 交付标准 - 精度: om模型推理的精度与Ascend 910训练出的权重精度或PyTorch预训练模型github代码仓README.md或官网文档公布的精度对比,精度下降不超过1%则认为精度达标 -- Gitee From a6dca95bdac47aa4691f4bcfd57243d8fdf28d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E4=B8=9A=E5=BA=86?= Date: Mon, 26 Jul 2021 08:45:43 +0000 Subject: [PATCH 4/8] =?UTF-8?q?update=20AscendPyTorch=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E4=BC=97=E6=99=BA=E6=96=87=E6=A1=A3-=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...73\347\272\277\346\216\250\347\220\206.md" | 213 +----------------- 1 file changed, 2 insertions(+), 211 deletions(-) diff --git "a/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" "b/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" index 9f16d8b..7ace867 100644 --- "a/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" +++ "b/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" @@ -1305,217 +1305,8 @@ python3 ssd_pth_postprocess.py /root/dataset/VOCdevkit/VOC2007/ ./voc-model-labe ``` -### 4.2 交付标准与规范 -- 交付标准 - - 精度: - om模型推理的精度与Ascend 910训练出的权重精度或PyTorch预训练模型github代码仓README.md或官网文档公布的精度对比,精度下降不超过1%则认为精度达标 - - 性能: - Ascend benchmark工具在数据集上推理测的NPU 310单颗device吞吐率乘以4颗即单卡吞吐率大于TensorRT工具测的GPU T4单卡吞吐率则认为性能达标 - 如若交付要求中对性能有要求(易模型),310性能必须高于t4性能 - 如若交付要求中没有对性能有要求(中难模型),310上推理需尽可能进行性能优化以使性能达标,默认310性能必须大于0.5倍t4性能 - 若无法达到,则需要向华为方提交性能已达瓶颈的认证申请,华为方将定期组织专家组对申请模型进行评审,通过评审的模型允许以不高于t4的性能进行交付 - - 脚本: - 脚本命名格式需统一,含模型名称的文件名的模型名称使用驼峰命名,模型名称含多个字符串时用-连接; - xxx_pth2onnx.py中不能使用从网络下载权重pth文件的代码,xxx_pth2onnx.py应有输入输出参数,输入是本地权重pth文件,输出是生成的onnx模型文件名; - xxx_pth_preprocess.py与xxx_pth_postprocess.py尽可能只引用torch,torchvision,onxx,numpy,Pillow,opencv-python等基础库; - 代码要尽可能通用与精简,少包含没有使用的库与函数,少复制开源模型代码 - - 推理过程: - 需要提供端到端推理过程中执行的命令等,需要提供端到端推理遇到的关键问题的简要调试过程,至少包含模型转换要点,精度调试,性能优化 - - >![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) -**说明:** - > 如果已经有了Ascend 910训练提供的权重文件,那么优先使用训练的权重做离线推理,精度与该权重精度对齐,注意基于开源PyTorch与开源模型代码做推理,训练修改的影响精度的代码需要移植过来;如果910还没有训练好权重,可以使用官网开源模型代码提供的基础配置的pth权重文件,然后对比om精度与该pth权重的精度 - > - > 如果模型支持多batch,需要测试batch1,4,8,16,32的精度与性能,模型测试脚本与提交代码的描述只需提供bs1和bs16的精度性能数据 - > - > 由于随机数不能模拟真实数据分布,Ascend benchmark工具纯推理功能测试性能对少数模型可能不太准,所以模型测试脚本与提交代码描述中的性能数据以benchmark在数据集上推理时得到的性能数据为准 - > - > 如果导出的onnx因包含npu自定义算子等不能推理,可在t4上运行开源评测脚本测试pth模型在线推理性能 - > - > 对于性能不达标的模型,需要使用Ascend profiling工具分析并尝试优化。对于算子导致的性能问题,优先修改模型代码以使其选择性能好的npu算子,并在modelzoo上提issue。 - > - > 如果需要修改开源模型代码,将修改用git diff做成一个patch文件,交付件不要交付开源代码仓里的代码,只需要交付这个patch文件。 - > - > 通用数据集统一放在/root/datasets/或/opt/npu/目录 - -- 交付件 - - 代码交付件checklist,以Nested-UNet模型为例: - ``` - Nested-UNet #模型名称命名的文件夹 - ├── env.sh #环境变量 - ├── Nested_UNet.patch #如果需要修改开源模型代码,以补丁形式修改 - ├── Nested_UNet_pth2onnx.py #模型转换脚本,通过sys.path.append(r"./pytorch-nested-unet") from archs import NestedUNet的方式引用开源模型代码 - ├── Nested_UNet_preprocess.py #模型前处理脚本,不要import该脚本没有用到的库,类或函数,输入的数据集路径要以参数形式传递给脚本而不是将其写在脚本里 - ├── gen_dataset_info.py #生成数据集info文件 - ├── Nested_UNet_postprocess.py #模型后处理脚本,尽量不import开源模型代码,若因此复制大量开源代码的评测函数,为求精简,也可import开源模型代码的函数 - ├── requirements.txt #模型离线推理用到的所有且必要的依赖库,PyTorch优选开源1.5.0版本,特殊情况选用1.8.0,若其它库具体版本无要求可不写版本 - ├── README.md #模型离线推理说明README - ├── LICENSE #统一选用Apache LICENCE - ├── aipp_Nested_UNet_pth.config #aipp输入时的配置,图片类模型才需要提供该文件 - ├── modelzoo_level.txt #模型精度性能结果 - └── test - ├── pth2om.sh - ├── eval_acc_perf.sh - ├── parse.py - └── aipp_Nested_UNet_test.sh - ``` - >![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) -**说明:** - > Nested-UNet:严格以模型名称命名文件夹等 - > - > Xxx_pth2onnx.py:避免脚本从网上下载权重,加载模型时有pretrained之类的参数的话设置为False;pth2onnx脚本是要在cpu上运行的,因此涉及device相关的参数选为cpu,并且torch.load加载权重时参数map_location='cpu';如果模型支持导出动态batch的onnx,torch.onnx.export导出onnx文件时需要通过参数dynamic_axes设置动态batch,动态batch的onnx文件可以测试不同batch输入时的性能;脚本应尽量精简,少import不需要的库,少复制开源代码,少设置没有用到的模型参数,通常通过sys.path.append(r"./pytorch-nested-unet") from archs import NestedUNet的方式引用开源模型代码;输入的权重文件应以参数形式传递给脚本而不是将权重路径写在脚本里;如果是开源模型代码仓提供的pth2onnx脚本,则不需要提交该文件 - > - > Xxx_preprocess.py:不要import没有用到的库,类或函数;图片预处理一般是缩放,裁剪,均值方差归一化,加pad,通道转换,调用cv2或Pillow接口参考开源模型代码预处理部分实现,不应将开源模型代码预处理相关的dataloader框架也复制过来,代码要精简;输入的数据集路径要以参数形式传递给脚本而不是将其写在脚本里 - > - > Xxx_postprocess.py:尽量不import开源模型代码,但是如果因此脚本直接复制了大量开源模型代码的评测函数,为求精简,也可以import开源模型代码的类或函数;不应将开源模型代码评测相关的框架代码也复制过来,只需要引用实际实现评测的函数,代码要精简 - > - > requirements.txt:模型离线推理用到的所有依赖库与版本,开源模型代码依赖的第三方库模型离线推理时可能并没有依赖,不要写入实际没有依赖的库,常用的是torch,torchvision,onnx,numpy,Pilow,opencv-python;PyTorch优选开源1.5.0版本,特殊情况可选用1.8.0但是需写明具体原因,tochvision版本与torch是配套的,onnx版本默认选用1.7.0,其它库具体版本是离线推理时使用的具体版本,如果对这些库的具体版本没有特殊要求,这些库版本可以不写 - - pth2onnx基本操作与模型目录结构: - ``` - cd Nested-UNet - git clone https://github.com/4uiiurz1/pytorch-nested-unet - cd pytorch-nested-unet - patch -p1 < ../Nested_UNet.patch #以补丁形式修改模型代码,其中补丁是通过git diff > ./Nested_UNet.patch生成的 - cd .. - python3.7 Nested_UNet_pth2onnx.py nested_unet.pth nested_unet.onnx - #pth2onnx脚本通过sys.path.append(r"./pytorch-nested-unet") from archs import NestedUNet的方式引用NestedUNet模型结构 - #工作目录可以选为模型目录或者开源模型代码目录,模型转换与前后处理脚本和开源模型代码尽量处于同一层,执行脚本命令时要根据工作目录确定路径 - ``` - - 代码交付件参考:[代码交付件模板](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/tree/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/ONNX%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/official/cv/ReID/ReID-strong-baseline) - - 代码交付形式: - gitee网址:https://gitee.com/ascend/modelzoo/tree/master/contrib/ACL_PyTorch/Research - commit信息格式:[学校学院名称][高校贡献][PyTorch离线推理][模型名称]-PR内容摘要 - 模型名称风格为大驼峰,模型名含多个字符串时使用横杠或下划线连接,当上下文用横杠时模型名用下划线连接,否则用横杠连接 - 对于batch1与batch16,npu性能均高于T4性能1.2倍的模型,放在Benchmark目录下,1-1.2倍对应Official目录,低于1倍放在Research目录,目前都放在contrib/ACL_PyTorch/Research下即可 - - - 文档交付件: - [PyTorch离线推理-Xxx模型测试报告.docx](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-Xxx%E6%A8%A1%E5%9E%8B%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A.docx) - [PyTorch离线推理-Xxx模型推理指导书.docx](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-Xxx%E6%A8%A1%E5%9E%8B%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC%E4%B9%A6.docx) - - - 算子问题导致精度不达标或性能不达标时的其它交付件: - 1.如果使用autotune模型性能可以达标,需要交付知识库 - 2.在modelzoo提issue - [issue模板](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-issue%E6%A8%A1%E6%9D%BF.md) - [issue示例](https://gitee.com/ascend/modelzoo/issues/I3W5Y3?from=project-issue) - 3.模型性能不达标初步优化压缩包 - ``` - PyTorch离线推理-ICNet性能不达标初步优化 - ├── PyTorch离线推理-ICNet模型测试报告.docx - ├── 优化前的profiling - ├── icnet_bs16.om - ├── icnet.onnx - └── 优化后的profiling - ``` - [PyTorch离线推理-Xxx模型测试报告.docx](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-Xxx%E6%A8%A1%E5%9E%8B%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A.docx)模板中含性能不达标时的优化案例与测试项 - -- 参考 - 如果使用补丁文件修改了模型代码则将补丁打入模型代码,如果需要引用模型代码的类或函数通过sys.path.append(r"./pytorch-nested-unet")添加搜索路径 - 参见https://gitee.com/ascend/modelzoo/pulls/2309 - 参见https://gitee.com/ascend/modelzoo/pulls/2585 - - 模型不支持动态onnx,性能不达标等特殊情况需要在pr备注与README性能优化里说明 - 参见https://gitee.com/ascend/modelzoo/pulls/2122 - 参见https://gitee.com/ascend/modelzoo/pulls/2328 - -- gitee仓PR贡献流程 - - fork [modelzoo](https://gitee.com/ascend/modelzoo) 到个人仓 - - 提交代码到个人仓 - - 签署cla [link](https://clasign.osinfra.cn/sign/Z2l0ZWUlMkZhc2NlbmQ=) - - 选择 Sign Individual CLA - - 若已提交PR,但忘记签署,可在签署CLA后再评论内评论 ```/check-cla``` 重新校验 - - 依据文件夹名称及目录规范整理代码,完成自验,使用PR内容模板进行PR,审查人员请指定 王姜奔(wangjiangben_hw) - - PR后,华为方会进行代码检视,并对PR进行验证,请关注PR的评论并及时修改 - - 最终验收完成后合入主干 -- gitee仓验收使用脚本(请自验)、PR内容模板 - - 验收使用脚本(请自验) - >![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) - **说明:** - > **提交前请确保自验通过!确保直接执行以下脚本就可运行!** - - ```shell - #准备环境 - 交付的代码文件夹下获取模型结构的开源代码,安装必要的依赖,获取训练提供的权重文件,获取数据集路径,获取benchmark工具 - - # pth是否能正确转换为om - bash test/pth2om.sh - - # 精度数据是否达标(需要显示官网pth精度与om模型的精度) - # npu性能数据(确保device空闲时测试,如果模型支持多batch,测试bs1与bs16,否则只测试bs1,性能数据以单卡吞吐率为标准),不指定数据集目录时默认/root/datasets - bash test/eval_acc_perf.sh --datasets_path=/root/datasets - - # 在t4环境测试性能数据(确保gpu空闲时测试,如果模型支持多batch,测试bs1与bs16,否则只测试bs1,如果导出的onnx模型因含自定义算子等不能离线推理,则在t4上测试pytorch模型的在线推理性能,性能数据以单卡吞吐率为标准) - bash perf_g.sh - ``` - - PR内容模板 - - PR示例链接 https://gitee.com/ascend/modelzoo/pulls/2309 - - PR名称 - - [学校学院名称][高校贡献][PyTorch离线推理][模型名称]-PR内容摘要 - - 举例说明:[华为大学昇腾学院][高校贡献][PyTorch离线推理][ResNeXt50]-初次提交 - - ``` - - - **What type of PR is this?** - > /kind task - - **What does this PR do / why do we need it**: - # 简述你这次的PR的详情 - - | 模型 | pth精度 | 310精度 | 性能基准 | 310性能 | - | :------: | :------: | :------: | :------: | :------: | - | ResNeXt50 bs1 | top1:77.62% top5:93.70% | top1:77.62% top5:93.69% | 763.044fps | 1497.252fps | - | ResNeXt50 bs16 | top1:77.62% top5:93.70% | top1:77.62% top5:93.69% | 1234.940fps | 2096.376fps | - # 如果蓝区版本测精度或性能不达标,最新CANN版本测可以达标,这里需要写出原因与最新CANN包版本,用最新版本测。如果是无法规避的算子缺陷导致性能不达标,这里需要添加性能不达标的原因与解决方案。如果onnx因包含自定义算子不支持推理,需要说明性能是在基准环境测的在线推理,如果模型不支持batch 16,也需要说明一下 - - 自验报告 - # 第X次验收测试 - # 验收结果 OK / Failed - # 验收环境: A + K / CANN 5.0.1 - # 关联issue: - - # pth是否能正确转换为om - bash test/pth2om.sh - # 验收结果: OK / Failed - # 备注: 成功生成om,无运行报错,报错日志xx 等 - - # 精度数据是否达标(需要显示官网pth精度与om模型的精度) - # npu性能数据(确保device空闲时测试,如果模型支持多batch,测试bs1与bs16,否则只测试bs1,性能数据以单卡吞吐率为标准) - bash test/eval_acc_perf.sh --datasets_path=/root/datasets - # 验收结果: 是 / 否 - # 备注: 目标pth精度top1:77.62% top5:93.70%;bs1,bs16验收om精度top1:77.62% top5:93.69%;精度下降不超过1%;无运行报错,报错日志xx 等 - # 备注: 验收310测试性能bs1:1497.252FPS bs16:2096.376FPS;无运行报错,报错日志xx 等 - - # 在基准环境测试性能数据(确保卡空闲时测试,如果模型支持多batch,测试bs1与bs16,否则只测试bs1,如果导出的onnx模型因含自定义算子等不能离线推理,则在基准环境测试pytorch模型的在线推理性能,性能数据以单卡吞吐率为标准) - bash perf_g.sh - # 验收结果: OK / Failed - # 备注: 验收基准测试性能bs1:763.044FPS bs16:1234.940FPS;无运行报错,报错日志xx 等 - - # 310性能是否超过基准: 是 / 否 - bs1:310=(1497.252/763.044)1.96倍基准 - bs16:310=(2096.376/1234.940)1.70倍基准 - - - 示例链接 https://gitee.com/ascend/modelzoo/pulls/2309 - - **Which issue(s) this PR fixes**: - # 用于后期issue关联的pr - - Fixes # - - **Special notes for your reviewers**: - # 在reviewer检视时你想要和他说的 - - ``` +### 4.2 交付标准与交付件 +[交付标准与交付件](https://gitee.com/pengyeqing/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-%E4%BA%A4%E4%BB%98%E6%A0%87%E5%87%86%E4%B8%8E%E4%BA%A4%E4%BB%98%E4%BB%B6.md) ### 4.3 深度学习指导 - 书籍推荐 -- Gitee From 70963fed7c8fa9029bf59c740d6c26380ba78a2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E4=B8=9A=E5=BA=86?= Date: Mon, 26 Jul 2021 08:47:49 +0000 Subject: [PATCH 5/8] =?UTF-8?q?add=20Ascend-PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86=E6=8C=87=E5=AF=BC/PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86-=E6=9C=BA=E5=99=A8=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E4=B8=8E=E4=BD=BF=E7=94=A8=E6=8C=87=E5=8D=97.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...44\270\216\344\275\277\347\224\250\346\214\207\345\215\227.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\346\234\272\345\231\250\347\224\263\350\257\267\344\270\216\344\275\277\347\224\250\346\214\207\345\215\227.md" diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\346\234\272\345\231\250\347\224\263\350\257\267\344\270\216\344\275\277\347\224\250\346\214\207\345\215\227.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\346\234\272\345\231\250\347\224\263\350\257\267\344\270\216\344\275\277\347\224\250\346\214\207\345\215\227.md" new file mode 100644 index 0000000..e69de29 -- Gitee From ff084f48c60e4674140feaef28cdbb56f9422fd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E4=B8=9A=E5=BA=86?= Date: Mon, 26 Jul 2021 08:49:52 +0000 Subject: [PATCH 6/8] =?UTF-8?q?update=20Ascend-PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86=E6=8C=87=E5=AF=BC/PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86-=E6=9C=BA=E5=99=A8=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E4=B8=8E=E4=BD=BF=E7=94=A8=E6=8C=87=E5=8D=97.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...77\347\224\250\346\214\207\345\215\227.md" | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\346\234\272\345\231\250\347\224\263\350\257\267\344\270\216\344\275\277\347\224\250\346\214\207\345\215\227.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\346\234\272\345\231\250\347\224\263\350\257\267\344\270\216\344\275\277\347\224\250\346\214\207\345\215\227.md" index e69de29..0e5ed83 100644 --- "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\346\234\272\345\231\250\347\224\263\350\257\267\344\270\216\344\275\277\347\224\250\346\214\207\345\215\227.md" +++ "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\346\234\272\345\231\250\347\224\263\350\257\267\344\270\216\344\275\277\347\224\250\346\214\207\345\215\227.md" @@ -0,0 +1,63 @@ +# 机器申请与使用指南 + +>![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) +**说明:** +> **机器周均使用率过低且项目无故无进展时,华为方将有权回收算力资源,由此造成交付延期由使用者自己承担。** +> **请勿随意更改密码,更改密码带来的风险由更改者承担。** +> **请勿随意更新驱动等系统相关软件,有需要请及时联系华为方支持人员。** + +- 机器申请 + - GPU T4 + - 装有t4的服务器,请联系华为方 + - NPU 310 + - 装有310的服务器,请联系华为方 +- t4服务器使用 + - /home/下每个普通用户创建一个自己的目录,原则上只允许用户在自己的这个目录下开发,不要修改其它目录的东西 + - 测试时请确保t4卡没有运行其它测试任务,使用nvidia-smi查看卡是否处于空闲态 + - t4上使用trtexec一条命令即可测试onnx模型性能,一般模型性能测试在半小时到半天之间可完成,测试完成后请及时退出登录 + - 不要更新CUDA驱动包与tensorRT,修改系统文件,系统密码等 + +- 310服务器使用 + - 请联系华为方申请登录服务器的普通用户名与密码 + - /home/下每个用户创建一个自己的目录,原则上只允许用户在自己的这个目录下开发,不要修改其它目录的东西 + - 不要随意更新CANN包与驱动包,修改系统文件,系统密码等 + - /opt/npu是共享的数据集盘目录,该目录仅用来存放共享的数据集,不可向该目录盘写其它数据 + - 每个模型使用到的数据集都放在/root/datasets/目录,除/root/datasets与/opt/npu外,不要在其它目录存放数据集 + - CANN包放在/home/common/packages/目录下 + - 请使用conda安装python的库,将python的库安装在自己的conda环境里,修改这些库的代码不会影响其他用户 + ``` + 查看已有环境: + conda env list + 创建自己的conda环境: + conda create -n your_env_name python=3.7.5 + 进入环境: + conda activate your_env_name + 查看环境安装的python的库: + conda list + 只在该环境中安装py软件包: + https://anaconda.org/ 网址搜索包的安装命令 + conda install -c pytorch pytorch + conda install -c pytorch torchvision + conda install -c conda-forge onnx=1.9.0 + 查看安装路径: + python3.7 + import torchvision + print(torchvision.__file__) + 退出环境: + conda deactivate + 删除环境: + conda remove -n your_env_name --all + ``` + - root添加普通用户方法: + ``` + useradd -m your_name + passwd your_name + usermod -s /bin/bash your_name + 修改/etc/sudoers添加your_name ALL=(ALL:ALL) ALL + your_name用户便可使用sudo命令 + ``` + - 普通用户执行atc找不到动态库: + ``` + 修改/etc/sudoers将Defaults env_reset改成Defaults !env_reset + 修改/etc/bash.bashrc添加alias sudo='sudo env PATH=$PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH' + ``` -- Gitee From 0fd9523556e1f7dbb77043c572ceaec1e9e82889 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E4=B8=9A=E5=BA=86?= Date: Mon, 26 Jul 2021 08:50:41 +0000 Subject: [PATCH 7/8] =?UTF-8?q?update=20AscendPyTorch=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E4=BC=97=E6=99=BA=E6=96=87=E6=A1=A3-=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...73\347\272\277\346\216\250\347\220\206.md" | 63 +------------------ 1 file changed, 1 insertion(+), 62 deletions(-) diff --git "a/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" "b/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" index 7ace867..1520622 100644 --- "a/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" +++ "b/AscendPyTorch\346\250\241\345\236\213\344\274\227\346\231\272\346\226\207\346\241\243-\347\246\273\347\272\277\346\216\250\347\220\206.md" @@ -1242,68 +1242,7 @@ python3 ssd_pth_postprocess.py /root/dataset/VOCdevkit/VOC2007/ ./voc-model-labe ### 4.1 机器申请及使用指南 ->![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) -**说明:** -> **机器周均使用率过低且项目无故无进展时,华为方将有权回收算力资源,由此造成交付延期由使用者自己承担。** -> **请勿随意更改密码,更改密码带来的风险由更改者承担。** -> **请勿随意更新驱动等系统相关软件,有需要请及时联系华为方支持人员。** - -- 机器申请 - - GPU T4 - - 装有t4的服务器,请联系华为方 - - NPU 310 - - 装有310的服务器,请联系华为方 -- t4服务器使用 - - /home/下每个普通用户创建一个自己的目录,原则上只允许用户在自己的这个目录下开发,不要修改其它目录的东西 - - 测试时请确保t4卡没有运行其它测试任务,使用nvidia-smi查看卡是否处于空闲态 - - t4上使用trtexec一条命令即可测试onnx模型性能,一般模型性能测试在半小时到半天之间可完成,测试完成后请及时退出登录 - - 不要更新CUDA驱动包与tensorRT,修改系统文件,系统密码等 - -- 310服务器使用 - - 请联系华为方申请登录服务器的普通用户名与密码 - - /home/下每个用户创建一个自己的目录,原则上只允许用户在自己的这个目录下开发,不要修改其它目录的东西 - - 不要随意更新CANN包与驱动包,修改系统文件,系统密码等 - - /opt/npu是共享的数据集盘目录,该目录仅用来存放共享的数据集,不可向该目录盘写其它数据 - - 每个模型使用到的数据集都放在/root/datasets/目录,除/root/datasets与/opt/npu外,不要在其它目录存放数据集 - - CANN包放在/home/common/packages/目录下 - - 请使用conda安装python的库,将python的库安装在自己的conda环境里,修改这些库的代码不会影响其他用户 - ``` - 查看已有环境: - conda env list - 创建自己的conda环境: - conda create -n your_env_name python=3.7.5 - 进入环境: - conda activate your_env_name - 查看环境安装的python的库: - conda list - 只在该环境中安装py软件包: - https://anaconda.org/ 网址搜索包的安装命令 - conda install -c pytorch pytorch - conda install -c pytorch torchvision - conda install -c conda-forge onnx=1.9.0 - 查看安装路径: - python3.7 - import torchvision - print(torchvision.__file__) - 退出环境: - conda deactivate - 删除环境: - conda remove -n your_env_name --all - ``` - - root添加普通用户方法: - ``` - useradd -m your_name - passwd your_name - usermod -s /bin/bash your_name - 修改/etc/sudoers添加your_name ALL=(ALL:ALL) ALL - your_name用户便可使用sudo命令 - ``` - - 普通用户执行atc找不到动态库: - ``` - 修改/etc/sudoers将Defaults env_reset改成Defaults !env_reset - 修改/etc/bash.bashrc添加alias sudo='sudo env PATH=$PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH' - ``` - +[机器申请与使用指南](https://gitee.com/pengyeqing/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-%E6%9C%BA%E5%99%A8%E7%94%B3%E8%AF%B7%E4%B8%8E%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.md) ### 4.2 交付标准与交付件 [交付标准与交付件](https://gitee.com/pengyeqing/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-%E4%BA%A4%E4%BB%98%E6%A0%87%E5%87%86%E4%B8%8E%E4%BA%A4%E4%BB%98%E4%BB%B6.md) -- Gitee From 2b7bde9eed3d955f82c21870be14247ab67505cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E4=B8=9A=E5=BA=86?= Date: Mon, 26 Jul 2021 08:54:00 +0000 Subject: [PATCH 8/8] =?UTF-8?q?update=20Ascend-PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86=E6=8C=87=E5=AF=BC/PyTorch=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=8E=A8=E7=90=86-=E4=BA=A4=E4=BB=98=E6=A0=87=E5=87=86?= =?UTF-8?q?=E4=B8=8E=E4=BA=A4=E4=BB=98=E4=BB=B6.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" index 2e68626..eb07cf0 100644 --- "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" +++ "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\344\272\244\344\273\230\346\240\207\345\207\206\344\270\216\344\272\244\344\273\230\344\273\266.md" @@ -1,4 +1,5 @@ # 交付标准与交付件 + - 交付标准 - 精度: om模型推理的精度与Ascend 910训练出的权重精度或PyTorch预训练模型github代码仓README.md或官网文档公布的精度对比,精度下降不超过1%则认为精度达标 -- Gitee