Currently there is no way to initialize the output tensor of a reduction with another Tensor.
One use case for such a functionality is when we have a fused **convolution with bias-add** operation. Currently define 2 compute operations, where the first one defines the reduction in the convolution, and another compute for bias add as shown below: Output = te.compute( (batch, out_height, out_width, out_channel), lambda nn, yy, xx, ff: te.sum( PaddedInput[nn, yy * stride_h + ry * dilation_h, xx * stride_w + rx * dilation_w, rc].astype(out_dtype) * Filter[ry, rx, rc, ff].astype(out_dtype), axis=[ry, rx, rc]), name="Conv2dOutput", tag="conv2d_nhwc") Output_with_bias = te.compute( (batch, out_height, out_width, out_channel), lambda nn, yy, xx, ff: Output[nn, yy, xx, ff] + Bias[nn, yy, xx, ff]) The code generated for the above computation would contain a fused loop nest, which has an initialization with `0f` operation for the `Output` tensor, followed by the actual reduction for the convolution and then adding bias-add with Output. What I wanted to do is to remove the bias add computation and instead initialize the `Output` Tensor with the `Bias` values. One way to do this would be to add an `init` member to `ReduceNode` object and an `init` argument to the `reducer` function returned by `CommReducer`, which can be used to pass in a Tensor with which to initialize the output Tensor instead of the identity element. For Example, `te.sum` would be used as shown below: te.sum( PaddedInput[nn, yy * stride_h + ry * dilation_h, xx * stride_w + rx * dilation_w, rc].astype(out_dtype) * Filter[ry, rx, rc, ff].astype(out_dtype), axis=[ry, rx, rc], init=Bias[nn, yy, xx, ff]) `init=Bias[nn, yy, xx, ff]` passes the Tensor that can be used in `MakeReduction` function in `compute_op.cc` to initialize with `Bias` instead of the identity element. Let me know what you think about adding this option and any suggestions about my approach to do this. Thanks, Anirudh --- [Visit Topic](https://discuss.tvm.ai/t/add-init-option-to-reducenode-to-initialize-with-custom-tensors/6944/1) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.ai/email/unsubscribe/510ec2c24eabfaec3de8ca819aa1b64288a3d0bd84888e1ad7b1e0781e1738ea).