Comments (5)
Absolutely. Contributions are welcome and appreciated
from onnx.
The expected behavior is mentioned here as well.
Can I work on this? @justinchuby
from onnx.
This is complicated. Agree that there is a mismatch, but is the bug in the specification or implementation?
My personal interpretation is that this is a bug in the specification, not implementation, for the following reason: the attributes serve to define the set of axes being reduced: specifically, it is a flag to allow the empty list to indicate that all axes must be reduced (or that no axes must be reduced). Now, even if zero axes are reduced, it makes sense to compute the square. ReduceSumSquare is not actually a reduction-op: it is a reduction-op Sum applied to the square of the input.
I think the bug was in reusing the ReduceSum documentation for all ops ... it is correct for basic Reduction ops, but not ReduceSumSquare.
Of course, we can test with other backends/implementations (like onnxruntime, or even pytorch/tensorflow etc. IF they have such an option).
from onnx.
Following the discussion, I think it's reasonable to correct the spec. Out of curiosity, was there any reason you would expect the behavior to be different than the current one @RunnerZhong ?
from onnx.
I agree with below idea. So maybe we need to modify the spec of ops like ReduceSumSquare(ReduceLogSum, ReduceLogSumExp).
This is complicated. Agree that there is a mismatch, but is the bug in the specification or implementation?
My personal interpretation is that this is a bug in the specification, not implementation, for the following reason: the attributes serve to define the set of axes being reduced: specifically, it is a flag to allow the empty list to indicate that all axes must be reduced (or that no axes must be reduced). Now, even if zero axes are reduced, it makes sense to compute the square. ReduceSumSquare is not actually a reduction-op: it is a reduction-op Sum applied to the square of the input.
I think the bug was in reusing the ReduceSum documentation for all ops ... it is correct for basic Reduction ops, but not ReduceSumSquare.
Of course, we can test with other backends/implementations (like onnxruntime, or even pytorch/tensorflow etc. IF they have such an option).
from onnx.
Related Issues (20)
- Fix and test numpy_helper to_array
- How to read onnx and obtain names, imgsz HOT 3
- Model zoo test failures HOT 1
- DequantizeLinear spec clarification: What happens if the subtraction overflows/underflows? HOT 1
- the model for UniqueOp in backend test is not always correct for different input
- A conflict doc abount compatibility between Onnx Version & ML Opset Version HOT 2
- [Shape Inference] Robustness of `ConstantOfShape` operator HOT 2
- Numpy 2.0.0rc2 causes `pytest` on ONNX to fail HOT 2
- How to modify Slice attribute HOT 4
- Error While Installing ONNX HOT 3
- Export onnx model from pytorch with dynamic input size, output tensor doesn't match. HOT 9
- Discussion on the Correct Approach for Converting ONNX Models to Other Frameworks HOT 2
- Way to swap parameters inside .onnx graph (LoRA functionality) HOT 6
- docs/Operators.md missing input type description at Constant HOT 1
- React Native Support HOT 1
- [Question] Where is `onnx-operators-ml.pb.h` HOT 1
- onnx.shape_inference.infer_shapes creates a blank graph when passed a >2GB model HOT 1
- Test using bfloat16 and model input/output HOT 1
- Missing type support in parser for various types (float16, bfloat16, ...)
- INT4 TensorProto byte size is 5x larger than expected with negative values
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from onnx.