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_concat_oom.cpp 2.3 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. // Copyright 2024 Tencent
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. #include "testutil.h"
  4. static int test_concat_oom(const std::vector<ncnn::Mat>& a, int axis)
  5. {
  6. ncnn::ParamDict pd;
  7. pd.set(0, axis); //axis
  8. std::vector<ncnn::Mat> weights(0);
  9. int ret = test_layer_oom("Concat", pd, weights, a);
  10. if (ret != 0)
  11. {
  12. fprintf(stderr, "test_concat_oom failed a[0].dims=%d a[0]=(%d %d %d %d) axis=%d\n", a[0].dims, a[0].w, a[0].h, a[0].d, a[0].c, axis);
  13. }
  14. return ret;
  15. }
  16. static int test_concat_0()
  17. {
  18. std::vector<ncnn::Mat> as(8);
  19. as[0] = RandomMat(6, 6, 6, 6);
  20. as[1] = RandomMat(6, 6, 6, 6);
  21. as[2] = RandomMat(6, 6, 6, 6);
  22. as[3] = RandomMat(6, 6, 6, 6);
  23. as[4] = RandomMat(6, 6, 6, 6);
  24. as[5] = RandomMat(6, 6, 6, 6);
  25. as[6] = RandomMat(6, 6, 6, 6);
  26. as[7] = RandomMat(6, 6, 6, 6);
  27. return 0
  28. || test_concat_oom(as, 0)
  29. || test_concat_oom(as, 1)
  30. || test_concat_oom(as, 2)
  31. || test_concat_oom(as, 3);
  32. }
  33. static int test_concat_1()
  34. {
  35. std::vector<ncnn::Mat> as(8);
  36. as[0] = RandomMat(6, 6, 6);
  37. as[1] = RandomMat(6, 6, 6);
  38. as[2] = RandomMat(6, 6, 6);
  39. as[3] = RandomMat(6, 6, 6);
  40. as[4] = RandomMat(6, 6, 6);
  41. as[5] = RandomMat(6, 6, 6);
  42. as[6] = RandomMat(6, 6, 6);
  43. as[7] = RandomMat(6, 6, 6);
  44. return 0
  45. || test_concat_oom(as, 0)
  46. || test_concat_oom(as, 1)
  47. || test_concat_oom(as, 2);
  48. }
  49. static int test_concat_2()
  50. {
  51. std::vector<ncnn::Mat> as(8);
  52. as[0] = RandomMat(6, 6);
  53. as[1] = RandomMat(6, 6);
  54. as[2] = RandomMat(6, 6);
  55. as[3] = RandomMat(6, 6);
  56. as[4] = RandomMat(6, 6);
  57. as[5] = RandomMat(6, 6);
  58. as[6] = RandomMat(6, 6);
  59. as[7] = RandomMat(6, 6);
  60. return 0
  61. || test_concat_oom(as, 0)
  62. || test_concat_oom(as, 1);
  63. }
  64. static int test_concat_3()
  65. {
  66. std::vector<ncnn::Mat> as(8);
  67. as[0] = RandomMat(6);
  68. as[1] = RandomMat(6);
  69. as[2] = RandomMat(6);
  70. as[3] = RandomMat(6);
  71. as[4] = RandomMat(6);
  72. as[5] = RandomMat(6);
  73. as[6] = RandomMat(6);
  74. as[7] = RandomMat(6);
  75. return test_concat_oom(as, 0);
  76. }
  77. int main()
  78. {
  79. SRAND(7767517);
  80. return 0
  81. || test_concat_0()
  82. || test_concat_1()
  83. || test_concat_2()
  84. || test_concat_3();
  85. }