diff options
author | Nina Drozd <nina.drozd@arm.com> | 2019-02-07 11:09:27 +0000 |
---|---|---|
committer | Nina Drozd <nina.drozd@arm.com> | 2019-02-07 16:51:34 +0000 |
commit | 92e754f0809b27c0b816a8d1153d60432ac0ed64 (patch) | |
tree | f0fd901dde8da52e302d89d34aee75696809918a /src/armnn/StaticRangeVisitor.cpp | |
parent | aebf2e7871997378d33fa99f7cab6322be9b726f (diff) | |
download | armnn-92e754f0809b27c0b816a8d1153d60432ac0ed64.tar.gz |
IVGCVSW-2608: support static quantization of Activation
Change-Id: Ia9afd15d002d4454ec72f219c5cf214704f6ae31
Signed-off-by: Nina Drozd <nina.drozd@arm.com>
Diffstat (limited to 'src/armnn/StaticRangeVisitor.cpp')
-rw-r--r-- | src/armnn/StaticRangeVisitor.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/armnn/StaticRangeVisitor.cpp b/src/armnn/StaticRangeVisitor.cpp index cc8c26e778..1986e427f2 100644 --- a/src/armnn/StaticRangeVisitor.cpp +++ b/src/armnn/StaticRangeVisitor.cpp @@ -6,6 +6,8 @@ #include "StaticRangeVisitor.hpp" #include <boost/core/ignore_unused.hpp> +#include <armnn/Descriptors.hpp> +#include <armnn/Types.hpp> namespace armnn { @@ -53,4 +55,32 @@ void StaticRangeVisitor::VisitBatchNormalizationLayer(const IConnectableLayer* l SetRange(layer, 0, -15.0f, 15.0f); } +void StaticRangeVisitor::VisitActivationLayer(const IConnectableLayer *layer, + const ActivationDescriptor& activationDescriptor, + const char *name) +{ + switch (activationDescriptor.m_Function) + { + // Range is 0, 15 for Abs, Linear, ReLu and Soft ReLu + case ActivationFunction::Abs: + case ActivationFunction::Linear: + case ActivationFunction::ReLu: + case ActivationFunction::SoftReLu: + SetRange(layer, 0, 0.f, 15.f); + break; + case ActivationFunction::BoundedReLu: + SetRange(layer, 0, 0.f, activationDescriptor.m_A); + break; + case ActivationFunction::TanH: + SetRange(layer, 0, -1.f, 1.f); + break; + case ActivationFunction::LeakyReLu: + SetRange(layer, 0, -5.f, 15.f); + break; + default: + SetRange(layer, 0, -15.f, 15.f); + break; + } +} + } //namespace armnn
\ No newline at end of file |