- ### broadcasting rule
-
- ncnn BinaryOp accepts blobs with different shape
-
- C = BinaryOp(A, B)
-
- shape notation convention is [w], [w,h], [w,h,c], [w,h,d,c]
-
- |type|A|B|C|
- |---|---|---|---|
- |1|[1]|scalar|[1]|
- |2|[1]|[2]|[2]|
- |3|[1]|[2,3]|[2,3]|
- |4|[1]|[2,3,4]|[2,3,4]|
- |5|[2]|scalar|[2]|
- |6|[2]|[1]|[2]|
- |7|[2]|[2]|[2]|
- |8|[3]|[2,3]|[2,3]|
- |9|[4]|[2,3,4]|[2,3,4]|
- |10|[2,3]|scalar|[2,3]|
- |11|[2,3]|[1]|[2,3]|
- |12|[2,3]|[3]|[2,3]|
- |13|[2,3]|[2,3]|[2,3]|
- |14|[3,4]|[2,3,4]|[2,3,4]|
- |15|[2,3,4]|scalar|[2,3,4]|
- |16|[2,3,4]|[1]|[2,3,4]|
- |17|[2,3,4]|[4]|[2,3,4]|
- |18|[2,3,4]|[3,4]|[2,3,4]|
- |19|[2,3,4]|[2,3,4]|[2,3,4]|
- |20|[1]|[2,3,4,5]|[2,3,4,5]|
- |21|[5]|[2,3,4,5]|[2,3,4,5]|
- |22|[4,5]|[2,3,4,5]|[2,3,4,5]|
- |23|[3,4,5]|[2,3,4,5]|[2,3,4,5]|
- |24|[2,3,4,5]|scalar|[2,3,4,5]|
- |25|[2,3,4,5]|[1]|[2,3,4,5]|
- |26|[2,3,4,5]|[5]|[2,3,4,5]|
- |27|[2,3,4,5]|[4,5]|[2,3,4,5]|
- |28|[2,3,4,5]|[3,4,5]|[2,3,4,5]|
- |29|[2,3,4,5]|[2,3,4,5]|[2,3,4,5]|
-
- some special broadcasting rule exists for model compatibility
-
- |special type|A|B|C|
- |---|---|---|---|
- |1|[2,3,4]|[1,1,4]|[2,3,4]|
- |2|[2,3,4]|[2,3,1]|[2,3,4]|
- |3|[1,1,4]|[2,3,4]|[2,3,4]|
- |4|[2,3,1]|[2,3,4]|[2,3,4]|
- |5|[2,3,4]|[1,3,4]|[2,3,4]|
- |6|[2,3,4]|[2,1,4]|[2,3,4]|
- |7|[1,3,4]|[2,3,4]|[2,3,4]|
- |8|[2,1,4]|[2,3,4]|[2,3,4]|
|