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.

test_priorbox.cpp 2.6 kB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // Copyright 2020 Tencent
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. #include "testutil.h"
  4. static int test_priorbox_caffe()
  5. {
  6. ncnn::Mat min_sizes(1);
  7. min_sizes[0] = 105.f;
  8. ncnn::Mat max_sizes(1);
  9. max_sizes[0] = 150.f;
  10. ncnn::Mat aspect_ratios(2);
  11. aspect_ratios[0] = 2.f;
  12. aspect_ratios[1] = 3.f;
  13. ncnn::ParamDict pd;
  14. pd.set(0, min_sizes);
  15. pd.set(1, max_sizes);
  16. pd.set(2, aspect_ratios);
  17. pd.set(3, 0.1f); // variances[0]
  18. pd.set(4, 0.1f); // variances[1]
  19. pd.set(5, 0.2f); // variances[2]
  20. pd.set(6, 0.2f); // variances[3]
  21. pd.set(7, 1); // flip
  22. pd.set(8, 0); // clip
  23. pd.set(9, -233); // image_width
  24. pd.set(10, -233); // image_height
  25. pd.set(11, -233.f); // step_width
  26. pd.set(12, -233.f); // step_height
  27. pd.set(13, 0.f); // offset
  28. pd.set(14, 0.f); // step_mmdetection
  29. pd.set(15, 0.f); // center_mmdetection
  30. std::vector<ncnn::Mat> weights(0);
  31. std::vector<ncnn::Mat> as(2);
  32. as[0] = RandomMat(72, 72, 1);
  33. as[1] = RandomMat(512, 512, 1);
  34. int ret = test_layer("PriorBox", pd, weights, as, 1);
  35. if (ret != 0)
  36. {
  37. fprintf(stderr, "test_priorbox_caffe failed\n");
  38. }
  39. return ret;
  40. }
  41. static int test_priorbox_mxnet()
  42. {
  43. ncnn::Mat min_sizes(2);
  44. min_sizes[0] = 0.15f;
  45. min_sizes[1] = 0.2121f;
  46. ncnn::Mat max_sizes(0);
  47. ncnn::Mat aspect_ratios(5);
  48. aspect_ratios[0] = 1.f;
  49. aspect_ratios[1] = 2.f;
  50. aspect_ratios[2] = 0.5f;
  51. aspect_ratios[3] = 3.f;
  52. aspect_ratios[4] = 0.333333;
  53. ncnn::ParamDict pd;
  54. pd.set(0, min_sizes);
  55. pd.set(1, max_sizes);
  56. pd.set(2, aspect_ratios);
  57. pd.set(3, 0.1f); // variances[0]
  58. pd.set(4, 0.1f); // variances[1]
  59. pd.set(5, 0.2f); // variances[2]
  60. pd.set(6, 0.2f); // variances[3]
  61. pd.set(7, 0); // flip
  62. pd.set(8, 0); // clip
  63. pd.set(9, -233); // image_width
  64. pd.set(10, -233); // image_height
  65. pd.set(11, -233.f); // step_width
  66. pd.set(12, -233.f); // step_height
  67. pd.set(13, 0.5f); // offset
  68. pd.set(14, 0.f); // step_mmdetection
  69. pd.set(15, 0.f); // center_mmdetection
  70. std::vector<ncnn::Mat> weights(0);
  71. std::vector<ncnn::Mat> as(1);
  72. as[0] = RandomMat(72, 72, 1);
  73. int ret = test_layer("PriorBox", pd, weights, as, 1);
  74. if (ret != 0)
  75. {
  76. fprintf(stderr, "test_priorbox_mxnet failed\n");
  77. }
  78. return ret;
  79. }
  80. int main()
  81. {
  82. SRAND(7767517);
  83. return 0
  84. || test_priorbox_caffe()
  85. || test_priorbox_mxnet();
  86. }