@@ -2984,6 +2984,35 @@ struct test_conv_transpose_2d : public test_case {
29842984 }
29852985};
29862986
2987+ // GGML_OP_CONV_TRANSPOSE_2D
2988+ struct test_conv_transpose_2d : public test_case {
2989+ const std::array<int64_t , 4 > ne_input;
2990+ const std::array<int64_t , 4 > ne_kernel;
2991+ const int stride;
2992+
2993+ std::string vars () override {
2994+ return VARS_TO_STR3 (ne_input, ne_kernel, stride);
2995+ }
2996+
2997+ test_conv_transpose_2d (std::array<int64_t , 4 > ne_input = {10 , 10 , 3 , 1 }, // [input_width, input_height, input_channels, 1]
2998+ std::array<int64_t , 4 > ne_kernel = {3 , 3 , 3 , 1 }, // [kernel_width, kernel_height, input_channels, 1]
2999+ int stride = 1 )
3000+ : ne_input(ne_input), ne_kernel(ne_kernel), stride(stride){}
3001+
3002+ ggml_tensor * build_graph (ggml_context * ctx) override {
3003+ ggml_tensor * input = ggml_new_tensor (ctx, GGML_TYPE_F32, 4 , ne_input.data ());
3004+ ggml_set_name (input, " input" );
3005+
3006+ ggml_tensor * kernel = ggml_new_tensor (ctx, GGML_TYPE_F16, 4 , ne_kernel.data ());
3007+ ggml_set_name (kernel, " kernel" );
3008+
3009+ ggml_tensor * out = ggml_conv_transpose_2d_p0 (ctx, kernel, input, stride);
3010+ ggml_set_name (out, " out" );
3011+
3012+ return out;
3013+ }
3014+ };
3015+
29873016// GGML_OP_IM2COL
29883017struct test_im2col : public test_case {
29893018 const ggml_type type_input;
@@ -4938,8 +4967,6 @@ static std::vector<std::unique_ptr<test_case>> make_test_cases_perf() {
49384967
49394968 test_cases.emplace_back (new test_conv_transpose_2d ({256 , 256 , 256 , 1 }, {3 , 3 , 16 , 256 }, 1 ));
49404969
4941- test_cases.emplace_back (new test_mean (GGML_TYPE_F32, {256 , 256 , 3 , 1 }));
4942-
49434970 return test_cases;
49444971}
49454972
0 commit comments