Skip to content

CONV extended form missing. #122

@python-processing-unit

Description

@python-processing-unit

According to the specification section 9.1.6:

  • TNS: CONV(TNS: x, TNS: kernel, INT: stride_w = 1, INT: stride_h = 1, INT: pad_w = 0, INT: pad_h = 0, TNS: bias = []) = MUST support both the legacy two-argument N-dimensional convolution form and the extended 2-D multi-output form. In the legacy form, kernel MUST have the same rank as x, every kernel dimension length MUST be odd, boundary sampling MUST clamp to the nearest valid index, and the result MUST have the same shape as x. In the extended form, when any keyword argument is supplied and x is rank 3 while kernel is rank 4 with shape [kw, kh, in_c, out_c], the operator MUST perform 2-D convolution with the given strides, explicit zero padding, and optional per-output-channel bias, returning shape [out_w, out_h, out_c]. Where both inputs are INT, the output MUST be INT; otherwise it MUST be FLT.

In the implementation, however, builtins.c only implements the legacy two-argument CONV(x, kernel) path and does not accept or honor the stride_w and bias keywords (nor the extended validation/typing the tests require). That causes the conv-extended tests to fail.

Metadata

Metadata

Labels

bugSomething isn't workingpatchRequires a patch version change.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions