ArmNN
 24.05
Dequantize.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2019, 2024 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "Dequantize.hpp"
7 
8 namespace armnn
9 {
10 
11 void Dequantize(Decoder<float>& inputDecoder,
12  Encoder<float>& outputEncoder,
13  const TensorInfo& inputInfo,
14  const TensorInfo& outputInfo)
15 {
17  inputInfo.GetNumElements() == outputInfo.GetNumElements(),
18  "Dequantize: The number of elements in the input and output tensors must be the same.");
19  for (unsigned int i = 0; i < inputInfo.GetNumElements(); i++)
20  {
21  // inputDecoder.Get() dequantizes the data element from whatever
22  // type is given by inputInfo to fp32 (If MakeDecoder supports that dequantization)
23  // outputEncoder.Set() transforms the data element to whatever type is
24  // given by outputInfo (if MakeEncoder supports that transformation)
25  outputEncoder.Set(inputDecoder.Get());
26  ++outputEncoder;
27  ++inputDecoder;
28  }
29 }
30 
31 } // armnn namespace
armnn::Decoder< float >
armnn::TensorInfo::GetNumElements
unsigned int GetNumElements() const
Definition: Tensor.hpp:198
armnn::Encoder::Set
virtual void Set(IType right)=0
armnn::TensorInfo
Definition: Tensor.hpp:152
armnn::Encoder< float >
armnn::Dequantize
float Dequantize(QuantizedType value, float scale, int32_t offset)
Dequantize an 8-bit data type into a floating point data type.
Definition: TypesUtils.cpp:48
armnn::Decoder::Get
virtual IType Get() const =0
Dequantize.hpp
armnn
Copyright (c) 2021 ARM Limited and Contributors.
Definition: 01_00_quick_start.dox:6
ARMNN_THROW_INVALIDARG_MSG_IF_FALSE
#define ARMNN_THROW_INVALIDARG_MSG_IF_FALSE(_cond, _str)
Definition: Exceptions.hpp:210