已合并
test(nn): Add test cases for torch.nn.parameter.is_lazy #42612
m0_45651774创建于 27 天前
test(nn): Add test cases for torch.nn.parameter.is_lazy #42612
已合并
Pull Request已成功合入, 合并人@ascend-robot
(感谢 m0_45651774 的贡献)27 天前 创建了 pull request,commit 61f3d7b0
atomgit-bot
27 天前 评论:
27 天前 评论:
变更摘要
此 PR 新增测试文件 test/nn/test_parameter_is_lazy.py,为 torch.nn.parameter.is_lazy API 补充完整的验证用例。测试覆盖了正向逻辑(UninitializedParameter 和 UninitializedBuffer 返回 True)、负向与边界逻辑(普通 Parameter、普通 Tensor、None 返回 False),以及延迟参数在调用 materialize 后的状态转换场景。所有测试通过 torch.accelerator.current_accelerator() 自动适配 NPU 或 CPU 设备。
主要改动
- 新增
TestIsLazy测试类:在test/nn/test_parameter_is_lazy.py中定义继承自TestCase的TestIsLazy类,包含 6 个测试方法,覆盖torch.nn.parameter.is_lazy的全部预期行为。 - 正向场景验证:
test_is_lazy_uninitialized_parameter和test_is_lazy_uninitialized_buffer分别验证UninitializedParameter和UninitializedBuffer使is_lazy返回True。 - 负向与边界场景验证:
test_is_lazy_regular_parameter、test_is_lazy_regular_tensor、test_is_lazy_none分别验证已实例化的Parameter、普通 Tensor 和None均使is_lazy返回False。 - 状态转换验证:
test_is_lazy_after_materialize验证UninitializedParameter在调用materialize前is_lazy返回True,调用后返回False,覆盖延迟初始化的生命周期变化。 - NPU 设备自动适配:通过
torch.accelerator.current_accelerator()获取当前加速器类型,确保张量和参数在 NPU 或 CPU 上正确创建。


ascend-robot
27 天前 评论:
27 天前 评论:
atomgit-bot
27 天前 评论:
27 天前 评论:
代码审查
审查总结
共审查了 1 个变更文件:
test/nn/test_parameter_is_lazy.py:发现 1 个问题(P3)
各优先级问题统计
| 优先级 | 数量 |
|---|---|
| P0 | 0 |
| P1 | 0 |
| P2 | 0 |
| P3 | 1 |
整体风险评估
低风险。该变更是一个纯新增的测试文件,测试逻辑正确、覆盖全面(正向、负向、边界、状态转换)。唯一的问题是缺少 import torch_npu,可能导致测试静默退化为 CPU 执行而非预期的 NPU 验证——这不影响测试通过/失败的结果,但会降低测试对 NPU 场景的实际覆盖价值。建议在合入前补上该导入即可。
⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。


27 天前 添加了label:ascend-cla/yes
此处折叠了58条消息 查看更多
Jingwei Huang
15 天前 评论:
15 天前 评论:
/lgtm


15 天前 添加了label:lgtm
15 天前 合入了pull request
ascend-robot
15 天前 评论:
15 天前 评论:
Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


ascend-robot
15 天前 评论:
15 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#13635 [ commitID:d89eb203 ] 已完成


【合入来源】
[Usage]: torch.nn.parameter.is_lazy在 torch-npu 的资料未明确标注支持状态,但实际在 NPU 环境下可正常使用
请勿携带内部流程信息(需求链接、问题单、内部issue等)
【修改方案】
一、API 功能说明
二、测试文件test_parameter_is_lazy.py完整验证该 API 的原因
PyTorch 官方社区暂无针对该 API 的直接独立用例覆盖,有相关调用,但是验证功能不充分,因此自行编写用例并提交到 test 目录。
三、NPU适配
【资料变更】
涉及
已检查文档,https://gitcode.com/Ascend/pytorch/tree/master/docs/zh/api/native_api 下面各个版本未写了该API已支持,所以需要提交PR修改资料。
【接口变更】
不涉及
【功能验证】
在2.7.1、2.11.0 、2.12.0版本上执行该用例,均通过,日志如下:
测试命令:
【CheckList】