aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/StaticRangeVisitor.cpp
diff options
context:
space:
mode:
authorNina Drozd <nina.drozd@arm.com>2019-02-07 11:09:27 +0000
committerNina Drozd <nina.drozd@arm.com>2019-02-07 16:51:34 +0000
commit92e754f0809b27c0b816a8d1153d60432ac0ed64 (patch)
treef0fd901dde8da52e302d89d34aee75696809918a /src/armnn/StaticRangeVisitor.cpp
parentaebf2e7871997378d33fa99f7cab6322be9b726f (diff)
downloadarmnn-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.cpp30
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