ncnn

Форк
0
/
test_flatten.cpp 
100 строк · 3.5 Кб
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_flatten(const ncnn::Mat& a)
18
{
19
    ncnn::ParamDict pd;
20

21
    std::vector<ncnn::Mat> weights(0);
22

23
    int ret = test_layer("Flatten", pd, weights, a);
24
    if (ret != 0)
25
    {
26
        fprintf(stderr, "test_flatten failed a.dims=%d a=(%d %d %d %d)\n", a.dims, a.w, a.h, a.d, a.c);
27
    }
28

29
    return ret;
30
}
31

32
static int test_flatten_0()
33
{
34
    return 0
35
           || test_flatten(RandomMat(2, 3, 4, 4))
36
           || test_flatten(RandomMat(3, 5, 7, 8))
37
           || test_flatten(RandomMat(1, 1, 1, 16))
38
           || test_flatten(RandomMat(9, 10, 2, 16))
39
           || test_flatten(RandomMat(1, 7, 1, 1))
40
           || test_flatten(RandomMat(6, 6, 6, 15))
41
           || test_flatten(RandomMat(2, 4, 4))
42
           || test_flatten(RandomMat(3, 5, 8))
43
           || test_flatten(RandomMat(1, 1, 16))
44
           || test_flatten(RandomMat(9, 10, 16))
45
           || test_flatten(RandomMat(1, 7, 1))
46
           || test_flatten(RandomMat(6, 6, 15))
47
           || test_flatten(RandomMat(13, 13))
48
           || test_flatten(RandomMat(16, 16))
49
           || test_flatten(RandomMat(8, 12))
50
           || test_flatten(RandomMat(8, 2))
51
           || test_flatten(RandomMat(32))
52
           || test_flatten(RandomMat(17));
53
}
54

55
static int test_flatten_int8(const ncnn::Mat& a)
56
{
57
    ncnn::ParamDict pd;
58

59
    std::vector<ncnn::Mat> weights(0);
60

61
    int flag = TEST_LAYER_DISABLE_AUTO_INPUT_CASTING | TEST_LAYER_DISABLE_GPU_TESTING;
62
    int ret = test_layer("Flatten", pd, weights, a, 0.001, 0, flag);
63
    if (ret != 0)
64
    {
65
        fprintf(stderr, "test_flatten_int8 failed a.dims=%d a=(%d %d %d %d)\n", a.dims, a.w, a.h, a.d, a.c);
66
    }
67

68
    return ret;
69
}
70

71
static int test_flatten_1()
72
{
73
    return 0
74
           || test_flatten_int8(RandomS8Mat(2, 3, 4, 4))
75
           || test_flatten_int8(RandomS8Mat(3, 5, 7, 8))
76
           || test_flatten_int8(RandomS8Mat(1, 1, 1, 16))
77
           || test_flatten_int8(RandomS8Mat(9, 10, 2, 16))
78
           || test_flatten_int8(RandomS8Mat(1, 7, 1, 1))
79
           || test_flatten_int8(RandomS8Mat(6, 6, 6, 15))
80
           || test_flatten_int8(RandomS8Mat(2, 4, 16))
81
           || test_flatten_int8(RandomS8Mat(3, 5, 32))
82
           || test_flatten_int8(RandomS8Mat(1, 1, 64))
83
           || test_flatten_int8(RandomS8Mat(9, 10, 64))
84
           || test_flatten_int8(RandomS8Mat(1, 7, 4))
85
           || test_flatten_int8(RandomS8Mat(6, 6, 70))
86
           || test_flatten_int8(RandomS8Mat(13, 52))
87
           || test_flatten_int8(RandomS8Mat(16, 64))
88
           || test_flatten_int8(RandomS8Mat(8, 48))
89
           || test_flatten_int8(RandomS8Mat(16, 11))
90
           || test_flatten_int8(RandomS8Mat(8, 8))
91
           || test_flatten_int8(RandomS8Mat(128))
92
           || test_flatten_int8(RandomS8Mat(127));
93
}
94

95
int main()
96
{
97
    SRAND(7767517);
98

99
    return test_flatten_0() || test_flatten_1();
100
}
101

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

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

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

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