aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/armnn/DynamicQuantizationVisitor.cpp31
-rw-r--r--src/armnn/DynamicQuantizationVisitor.hpp18
2 files changed, 45 insertions, 4 deletions
diff --git a/src/armnn/DynamicQuantizationVisitor.cpp b/src/armnn/DynamicQuantizationVisitor.cpp
index 862a926abc..0b03a3861d 100644
--- a/src/armnn/DynamicQuantizationVisitor.cpp
+++ b/src/armnn/DynamicQuantizationVisitor.cpp
@@ -83,9 +83,28 @@ void DynamicQuantizationVisitor::VisitNonCalibratedLayers() {
}
}
-void DynamicQuantizationVisitor::VisitAdditionLayer(const IConnectableLayer* layer, const char* name)
+void DynamicQuantizationVisitor::VisitAdditionLayer(const IConnectableLayer* layer,
+ const char* name)
+{
+ IgnoreUnused(name);
+ SetRange(layer, 0, -20.f, 20.f);
+ AddToCalibratedLayers(layer);
+}
+
+void DynamicQuantizationVisitor::VisitAbsLayer(const IConnectableLayer* layer,
+ const char* name)
+{
+ IgnoreUnused(name);
+ SetRange(layer, 0, -20.f, 20.f);
+ AddToCalibratedLayers(layer);
+}
+
+void DynamicQuantizationVisitor::VisitArgMinMaxLayer(const IConnectableLayer* layer,
+ const ArgMinMaxDescriptor& desc,
+ const char* name)
{
IgnoreUnused(name);
+ IgnoreUnused(desc);
SetRange(layer, 0, -20.f, 20.f);
AddToCalibratedLayers(layer);
}
@@ -108,6 +127,16 @@ void DynamicQuantizationVisitor::VisitBatchNormalizationLayer(const IConnectable
AddToCalibratedLayers(layer);
}
+void DynamicQuantizationVisitor::VisitNormalizationLayer(const IConnectableLayer* layer,
+ const NormalizationDescriptor& desc,
+ const char* name)
+{
+ IgnoreUnused(desc);
+ IgnoreUnused(name);
+ SetRange(layer, 0, -15.0f, 15.0f);
+ AddToCalibratedLayers(layer);
+}
+
void DynamicQuantizationVisitor::VisitConvolution2dLayer(const IConnectableLayer* layer,
const Convolution2dDescriptor& convolution2dDescriptor,
const ConstTensor& weights,
diff --git a/src/armnn/DynamicQuantizationVisitor.hpp b/src/armnn/DynamicQuantizationVisitor.hpp
index 43768fd077..358e47187e 100644
--- a/src/armnn/DynamicQuantizationVisitor.hpp
+++ b/src/armnn/DynamicQuantizationVisitor.hpp
@@ -16,14 +16,26 @@ namespace armnn
{
/// Visitor class to establish min/max ranges based on the type of the layer
-class DynamicQuantizationVisitor : public LayerVisitorBase<VisitorNoThrowPolicy>
+class DynamicQuantizationVisitor : public LayerVisitorBase<VisitorThrowingPolicy>
{
public:
DynamicQuantizationVisitor(RangeTracker& rangeTracker, Graph& graph);
~DynamicQuantizationVisitor() = default;
/// Functions to set the Range on a per-layer-type basis
- void VisitAdditionLayer(const IConnectableLayer* layer, const char* name = nullptr) override;
+ void VisitAbsLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) override;
+
+ void VisitAdditionLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) override;
+
+ void VisitArgMinMaxLayer(const IConnectableLayer* layer,
+ const ArgMinMaxDescriptor& desc,
+ const char* name = nullptr) override;
+
+ void VisitNormalizationLayer(const IConnectableLayer* layer,
+ const NormalizationDescriptor& desc,
+ const char* name = nullptr) override ;
void VisitBatchNormalizationLayer(const IConnectableLayer* layer,
const BatchNormalizationDescriptor& desc,
@@ -134,4 +146,4 @@ private:
void RemoveDebugLayers();
};
-} //namespace armnn \ No newline at end of file
+} //namespace armnn