已合并
test(nn): add test for UninitializedParameter.cls_to_become #31762
dinglaiping创建于 3月13日
test(nn): add test for UninitializedParameter.cls_to_become #31762
已合并
dinglaiping创建于 3月13日
已删除 :addtest-uninitialized-parameter-cls-to-become-2.8.0合入到Ascend/pytorchv2.8.0
dinglaiping成员
3月13日

PR描述

【合入来源】

https://gitcode.com/Ascend/pytorch/issues/1572
请勿携带内部流程信息(需求链接、问题单、内部issue等)

【修改方案】

请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列
如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容)

用例设计原则:本次验证遵循 “聚焦核心、贴合场景、轻量化” 原则,核心思路如下

  1. 直击核心功能:仅验证 cls_to_become 的核心能力(目标类绑定、materialize 后类型转换、自定义属性继承),不涉及边缘场景;
  2. 贴合 NPU 特性:全程基于 NPU(npu 设备)执行,重点校验设备一致性、NPU 环境下类型转换的有效性;
  3. 极简逻辑设计:用例仅包含 “创建未初始化参数→绑定目标类→实例化→断言验证” 四步,无冗余依赖,执行高效且便于问题定位;
  4. 覆盖实际场景:模拟自定义参数类的真实使用场景,验证转换后参数的自定义属性可正常访问,确保用例结果具备业务参考价值。
    验证用例核心验证点:在 NPU 环境下,通过自定义用例覆盖 cls_to_become 的核心功能与 NPU 适配关键需求,验证点如下:
  5. 目标类绑定有效性:验证 cls_to_become 可成功绑定自定义 Parameter 子类,无属性赋值异常;
  6. 实例化类型转换:验证 materialize(shape) 执行后,UninitializedParameter 可准确转换为绑定的目标类实例;
  7. 设备一致性校验:验证转换后的目标类实例,其设备自动继承 UninitializedParameter 绑定的 NPU 设备,无设备漂移;
  8. 自定义属性继承:验证转换后的目标类实例可正常访问自定义属性,核心逻辑继承完整;
  9. 形状正确性:验证 materialize 传入的形状参数生效,转换后参数的形状与预期一致。

【资料变更】

不涉及

【接口变更】

不涉及

【功能验证】

说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤
新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图
验证结论:
通过自定义专用测试用例,在 NPU 环境下完成 torch.nn.parameter.UninitializedParameter.cls_to_become 属性的核心功能验证,测试用例执行成功。
验证结果表明,cls_to_become 属性在 NPU 环境下的核心能力(目标类绑定、类型转换、属性继承、设备一致性)均正常可用,完全满足 NPU 场景下 “自定义参数类 + 懒加载逻辑” 的协同使用需求,无需修改源码即可稳定适配 NPU 设备。

用例验证结果:
python /root/torchnpuapi/test_uninitialized_parameter_cls_to_become.py
.

Ran 1 test in 5.231s

OK
root@hostname-fqv42:/home#

【CheckList】

PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x]

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 dinglaiping 的贡献)
Ddinglaiping成员
3月13日 创建了 pull request,commit 542bb5ce
Ddinglaiping成员
3月13日 关联了issue:[Usage]: test目录下torch.nn.parameter.UninitializedParameter.cls_to_become API的测试用例缺失
ascend-robot
ascend-robot成员
3月13日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
test liwei386, htchu (2/2) liwei386, htchu (2/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

dinglaiping, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
ascend-robotascend-robot成员
3月13日 添加了label:ascend-cla/yes
dinglaiping成员
3月13日 评论:

compile

likedislike
ascend-robotascend-robot成员
3月13日 添加了label:ci-pipeline-running
ascend-robotascend-robot成员
3月13日 删除了label:ci-pipeline-running
ascend-robotascend-robot成员
3月13日 添加了label:ci-pipeline-passed
ascend-robot
ascend-robot成员
3月13日 评论:
流水线 PR-pipeline_pytorch#10408 已完成
阶段 任务名 状态 详情
编译构建 Build_X86 >>>
Build_LibTorch >>>
Build_ARM >>>
Build_ARM_inductor 🛑 >>>
Build_X86_torchair 🛑 >>>
Build_ARM_torchair 🛑 >>>
恶意代码检查 Antipoison >>>
编码安全与规范检查 CodeCheck >>>
check_error >>>
开源片段检查 SCA >>>
开发者测试 UT_X86_Part_01 🛑 >>>
UT_X86_Part_02 🛑 >>>
UT_ARM_A3_Part_01 🛑 >>>
UT_ARM_A3_Part_02 🛑 >>>
UT_DIST_X86_Part_01 🛑 >>>
UT_DIST_X86_Part_02 🛑 >>>
UT_DIST_X86_Part_03 🛑 >>>
UT_DIST_X86_Part_04 🛑 >>>
UT_inductor_Part_01 🛑 >>>
UT_inductor_Part_02 🛑 >>>
UT_inductor_Part_03 🛑 >>>
UT_inductor_Part_04 🛑 >>>
UT_ARM_A2_Part_01 >>>
UT_ARM_A2_Part_02 >>>
流水线 PR-pipeline_pytorch >>>
likedislike
liwei386成员
3月13日 评论:

/approve

likedislike
ascend-robotascend-robot成员
3月13日 添加了label:approved
htchu成员
3月16日 评论:

/approve

likedislike
ascend-robotascend-robot成员
3月16日 添加了label:lgtm
ascend-robot
ascend-robot成员
3月16日 评论:

Review Guide

This pull-request passes review.
Committers who wrote a comment of /approve are: liwei386, htchu.
Reviewers who wrote a comment of /lgtm are: liwei386, htchu.

likedislike
ascend-robotascend-robot成员
3月16日 合入了pull request