@@ -1062,7 +1062,6 @@ def test_transpose_reciprocal(self, shape, perm_input, perm_output):
1062
1062
self .run_transpose_compare (["OUT" ], {"X" : np .random .randn (* shape ).astype (np .float32 )},
1063
1063
model_proto , remaining_transpose_num = 0 )
1064
1064
1065
-
1066
1065
@parameterized .expand ([
1067
1066
((1 , 3 , 4 , 5 ), (1 , 3 , 1 , 1 ), [0 , 2 , 3 , 1 ], [0 , 3 , 1 , 2 ]),
1068
1067
((1 , 3 , 4 , 5 , 6 ), (1 , 3 , 1 , 1 , 1 ), [0 , 2 , 3 , 4 , 1 ], [0 , 4 , 1 , 2 , 3 ]),
@@ -1084,6 +1083,60 @@ def test_transpose_reducemean(self, input_shape, output_shape, perm_input, perm_
1084
1083
self .run_transpose_compare (["res" ], {"X" : np .random .randn (* input_shape ).astype (np .float32 )},
1085
1084
model_proto , remaining_transpose_num = 0 )
1086
1085
1086
+ @parameterized .expand ([
1087
+ ((1 , 3 , 4 , 5 ), (1 , 3 , 4 , 1 ), [2 ], [0 , 2 , 3 , 1 ], [0 , 3 , 1 , 2 ]),
1088
+ ((1 , 3 , 4 , 5 ), (1 , 3 , 1 , 1 ), [1 , 2 ], [0 , 2 , 3 , 1 ], [0 , 3 , 1 , 2 ]),
1089
+ ((1 , 3 , 4 , 5 ), (1 , 1 , 1 , 1 ), [0 , 1 , 2 , 3 ], [0 , 2 , 3 , 1 ], [0 , 3 , 1 , 2 ]),
1090
+ ((1 , 3 , 4 , 5 , 6 ), (1 , 3 , 1 , 5 , 6 ), [1 ], [0 , 2 , 3 , 4 , 1 ], [0 , 4 , 1 , 2 , 3 ]),
1091
+ ((1 , 3 , 4 , 5 , 6 ), (1 , 3 , 1 , 1 , 1 ), [1 , 2 , 3 ], [0 , 2 , 3 , 4 , 1 ], [0 , 4 , 1 , 2 , 3 ]),
1092
+ ((1 , 3 , 4 , 5 , 6 ), (1 , 1 , 1 , 1 , 1 ), [0 , 1 , 2 , 3 , 4 ], [0 , 2 , 3 , 4 , 1 ], [0 , 4 , 1 , 2 , 3 ]),
1093
+ ])
1094
+ @check_opset_max_version (12 , "ReduceSum from opset <= 12 has axes as an attribute" )
1095
+ def test_transpose_reducesum (self , input_shape , output_shape , axes , perm_input , perm_output ):
1096
+ node0 = helper .make_node ("Transpose" , ["X" ], ["Y" ], perm = perm_input , name = "trans_1" )
1097
+ node1 = helper .make_node ("ReduceSum" , ["Y" ], ["Z" ], axes = axes ,
1098
+ keepdims = 1 , name = "reducesum" )
1099
+ node2 = helper .make_node ("Transpose" , ["Z" ], ["res" ], perm = perm_output , name = "trans_2" )
1100
+
1101
+ graph = helper .make_graph (
1102
+ [node0 , node1 , node2 ],
1103
+ "transpose-reducesum-test" ,
1104
+ [helper .make_tensor_value_info ("X" , TensorProto .FLOAT , input_shape )],
1105
+ [helper .make_tensor_value_info ("res" , TensorProto .FLOAT , output_shape )],
1106
+ )
1107
+
1108
+ model_proto = self .make_model (graph , producer_name = "onnx-tests" )
1109
+ self .run_transpose_compare (["res" ], {"X" : np .random .randn (* input_shape ).astype (np .float32 )},
1110
+ model_proto , remaining_transpose_num = 0 )
1111
+
1112
+ @parameterized .expand ([
1113
+ ((1 , 3 , 4 , 5 ), (1 , 3 , 4 , 1 ), [2 ], [0 , 2 , 3 , 1 ], [0 , 3 , 1 , 2 ]),
1114
+ ((1 , 3 , 4 , 5 ), (1 , 3 , 1 , 1 ), [1 , 2 ], [0 , 2 , 3 , 1 ], [0 , 3 , 1 , 2 ]),
1115
+ ((1 , 3 , 4 , 5 ), (1 , 1 , 1 , 1 ), [0 , 1 , 2 , 3 ], [0 , 2 , 3 , 1 ], [0 , 3 , 1 , 2 ]),
1116
+ ((1 , 3 , 4 , 5 , 6 ), (1 , 3 , 1 , 5 , 6 ), [1 ], [0 , 2 , 3 , 4 , 1 ], [0 , 4 , 1 , 2 , 3 ]),
1117
+ ((1 , 3 , 4 , 5 , 6 ), (1 , 3 , 1 , 1 , 1 ), [1 , 2 , 3 ], [0 , 2 , 3 , 4 , 1 ], [0 , 4 , 1 , 2 , 3 ]),
1118
+ ((1 , 3 , 4 , 5 , 6 ), (1 , 1 , 1 , 1 , 1 ), [0 , 1 , 2 , 3 , 4 ], [0 , 2 , 3 , 4 , 1 ], [0 , 4 , 1 , 2 , 3 ]),
1119
+ ])
1120
+ @check_opset_min_version (13 , "ReduceSum from opset >= 13 has axes as an input" )
1121
+ def test_transpose_reducesum_opset_13 (self , input_shape , output_shape , axes , perm_input , perm_output ):
1122
+ node0 = helper .make_node ("Transpose" , ["X" ], ["Y" ], perm = perm_input , name = "trans_1" )
1123
+ node1 = helper .make_node ("ReduceSum" , ["Y" , "axes" ], ["Z" ], keepdims = 1 , name = "reducesum" )
1124
+ node2 = helper .make_node ("Transpose" , ["Z" ], ["res" ], perm = perm_output , name = "trans_2" )
1125
+
1126
+ axes = np .array (axes , dtype = np .int64 )
1127
+
1128
+ graph = helper .make_graph (
1129
+ [node0 , node1 , node2 ],
1130
+ "transpose-reducesum-test" ,
1131
+ [helper .make_tensor_value_info ("X" , TensorProto .FLOAT , input_shape )],
1132
+ [helper .make_tensor_value_info ("res" , TensorProto .FLOAT , output_shape )],
1133
+ [helper .make_tensor ("axes" , TensorProto .INT64 , axes .shape , axes )],
1134
+ )
1135
+
1136
+ model_proto = self .make_model (graph , producer_name = "onnx-tests" )
1137
+ self .run_transpose_compare (["res" ], {"X" : np .random .randn (* input_shape ).astype (np .float32 )},
1138
+ model_proto , remaining_transpose_num = 0 )
1139
+
1087
1140
@parameterized .expand ([
1088
1141
((2 , 3 , 4 , 5 ), (2 , 4 , 5 , 3 ), [0 , 2 , 3 , 1 ]),
1089
1142
((2 , 3 , 4 , 5 , 6 ), (2 , 4 , 5 , 6 , 3 ), [0 , 2 , 3 , 4 , 1 ]),
0 commit comments