}
}
-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);
}
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,
{
/// 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,
void RemoveDebugLayers();
};
-} //namespace armnn
\ No newline at end of file
+} //namespace armnn