已关闭
[Usage]: [Usage]: test目录下面的test_nn.py继承自pytorch社区,但是里面并没有专门验证torch.nn.Parameter, torch.nn.Buffer的测试用例,需要补充 #1579
dinglaiping创建于  3月17日关闭于  3月18日
dinglaiping成员
3月17日 创建

在提交新问题之前,请确保您已经在社区中搜索过相关问题,并使用了社区中提供的资源/工具后,仍未找到满意的解决方式。

环境信息

  • 操作系统 乌班图
  • 昇腾硬件信息 910B4
  • CANN软件版本 8.5.0
  • 安装的对应软件版本 PyTorch Torch-NPU,2.6.0及以上版本

使用场景及问题

API功能

1.1.1 torch.nn.Parameter
PyTorch 中可训练参数的核心载体,用于标记模型中需要被优化器更新的张量,是神经网络权重、偏置等可学习参数的基础类型,核心特性为:

  1. 可训练性标记:默认requires_grad=True,自动被 PyTorch 的计算图跟踪,支持梯度计算与优化器更新;
  2. 设备迁移兼容:支持to(device)方法,可单独或随所在模块一起迁移至指定设备(CPU/CUDA/NPU),也可直接在目标设备创建;
  3. 模块自动注册:当作为nn.Module的属性赋值时,会自动被模块注册为可训练参数,纳入parameters()迭代范围;
  4. 张量特性继承:本质是torch.Tensor的子类,完全继承张量的形状、数据类型等核心属性,支持.data直接访问与修改,仅新增可训练性标记逻辑。
    1.1.2 torch.nn.Buffer
    PyTorch 中用于存储非训练型数据的缓冲区载体,适用于模型运行过程中需要保留但无需优化的状态数据,核心特性为:
  5. 非训练属性:默认requires_grad=False,不参与梯度计算与优化器更新,仅作为模型运行的辅助状态;
  6. 双属性管理:支持persistent(持久化)属性配置,persistent=True时会纳入模型state_dict,False则不纳入,适配不同缓存场景;
  7. 模块注册机制:需通过nn.Module.register_buffer(name, tensor)方法注册到模块中,生成模块的属性并纳入buffers()迭代范围;
  8. 设备迁移联动:注册后会随模块的to(device)方法自动迁移至目标设备,也可直接在目标设备创建,与模块参数保持设备一致性;
  9. 场景适配:典型用于 BatchNorm 的运行均值 / 方差、注意力机制的缓存数据等,需长期保存但无需学习的状态。

社区用例现状

torch-npu 官方社区提供的test_nn.py测试用例中,torch.nn.Parameter、torch.nn.Buffer无单独的专用测试用例,需补充自定义用例完成全量验证。

欢迎加入社区,感谢您对社区的贡献 🎉!

likedislike
ascend-robotascend-robot成员
3月17日 添加了label:usage
Ddinglaiping成员
3月17日 关联了pull request:test(nn): add test for nn api: torch.nn.Parameter, torch.nn.Buffer
Ddinglaiping成员
3月17日 关联了pull request:test(nn): add test for nn api: torch.nn.Parameter, torch.nn.Buffer
Ddinglaiping成员
3月17日 关联了pull request:test(nn): add test for nn api: torch.nn.Parameter, torch.nn.Buffer
Ddinglaiping成员
3月17日 关联了pull request:test(nn): add test for nn api: torch.nn.Parameter, torch.nn.Buffer
Ddinglaiping成员
3月17日 关联了pull request:test(nn): add test for nn api: torch.nn.Parameter, torch.nn.Buffer
Ddinglaiping成员
3月17日 关联了pull request:test(nn): add test for nn api: torch.nn.Parameter, torch.nn.Buffer
huangyunlong成员
3月18日 评论:
ascend-robotascend-robot成员
3月18日 关闭了 issue
ascend-robotascend-robot成员
3月18日 添加了label:resolved
Ddinglaiping成员
4月10日 添加了label:event: api-consistency