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.

resize.cpp 3.1 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /**
  2. * \file dnn/test/fallback/resize.cpp
  3. * MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
  4. *
  5. * Copyright (c) 2014-2020 Megvii Inc. All rights reserved.
  6. *
  7. * Unless required by applicable law or agreed to in writing,
  8. * software distributed under the License is distributed on an
  9. * "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. */
  11. #include "test/fallback/fixture.h"
  12. #include "test/common/resize.h"
  13. #include "test/common/checker.h"
  14. namespace megdnn {
  15. namespace test {
  16. TEST_F(FALLBACK, RESIZE_CV)
  17. {
  18. using namespace resize;
  19. std::vector<TestArg> args = get_cv_args();
  20. Checker<Resize> checker(handle());
  21. for (auto &&arg: args) {
  22. checker.set_param(arg.param)
  23. .set_dtype(0, dtype::Uint8())
  24. .set_dtype(1, dtype::Uint8())
  25. .set_epsilon(1+1e-3)
  26. .execs({arg.src, arg.dst});
  27. }
  28. for (auto &&arg: args) {
  29. checker.set_param(arg.param)
  30. .set_dtype(0, dtype::Float32())
  31. .set_dtype(1, dtype::Float32())
  32. .execs({arg.src, arg.dst});
  33. }
  34. }
  35. TEST_F(FALLBACK, RESIZE)
  36. {
  37. using namespace resize;
  38. std::vector<TestArg> args = get_args();
  39. Checker<Resize> checker(handle());
  40. for (auto &&arg: args) {
  41. checker.set_param(arg.param)
  42. .set_dtype(0, dtype::Uint8())
  43. .set_dtype(1, dtype::Uint8())
  44. .set_epsilon(1+1e-3)
  45. .execs({arg.src, arg.dst});
  46. }
  47. for (auto &&arg: args) {
  48. checker.set_param(arg.param)
  49. .set_dtype(0, dtype::Float32())
  50. .set_dtype(1, dtype::Float32())
  51. .execs({arg.src, arg.dst});
  52. }
  53. }
  54. TEST_F(FALLBACK, RESIZE_NCHW_WITH_STRIDE) {
  55. param::Resize param;
  56. param.format = param::Resize::Format::NCHW;
  57. param.imode = param::Resize::InterpolationMode::LINEAR;
  58. Checker<Resize> checker(handle());
  59. checker.set_epsilon(1 + 1e-3)
  60. .set_param(param);
  61. auto run = [&](TensorShape src_shape, std::vector<ptrdiff_t> src_layout,
  62. TensorShape dst_shape, DType dtype) {
  63. checker.set_dtype(0, dtype)
  64. .set_dtype(1, dtype)
  65. .execl({{src_shape, src_layout, dtype}, {dst_shape, dtype}});
  66. };
  67. for (DType& dtype : std::vector<DType>{dtype::Float32(), dtype::Uint8()}) {
  68. run({2, 3, 4, 4}, {256, 32, 8, 1}, {2, 3, 3, 3}, dtype);
  69. run({1, 3, 4, 3}, {105, 35, 7, 2}, {1, 3, 5, 5}, dtype);
  70. run({2, 3, 4, 4}, {-256, 32, -8, 1}, {2, 3, 3, 3}, dtype);
  71. run({2, 3, 4, 4}, {256, -32, 8, -1}, {2, 3, 3, 3}, dtype);
  72. run({2, 3, 4, 4}, {-256, -32, -8, -1}, {2, 3, 3, 3}, dtype);
  73. }
  74. }
  75. TEST_F(FALLBACK, RESIZE_NCHW4) {
  76. using namespace resize;
  77. auto args = get_nchw4_args();
  78. Checker<Resize> checker(handle());
  79. for (auto &&arg: args) {
  80. checker.set_param(arg.param)
  81. .set_dtype(0, dtype::QuantizedS8(1.0f))
  82. .set_dtype(1, dtype::QuantizedS8(1.0f))
  83. .set_epsilon(1+1e-3)
  84. .execs({arg.src, arg.dst});
  85. }
  86. }
  87. } // namespace test
  88. } // namespace megdnn
  89. // vim: syntax=cpp.doxygen

MegEngine 安装包中集成了使用 GPU 运行代码所需的 CUDA 环境,不用区分 CPU 和 GPU 版。 如果想要运行 GPU 程序,请确保机器本身配有 GPU 硬件设备并安装好驱动。 如果你想体验在云端 GPU 算力平台进行深度学习开发的感觉,欢迎访问 MegStudio 平台