You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

adaptive_pooling.h 2.6 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #pragma once
  2. #include <cstddef>
  3. #include "megdnn/basic_types.h"
  4. #include "megdnn/opr_param_defs.h"
  5. namespace megdnn {
  6. namespace test {
  7. namespace adaptive_pooling {
  8. struct TestArg {
  9. param::AdaptivePooling param;
  10. TensorShape ishape;
  11. TensorShape oshape;
  12. TestArg(param::AdaptivePooling param, TensorShape ishape, TensorShape oshape)
  13. : param(param), ishape(ishape), oshape(oshape) {}
  14. };
  15. inline std::vector<TestArg> get_args() {
  16. std::vector<TestArg> args;
  17. using Param = param::AdaptivePooling;
  18. using Mode = param::AdaptivePooling::Mode;
  19. for (size_t i = 36; i < 40; ++i) {
  20. args.emplace_back(
  21. Param{Mode::AVERAGE}, TensorShape{2, 3, i, i + 1},
  22. TensorShape{2, 3, i - 4, i - 2});
  23. args.emplace_back(
  24. Param{Mode::MAX}, TensorShape{2, 3, i, i + 1},
  25. TensorShape{2, 3, i - 4, i - 2});
  26. }
  27. for (size_t i = 5; i < 10; ++i) {
  28. args.emplace_back(
  29. Param{Mode::AVERAGE}, TensorShape{2, 3, i, i + 1},
  30. TensorShape{2, 3, i - 3, i - 2});
  31. args.emplace_back(
  32. Param{Mode::MAX}, TensorShape{2, 3, i, i + 1},
  33. TensorShape{2, 3, i - 3, i - 2});
  34. }
  35. return args;
  36. }
  37. inline std::vector<TestArg> get_args_nchw44() {
  38. std::vector<TestArg> args;
  39. using Param = param::AdaptivePooling;
  40. using Mode = param::AdaptivePooling::Mode;
  41. for (size_t i = 36; i < 40; ++i) {
  42. args.emplace_back(
  43. Param{Mode::AVERAGE, Param::Format::NCHW44},
  44. TensorShape{2, 3, i, i + 1, 4}, TensorShape{2, 3, i - 4, i - 2, 4});
  45. args.emplace_back(
  46. Param{Mode::MAX, Param::Format::NCHW44}, TensorShape{2, 3, i, i + 1, 4},
  47. TensorShape{2, 3, i - 4, i - 2, 4});
  48. args.emplace_back(
  49. Param{Mode::AVERAGE, Param::Format::NCHW44},
  50. TensorShape{2, 3, i, i + 1, 4}, TensorShape{2, 3, 1, 1, 4});
  51. args.emplace_back(
  52. Param{Mode::MAX, Param::Format::NCHW44}, TensorShape{2, 3, i, i + 1, 4},
  53. TensorShape{2, 3, 1, 1, 4});
  54. }
  55. for (size_t i = 5; i < 10; ++i) {
  56. args.emplace_back(
  57. Param{Mode::AVERAGE, Param::Format::NCHW44},
  58. TensorShape{2, 3, i, i + 1, 4}, TensorShape{2, 3, i - 3, i - 2, 4});
  59. args.emplace_back(
  60. Param{Mode::MAX, Param::Format::NCHW44}, TensorShape{2, 3, i, i + 1, 4},
  61. TensorShape{2, 3, i - 3, i - 2, 4});
  62. }
  63. return args;
  64. }
  65. } // namespace adaptive_pooling
  66. } // namespace test
  67. } // namespace megdnn
  68. // vim: syntax=cpp.doxygen