/** * \file dnn/test/common/gaussian_blur.h * MegEngine is Licensed under the Apache License, Version 2.0 (the "License") * * Copyright (c) 2014-2021 Megvii Inc. All rights reserved. * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ #pragma once #include "megdnn/basic_types.h" #include "megdnn/opr_param_defs.h" namespace megdnn { namespace test { namespace gaussian_blur { struct TestArg { param::GaussianBlur param; TensorShape src; TestArg(param::GaussianBlur param, TensorShape src) : param(param), src(src) {} }; inline static std::vector get_args() { std::vector args; param::GaussianBlur cur_param; for (size_t i : {8, 11}) { for (size_t j : {8, 23}) { for (size_t kh = 3; kh <= 9; kh += 2) { for (size_t kw = 3; kw <= 9; kw += 2) { cur_param.kernel_height = kh; cur_param.kernel_width = kw; cur_param.border_mode = param::GaussianBlur::BorderMode::BORDER_REPLICATE; args.emplace_back(cur_param, TensorShape{1, i, j, 1}); args.emplace_back(cur_param, TensorShape{3, i, j, 3}); cur_param.border_mode = param::GaussianBlur::BorderMode::BORDER_REFLECT; args.emplace_back(cur_param, TensorShape{3, i, j, 3}); args.emplace_back(cur_param, TensorShape{3, i, j, 1}); cur_param.border_mode = param::GaussianBlur::BorderMode::BORDER_REFLECT_101; args.emplace_back(cur_param, TensorShape{3, i, j, 3}); args.emplace_back(cur_param, TensorShape{3, i, j, 1}); cur_param.border_mode = param::GaussianBlur::BorderMode::BORDER_CONSTANT; args.emplace_back(cur_param, TensorShape{3, i, j, 3}); args.emplace_back(cur_param, TensorShape{3, i, j, 1}); } } } } cur_param.kernel_height = 0; cur_param.kernel_width = 0; cur_param.sigma_x = 0.8; cur_param.sigma_y = 0.9; args.emplace_back(cur_param, TensorShape{1, 8, 9, 3}); args.emplace_back(cur_param, TensorShape{1, 8, 9, 1}); return args; } } // namespace gaussian_blur } // namespace test } // namespace megdnn // vim: syntax=cpp.doxygen