aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/StaticRangeVisitor.cpp
diff options
context:
space:
mode:
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