17
static int test_matmul(const ncnn::Mat& a, const ncnn::Mat& b)
22
std::vector<ncnn::Mat> weights(0);
24
std::vector<ncnn::Mat> as(2);
28
int ret = test_layer("MatMul", pd, weights, as);
31
fprintf(stderr, "test_matmul failed a.dims=%d a=(%d %d %d %d) b.dims=%d b=(%d %d %d %d)\n", a.dims, a.w, a.h, a.d, a.c, b.dims, b.w, b.h, b.d, b.c);
37
static int test_matmul_transb(const ncnn::Mat& a, const ncnn::Mat& b)
42
std::vector<ncnn::Mat> weights(0);
44
std::vector<ncnn::Mat> as(2);
48
int ret = test_layer("MatMul", pd, weights, as);
51
fprintf(stderr, "test_matmul_transb failed a.dims=%d a=(%d %d %d %d) b.dims=%d b=(%d %d %d %d)\n", a.dims, a.w, a.h, a.d, a.c, b.dims, b.w, b.h, b.d, b.c);
57
static int test_matmul_0()
60
|| test_matmul(RandomMat(124), RandomMat(124))
61
|| test_matmul(RandomMat(127), RandomMat(127))
62
|| test_matmul(RandomMat(128), RandomMat(128));
65
static int test_matmul_1()
68
|| test_matmul(RandomMat(5), RandomMat(6, 5))
69
|| test_matmul(RandomMat(16), RandomMat(12, 16))
70
|| test_matmul(RandomMat(11), RandomMat(16, 11))
72
|| test_matmul_transb(RandomMat(5), RandomMat(5, 6))
73
|| test_matmul_transb(RandomMat(16), RandomMat(16, 12))
74
|| test_matmul_transb(RandomMat(11), RandomMat(11, 16));
77
static int test_matmul_2()
80
|| test_matmul(RandomMat(13), RandomMat(7, 13, 12))
81
|| test_matmul(RandomMat(24), RandomMat(6, 24, 16))
82
|| test_matmul(RandomMat(20), RandomMat(8, 20, 19))
84
|| test_matmul_transb(RandomMat(13), RandomMat(13, 7, 12))
85
|| test_matmul_transb(RandomMat(24), RandomMat(24, 6, 16))
86
|| test_matmul_transb(RandomMat(20), RandomMat(20, 8, 19));
89
static int test_matmul_3()
92
|| test_matmul(RandomMat(13), RandomMat(7, 13, 5, 12))
93
|| test_matmul(RandomMat(24), RandomMat(6, 24, 4, 16))
94
|| test_matmul(RandomMat(20), RandomMat(8, 20, 3, 19))
96
|| test_matmul_transb(RandomMat(13), RandomMat(13, 7, 5, 12))
97
|| test_matmul_transb(RandomMat(24), RandomMat(24, 6, 4, 16))
98
|| test_matmul_transb(RandomMat(20), RandomMat(20, 8, 3, 19));
101
static int test_matmul_4()
104
|| test_matmul(RandomMat(5, 6), RandomMat(5))
105
|| test_matmul(RandomMat(16, 12), RandomMat(16))
106
|| test_matmul(RandomMat(11, 16), RandomMat(11));
109
static int test_matmul_5()
112
|| test_matmul(RandomMat(32, 3, 10), RandomMat(32))
113
|| test_matmul(RandomMat(31, 4, 16), RandomMat(31))
114
|| test_matmul(RandomMat(28, 5, 28), RandomMat(28));
117
static int test_matmul_6()
120
|| test_matmul(RandomMat(32, 3, 4, 10), RandomMat(32))
121
|| test_matmul(RandomMat(31, 4, 5, 16), RandomMat(31))
122
|| test_matmul(RandomMat(18, 5, 6, 28), RandomMat(18));
125
static int test_matmul_7()
128
|| test_matmul(RandomMat(14, 10), RandomMat(5, 14))
129
|| test_matmul(RandomMat(16, 16), RandomMat(10, 16))
130
|| test_matmul(RandomMat(14, 28), RandomMat(9, 14))
132
|| test_matmul_transb(RandomMat(14, 10), RandomMat(14, 5))
133
|| test_matmul_transb(RandomMat(16, 16), RandomMat(16, 10))
134
|| test_matmul_transb(RandomMat(14, 28), RandomMat(14, 9));
137
static int test_matmul_8()
140
|| test_matmul(RandomMat(5, 4), RandomMat(4, 5, 12))
141
|| test_matmul(RandomMat(5, 14), RandomMat(5, 5, 16))
142
|| test_matmul(RandomMat(5, 24), RandomMat(6, 5, 19))
144
|| test_matmul_transb(RandomMat(5, 4), RandomMat(5, 4, 12))
145
|| test_matmul_transb(RandomMat(5, 14), RandomMat(5, 5, 16))
146
|| test_matmul_transb(RandomMat(5, 24), RandomMat(5, 6, 19));
149
static int test_matmul_9()
152
|| test_matmul(RandomMat(5, 4), RandomMat(4, 5, 2, 12))
153
|| test_matmul(RandomMat(5, 14), RandomMat(5, 5, 3, 16))
154
|| test_matmul(RandomMat(5, 24), RandomMat(6, 5, 4, 19))
156
|| test_matmul_transb(RandomMat(5, 4), RandomMat(5, 4, 2, 12))
157
|| test_matmul_transb(RandomMat(5, 14), RandomMat(5, 5, 3, 16))
158
|| test_matmul_transb(RandomMat(5, 24), RandomMat(5, 6, 4, 19));
161
static int test_matmul_10()
164
|| test_matmul(RandomMat(14, 23, 10), RandomMat(5, 14))
165
|| test_matmul(RandomMat(16, 22, 16), RandomMat(10, 16))
166
|| test_matmul(RandomMat(14, 20, 28), RandomMat(9, 14))
168
|| test_matmul_transb(RandomMat(14, 23, 10), RandomMat(14, 5))
169
|| test_matmul_transb(RandomMat(16, 22, 16), RandomMat(16, 10))
170
|| test_matmul_transb(RandomMat(14, 20, 28), RandomMat(14, 9));
173
static int test_matmul_11()
176
|| test_matmul(RandomMat(14, 13, 2, 10), RandomMat(5, 14))
177
|| test_matmul(RandomMat(16, 12, 3, 16), RandomMat(10, 16))
178
|| test_matmul(RandomMat(14, 10, 4, 28), RandomMat(9, 14))
180
|| test_matmul_transb(RandomMat(14, 13, 2, 10), RandomMat(14, 5))
181
|| test_matmul_transb(RandomMat(16, 12, 3, 16), RandomMat(16, 10))
182
|| test_matmul_transb(RandomMat(14, 10, 4, 28), RandomMat(14, 9));
185
static int test_matmul_12()
188
|| test_matmul(RandomMat(14, 23, 10), RandomMat(5, 14, 10))
189
|| test_matmul(RandomMat(16, 22, 16), RandomMat(10, 16, 16))
190
|| test_matmul(RandomMat(14, 20, 28), RandomMat(9, 14, 28))
192
|| test_matmul_transb(RandomMat(14, 23, 10), RandomMat(14, 5, 10))
193
|| test_matmul_transb(RandomMat(16, 22, 16), RandomMat(16, 10, 16))
194
|| test_matmul_transb(RandomMat(14, 20, 28), RandomMat(14, 9, 28));
197
static int test_matmul_13()
200
|| test_matmul(RandomMat(14, 23, 10), RandomMat(5, 14, 1, 16))
201
|| test_matmul(RandomMat(16, 22, 9), RandomMat(10, 16, 1, 17))
202
|| test_matmul(RandomMat(14, 20, 8), RandomMat(9, 14, 1, 18))
204
|| test_matmul_transb(RandomMat(14, 23, 10), RandomMat(14, 5, 1, 16))
205
|| test_matmul_transb(RandomMat(16, 22, 9), RandomMat(16, 10, 1, 17))
206
|| test_matmul_transb(RandomMat(14, 20, 8), RandomMat(14, 9, 1, 18));
209
static int test_matmul_14()
212
|| test_matmul(RandomMat(14, 23, 10, 1), RandomMat(5, 14, 1, 16))
213
|| test_matmul(RandomMat(16, 22, 9, 1), RandomMat(10, 16, 1, 17))
214
|| test_matmul(RandomMat(14, 20, 8, 1), RandomMat(9, 14, 1, 18))
216
|| test_matmul_transb(RandomMat(14, 23, 10, 1), RandomMat(14, 5, 1, 16))
217
|| test_matmul_transb(RandomMat(16, 22, 9, 1), RandomMat(16, 10, 1, 17))
218
|| test_matmul_transb(RandomMat(14, 20, 8, 1), RandomMat(14, 9, 1, 18));
221
static int test_matmul_15()
224
|| test_matmul(RandomMat(14, 23, 10, 16), RandomMat(5, 14, 10, 16))
225
|| test_matmul(RandomMat(16, 22, 9, 17), RandomMat(10, 16, 9, 17))
226
|| test_matmul(RandomMat(14, 20, 8, 18), RandomMat(9, 14, 8, 18))
228
|| test_matmul_transb(RandomMat(14, 23, 10, 16), RandomMat(14, 5, 10, 16))
229
|| test_matmul_transb(RandomMat(16, 22, 9, 17), RandomMat(16, 10, 9, 17))
230
|| test_matmul_transb(RandomMat(14, 20, 8, 18), RandomMat(14, 9, 8, 18));