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_instancenorm.cpp 1.2 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright 2020 Tencent
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. #include "testutil.h"
  4. static int test_instancenorm(const ncnn::Mat& a, float eps, int affine)
  5. {
  6. int channels = a.c;
  7. ncnn::ParamDict pd;
  8. pd.set(0, affine ? channels : 0);
  9. pd.set(1, eps);
  10. pd.set(2, affine);
  11. std::vector<ncnn::Mat> weights(2);
  12. weights[0] = RandomMat(channels);
  13. weights[1] = RandomMat(channels);
  14. int ret = test_layer("InstanceNorm", pd, weights, a);
  15. if (ret != 0)
  16. {
  17. fprintf(stderr, "test_instancenorm failed a.dims=%d a=(%d %d %d) eps=%f affine=%d\n", a.dims, a.w, a.h, a.c, eps, affine);
  18. }
  19. return ret;
  20. }
  21. static int test_instancenorm_0()
  22. {
  23. return 0
  24. || test_instancenorm(RandomMat(6, 4, 2), 0.01f, 0)
  25. || test_instancenorm(RandomMat(3, 3, 12), 0.002f, 0)
  26. || test_instancenorm(RandomMat(5, 7, 16), 0.02f, 0)
  27. || test_instancenorm(RandomMat(6, 4, 2), 0.01f, 1)
  28. || test_instancenorm(RandomMat(3, 3, 12), 0.002f, 1)
  29. || test_instancenorm(RandomMat(5, 7, 16), 0.02f, 1);
  30. }
  31. int main()
  32. {
  33. SRAND(7767517);
  34. return 0
  35. || test_instancenorm_0();
  36. }