Hi,all,I have some problem about ONNX Prelu.I convert my pytorch model to onnx 
,but got error:

    In `main`: 
    #[version = "0.0.5"]
    fn (%inputL: Tensor[(1, 3, 512, 960), float32], 
%feature_extraction.firstconv.conv1.0.0.weight: Tensor[(48, 3, 1, 1), float32], 
%feature_extraction.firstconv.conv1.0.1.weight: Tensor[(48), float32], 
%feature_extraction.firstconv.conv1.0.1.bias: Tensor[(48), float32], 
%feature_extraction.firstconv.conv1.0.1.running_mean: Tensor[(48), float32], 
%feature_extraction.firstconv.conv1.0.1.running_var: Tensor[(48), float32], 
%v1552: Tensor[(1, 1, 1), float32]) {
      %0 = nn.conv2d(%inputL, %feature_extraction.firstconv.conv1.0.0.weight, 
padding=[0, 0, 0, 0], kernel_size=[1, 1]);
      %1 = nn.batch_norm(%0, %feature_extraction.firstconv.conv1.0.1.weight, 
%feature_extraction.firstconv.conv1.0.1.bias, 
%feature_extraction.firstconv.conv1.0.1.running_mean, 
%feature_extraction.firstconv.conv1.0.1.running_var);
      %2 = %1.0;
      %3 = reshape(%v1552, newshape=[-1]);
      nn.prelu(%2, %3) in particular dimension 0 conflicts 48 does not match 1; 
unable to unify: Tensor[(48), float32]` and `Tensor[(1), float32]`;
 I have read the doc about prelu:

> ### **PRelu**
> 
> PRelu takes input data (Tensor) and slope tensor as input, and produces one 
> output data (Tensor) where the function  `f(x) = slope * x for x < 0` ,  
> `f(x) = x for x >= 0` ., is applied to the data tensor elementwise. This 
> operator supports  **unidirectional broadcasting**  (tensor slope should be 
> unidirectional broadcastable to input tensor X); for more details please 
> check [the 
> doc](https://github.com/onnx/onnx/blob/master/docs/Broadcasting.md).
> 
> #### Version
> 
> This version of the operator has been available since version 9 of the 
> default ONNX operator set.
> 
> Other versions of this operator: 
> [1](https://github.com/onnx/onnx/blob/master/docs/Changelog.md#PRelu-1), 
> [6](https://github.com/onnx/onnx/blob/master/docs/Changelog.md#PRelu-6), 
> [7](https://github.com/onnx/onnx/blob/master/docs/Changelog.md#PRelu-7)
> 
> #### Inputs
> 
> X : T
> 
> Input tensor
> 
> slope : T
> 
> Slope tensor. The shape of slope can be smaller then first input X; if so, 
> its shape must be unidirectional broadcastable to X
> 
> #### Outputs
> 
> Y : T
> 
> Output tensor (same size as X)

my model have the prelu op,the slope shape is (1,1,1)
the Input tensor shape is (1,48,512,960)
Maybe tvm prelu can not support broadcast?

Thanks!





---
[Visit 
Topic](https://discuss.tvm.apache.org/t/prelu-op-can-not-support-broadcast/7880/1)
 to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click 
here](https://discuss.tvm.apache.org/email/unsubscribe/422b0b2317f6c5c8f229909f87b5a6b19095559f8605fd92ba508096468be232).

Reply via email to