24.02.1
LogSoftmaxLayer.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2019-2020 Arm Limited.
3
*
4
* SPDX-License-Identifier: MIT
5
*
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to
8
* deal in the Software without restriction, including without limitation the
9
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10
* sell copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in all
14
* copies or substantial portions of the Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
* SOFTWARE.
23
*/
24
#include "
arm_compute/core/Types.h
"
25
#include "
arm_compute/runtime/CL/CLTensor.h
"
26
#include "
arm_compute/runtime/CL/CLTensorAllocator.h
"
27
#include "
arm_compute/runtime/CL/functions/CLSoftmaxLayer.h
"
28
#include "
tests/CL/CLAccessor.h
"
29
#include "
tests/PaddingCalculator.h
"
30
#include "tests/datasets/ShapeDatasets.h"
31
#include "
tests/framework/Asserts.h
"
32
#include "
tests/framework/Macros.h
"
33
#include "
tests/framework/datasets/Datasets.h
"
34
#include "
tests/validation/Validation.h
"
35
#include "tests/validation/fixtures/SoftmaxLayerFixture.h"
36
37
namespace
arm_compute
38
{
39
namespace
test
40
{
41
namespace
validation
42
{
43
namespace
44
{
45
/** Tolerance for float operations */
46
RelativeTolerance<half>
tolerance_f16
(
half
(0.2));
47
RelativeTolerance<float>
tolerance_f32
(0.001f);
48
}
// namespace
49
50
TEST_SUITE
(CL)
51
TEST_SUITE
(LogSoftmaxLayer)
52
53
template
<
typename
T>
54
using
CLLogSoftmaxLayerFixture
= SoftmaxValidationFixture<CLTensor, CLAccessor, CLLogSoftmaxLayer, T, true>;
55
56
TEST_SUITE
(Float)
57
TEST_SUITE
(FP16)
58
FIXTURE_DATA_TEST_CASE
(RunSmall,
CLLogSoftmaxLayerFixture
<
half
>, framework::
DatasetMode
::ALL,
combine
(
combine
(
combine
(datasets::SoftmaxLayerSmallShapes(),
59
framework::dataset::
make
("
DataType
",
DataType
::F16)),
60
framework::dataset::
make
("Beta", { 1.0f, 2.0f })),
61
framework::dataset::make
(
"Axis"
, { 0, -1 })))
62
{
63
// Validate output
64
validate
(CLAccessor(_target), _reference,
tolerance_f16
);
65
}
66
FIXTURE_DATA_TEST_CASE
(RunLarge,
CLLogSoftmaxLayerFixture<half>
,
framework::DatasetMode::NIGHTLY
,
combine
(
combine
(
combine
(datasets::SoftmaxLayerLargeShapes(),
67
framework::dataset::make
(
"DataType"
,
DataType::F16
)),
68
framework::dataset::make
(
"Beta"
, { 1.0f, 2.0f })),
69
framework::dataset::make
(
"Axis"
, { 0 })))
70
{
71
// Validate output
72
validate
(CLAccessor(_target), _reference,
tolerance_f16
);
73
}
74
FIXTURE_DATA_TEST_CASE
(Run4D,
CLLogSoftmaxLayerFixture<half>
,
framework::DatasetMode::NIGHTLY
,
combine
(
combine
(
combine
(datasets::SoftmaxLayer4DShapes(),
75
framework::dataset::make
(
"DataType"
,
DataType::F16
)),
76
framework::dataset::make
(
"Beta"
, { 1.0f, 2.0f })),
77
framework::dataset::make
(
"Axis"
, { 0, -3, 2 })))
78
{
79
// Validate output
80
validate
(CLAccessor(_target), _reference,
tolerance_f16
);
81
}
82
TEST_SUITE_END
()
// FP16
83
84
TEST_SUITE
(FP32)
85
FIXTURE_DATA_TEST_CASE
(RunSmall,
CLLogSoftmaxLayerFixture
<
float
>, framework::
DatasetMode
::ALL,
combine
(
combine
(
combine
(datasets::SoftmaxLayerSmallShapes(),
86
framework::dataset::
make
("
DataType
",
DataType
::F32)),
87
framework::dataset::
make
("Beta", { 1.0f, 2.0f })),
88
framework::dataset::make
(
"Axis"
, { 0, 1 })))
89
{
90
// Validate output
91
validate
(CLAccessor(_target), _reference,
tolerance_f32
);
92
}
93
FIXTURE_DATA_TEST_CASE
(RunLarge,
CLLogSoftmaxLayerFixture<float>
,
framework::DatasetMode::NIGHTLY
,
combine
(
combine
(
combine
(datasets::SoftmaxLayerLargeShapes(),
94
framework::dataset::make
(
"DataType"
,
DataType::F32
)),
95
framework::dataset::make
(
"Beta"
, { 1.0f, 2.0f })),
96
framework::dataset::make
(
"Axis"
, { 0 })))
97
{
98
// Validate output
99
validate
(CLAccessor(_target), _reference,
tolerance_f32
);
100
}
101
FIXTURE_DATA_TEST_CASE
(Run4D,
CLLogSoftmaxLayerFixture<float>
,
framework::DatasetMode::ALL
,
combine
(
combine
(
combine
(datasets::SoftmaxLayer4DShapes(),
102
framework::dataset::make
(
"DataType"
,
DataType::F32
)),
103
framework::dataset::make
(
"Beta"
, { 1.0f, 2.0f })),
104
framework::dataset::make
(
"Axis"
, { 0, -4, 3 })))
105
{
106
// Validate output
107
validate
(CLAccessor(_target), _reference,
tolerance_f32
);
108
}
109
TEST_SUITE_END
()
// FP32
110
TEST_SUITE_END
()
// Float
111
TEST_SUITE_END
()
// LogSoftmaxLayer
112
TEST_SUITE_END
()
// CL
113
}
// namespace validation
114
}
// namespace test
115
}
// namespace arm_compute
Datasets.h
arm_compute::test::validation::TEST_SUITE_END
TEST_SUITE_END() FIXTURE_DATA_TEST_CASE(RunSmall
[CLActivationLayer Test snippet]
Definition:
DequantizationLayer.cpp:111
PaddingCalculator.h
arm_compute::test::validation::FIXTURE_DATA_TEST_CASE
FIXTURE_DATA_TEST_CASE(RunSmall, CLAbsLayerFixture< half >, framework::DatasetMode::PRECOMMIT, combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::F16)))
Definition:
AbsLayer.cpp:50
arm_compute::test::validation::combine
combine(datasets::SmallShapes(), framework::dataset::make("DataType", DataType::F32)))
Definition:
AbsLayer.cpp:65
arm_compute::test::validation::tolerance_f16
RelativeTolerance< half_float::half > tolerance_f16(half_float::half(0.1))
Tolerance value for comparing reference's output against implementation's output for DataType::F16.
Types.h
CLSoftmaxLayer.h
arm_compute::test::validation::CLLogSoftmaxLayerFixture
SoftmaxValidationFixture< CLTensor, CLAccessor, CLLogSoftmaxLayer, T, true > CLLogSoftmaxLayerFixture
Definition:
LogSoftmaxLayer.cpp:54
arm_compute::test::validation::TEST_SUITE
TEST_SUITE(QASYMM8_to_F32) FIXTURE_DATA_TEST_CASE(RunSmall
CLAccessor.h
arm_compute::test::validation::validate
validate(CLAccessor(output_state), expected_output)
arm_compute::half
half_float::half half
16-bit floating point type
Definition:
CoreTypes.h:36
arm_compute::test::framework::DatasetMode::ALL
@ ALL
arm_compute::test::validation::tolerance_f32
RelativeTolerance< float > tolerance_f32(0.01f)
Tolerance value for comparing reference's output against implementation's output for DataType::F32.
arm_compute::test::framework::DatasetMode::NIGHTLY
@ NIGHTLY
Asserts.h
Macros.h
arm_compute::test::framework::dataset::make
std::enable_if< is_container< T >::value, ContainerDataset< T > >::type make(std::string name, T &&values)
Helper function to create a ContainerDataset.
Definition:
ContainerDataset.h:160
Validation.h
arm_compute
Copyright (c) 2017-2024 Arm Limited.
Definition:
introduction.dox:24
arm_compute::DataType::F16
@ F16
16-bit floating-point number
CLTensor.h
arm_compute::DataType::F32
@ F32
32-bit floating-point number
CLTensorAllocator.h
arm_compute::test::framework::DatasetMode
DatasetMode
Possible dataset modes.
Definition:
DatasetModes.h:40
arm_compute::DataType
DataType
Available data types.
Definition:
CoreTypes.h:83
tests
validation
CL
LogSoftmaxLayer.cpp
Generated on Mon Mar 18 2024 11:32:05 for Compute Library by
1.8.17