ncnn

Форк
0
/
test_lrn.cpp 
78 строк · 2.2 Кб
1
// Tencent is pleased to support the open source community by making ncnn available.
2
//
3
// Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved.
4
//
5
// Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
6
// in compliance with the License. You may obtain a copy of the License at
7
//
8
// https://opensource.org/licenses/BSD-3-Clause
9
//
10
// Unless required by applicable law or agreed to in writing, software distributed
11
// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
// CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
// specific language governing permissions and limitations under the License.
14

15
#include "testutil.h"
16

17
static int test_lrn(const ncnn::Mat& a, int region_type, int local_size, float alpha, float beta, float bias)
18
{
19
    ncnn::ParamDict pd;
20
    pd.set(0, region_type);
21
    pd.set(1, local_size);
22
    pd.set(2, alpha);
23
    pd.set(3, beta);
24
    pd.set(4, bias);
25

26
    std::vector<ncnn::Mat> weights(0);
27

28
    int ret = test_layer("LRN", pd, weights, a);
29
    if (ret != 0)
30
    {
31
        fprintf(stderr, "test_lrn failed a.dims=%d a=(%d %d %d) region_type=%d local_size=%d alpha=%f beta=%f bias=%f\n", a.dims, a.w, a.h, a.c, region_type, local_size, alpha, beta, bias);
32
    }
33

34
    return ret;
35
}
36

37
static int test_lrn_0()
38
{
39
    ncnn::Mat a = RandomMat(11, 7, 12);
40

41
    return 0
42
           || test_lrn(a, 0, 1, 1.f, 0.75f, 1.f)
43
           || test_lrn(a, 0, 5, 2.f, 0.12f, 1.33f)
44
           || test_lrn(a, 1, 1, 0.6f, 0.4f, 2.4f)
45
           || test_lrn(a, 1, 3, 1.f, 0.75f, 0.5f);
46
}
47

48
static int test_lrn_1()
49
{
50
    ncnn::Mat a = RandomMat(10, 8, 16);
51

52
    return 0
53
           || test_lrn(a, 0, 1, 1.f, 0.75f, 1.f)
54
           || test_lrn(a, 0, 5, 2.f, 0.12f, 1.33f)
55
           || test_lrn(a, 1, 1, 0.6f, 0.4f, 2.4f)
56
           || test_lrn(a, 1, 3, 1.f, 0.75f, 0.5f);
57
}
58

59
static int test_lrn_2()
60
{
61
    ncnn::Mat a = RandomMat(12, 10, 9);
62

63
    return 0
64
           || test_lrn(a, 0, 1, 1.f, 0.75f, 1.f)
65
           || test_lrn(a, 0, 5, 2.f, 0.12f, 1.33f)
66
           || test_lrn(a, 1, 1, 0.6f, 0.4f, 2.4f)
67
           || test_lrn(a, 1, 3, 1.f, 0.75f, 0.5f);
68
}
69

70
int main()
71
{
72
    SRAND(7767517);
73

74
    return 0
75
           || test_lrn_0()
76
           || test_lrn_1()
77
           || test_lrn_2();
78
}
79

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.