Skip to content

[Fix] aten_avg_pool1d 越界访问 avg_pool1d 不存在的 divisor_override - #1123

Open
Jian9ww wants to merge 1 commit into
PaddlePaddle:developfrom
Jian9ww:fix-avg-pool1d
Open

[Fix] aten_avg_pool1d 越界访问 avg_pool1d 不存在的 divisor_override#1123
Jian9ww wants to merge 1 commit into
PaddlePaddle:developfrom
Jian9ww:fix-avg-pool1d

Conversation

@Jian9ww

@Jian9ww Jian9ww commented Aug 1, 2026

Copy link
Copy Markdown

Fixes #1122

问题

aten::avg_pool1d 仅 6 个输入 (input, kernel_size, stride, padding, ceil_mode, count_include_pad),无 divisor_override。aten_avg_pool1d 由 aten_avg_pool2d 复制而来,遗留了对第 7 个输入 inputs_name[6] 的 prim.assert,_get_inputs_name 返回长度为 6,导致任何 AvgPool1d 转换必现 IndexError (aten.py:685)。

改动

  • aten.py:删除处理 divisor_override 的 prim.assert 块;修正 docstring(最大→平均、去掉第 7 参数)与 name_generator 命名(pool2d→pool1d)。余下 attr(kernel_size/stride/padding/ceil_mode/exclusive)均为 paddle.nn.AvgPool1D 合法参数。
  • 新增 test_autoscan/torch/test_auto_scan_avg_pool1d.py。此前 test_autoscan/torch 下无任何 pooling 测试,这也是该问题长期未被发现的原因。

验证

  • 修复前:含 AvgPool1d 的模型转换必现 IndexError;修复后转换正常。
  • 映射语义(exclusive = not count_include_pad、padding、ceil_mode)在多组配置下 paddle.nn.AvgPool1D 与 torch.avg_pool1d 输出逐值一致。
  • 端到端由新增的 autoscan 用例覆盖。

aten::avg_pool1d 仅 6 个输入,无 divisor_override。原实现由 aten_avg_pool2d
复制而来,遗留了对第 7 个输入 inputs_name[6] 的 prim.assert,导致任何 AvgPool1d
转换必现 IndexError。删除该 divisor_override 处理,并修正 docstring 与算子命名。
补充 test_autoscan/torch 下的 avg_pool1d autoscan 回归测试(此前 torch 侧无任何
pooling 测试)。
@CLAassistant

CLAassistant commented Aug 1, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@paddle-bot paddle-bot Bot added the contributor External developers label Aug 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor External developers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

aten_avg_pool1d 转换必现 IndexError:越界访问 avg_pool1d 不存在的第 7 个输入

2 participants