diff options
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 |