中文|English
介绍
Ascend Samples,欢迎各位开发者!
贡献要求
开发者提交的修改的工程文件中至少包括源码、readme、编译&运行脚本,并遵循以下标准。
请贡献者在提交代码之前签署CLA协议,“个人签署”,链接。
一、源码
在线编译,推理请使用C++/python代码实现,符合第四部分编码规范(当前只有C++的样例)
C++PR 提交样例规范请参考sample。
贡献者工程代码目录规则:
说明:
- 每一个入口脚本对应两种设备形态,要求当前工程适配这两种设备形态:Atlas200dk,A300-3010。
- 每一个设备形态对应一种或多种版本,要求当前工程至少适配一种版本。
- 当前测试环境存在版本为:1. CANN 5.0.3.alpha005的Atlas200dk和A300-3010。 2. CANN 5.0.4.alpha002。
- 注意:blacklist_version.conf中的内容为黑名单版本,即不会在该版本上跑该testcase。如testcase_YOLOV3_coco_detection_picture: 5.0.3.alpha005
从其他开源迁移的代码,请增加License声明。
二、License规则
需要根据您签署的CLA类型进行声明:
CLA签署网站:https://clasign.osinfra.cn/sign/Z2l0ZWUlMkZhc2NlbmQ=
CLA包括企业签署、员工签署、个人签署三类,非华为员工签署个人,并根据自己签署的类型声明对应的copyright
所有的新建源码文件(cpp、py、h等文件)需要支持Apache 2.0 License,并在源码文件头部增加如下声明,将[yyyy]替换为代码创建的4位数年份,将[name of the copyright owner]替换为所在组织的名字(所有个人签署CLA一律声明Huawei Technologies Co., Ltd),注意删除方括号:
# Copyright [yyyy] [name of copyright owner]
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
所有从其他源码修改而来的代码,不要改变源代码中的LICENSE类型,如果源码中已有其它公司的Copyright,原有的copyright声明保持不变,在上面增加一行Copyright,将[yyyy]替换为修改代码的4位数年份,将[name of the copyright owner]替换为本人所在组织的名字(所有个人签署CLA一律声明Huawei Technologies Co., Ltd),注意删除方括号。
例如:
# Copyright [yyyy] [name of copyright owner]
# Copyright 2018 hisillion Technologies Co., Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
三、readme
readme用于指导用户理解和部署样例,要包含如下内容:
简介:
工程项目的功能和运行方法、模型的来源;
关键要求:
四、PR提交规范
提交PR操作可以参考如何fork仓库并提交PR_wiki。
PR提交的样例需要包含门禁项、工程测试用例和readme。
简介:
提交的PR中应该包含如下文件, 这是校验PR提交是否有效的门禁项:
提交PR后,会自动触发门禁流水,后台会根据用例入口shell(st目录下对应编程语言文件夹中的testcase*.sh)进行编译,关键要求如下:
st目录下对应编程语言文件夹中的testcase*.sh 应该包含推理和校验推理的结果的功能,具体释义如下:
推理阶段包含:
校验推理的结果(根据不同的工程提供不同的推理结果校验方法,校验方法可以写在脚本中):
执行环境已预装软件包和Python3.6.9环境,调用命令"python3.6"、,安装第三方库依赖使用"pip3 install package --user"、"python3.6 -m pip install package --user"均可。
模型需要按照 modelzoo仓的贡献指南,上传到modelzoo中。验证文件(bin、图片、视频)请提供归档OBS、网盘链接或联系管理员存放到固定的obs地址,不要放在samples仓中。
环境和其他问题,请提交Issue跟踪。
提交测试用例可以参考PR提交示例。
五、编程规范
规范标准
C++代码遵循google编程规范:Google C++ Coding Guidelines;单元测测试遵循规范: Googletest Primer
Python代码遵循PEP8规范:Python PEP 8 Coding Style;单元测试遵循规范: pytest
规范备注
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。