17 #include <boost/assert.hpp> 22 template<
typename srcType>
23 void QuantizeConstant(
const srcType* src, uint8_t* dst,
size_t numElements,
float& scale,
int& offset)
28 float min = std::numeric_limits<srcType>::max();
29 float max = std::numeric_limits<srcType>::lowest();
30 for (
size_t i = 0; i < numElements; ++i)
32 min = std::min(min, src[i]);
33 max = std::max(max, src[i]);
38 scale = qParams.first;
39 offset = qParams.second;
41 for (
size_t i = 0; i < numElements; ++i)
43 dst[i] = armnn::Quantize<uint8_t>(src[i], scale, offset);
49 template <
typename LayerContainer>
53 for (
auto layer : layerContainer)
55 layer->Accept(visitor);
std::pair< float, int > OffsetScalePair
Copyright (c) 2020 ARM Limited.
void VisitLayers(const LayerContainer &layerContainer, ILayerVisitor &visitor)
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
void QuantizeConstant(const srcType *src, uint8_t *dst, size_t numElements, float &scale, int &offset)
virtual void StartVisit()
OffsetScalePair ComputeScheme(double min, double max) const override
ConstTensor CreateQuantizedConst(const ConstTensor &tensor, std::vector< uint8_t > &backing)
virtual void FinishVisit()