1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2021 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker # pragma once 6*89c4ff92SAndroid Build Coastguard Worker 7*89c4ff92SAndroid Build Coastguard Worker #include <string> 8*89c4ff92SAndroid Build Coastguard Worker #include <map> 9*89c4ff92SAndroid Build Coastguard Worker #include "ArmnnNetworkExecutor.hpp" 10*89c4ff92SAndroid Build Coastguard Worker 11*89c4ff92SAndroid Build Coastguard Worker namespace kws 12*89c4ff92SAndroid Build Coastguard Worker { 13*89c4ff92SAndroid Build Coastguard Worker 14*89c4ff92SAndroid Build Coastguard Worker /** 15*89c4ff92SAndroid Build Coastguard Worker * @brief Decodes quantised last layer of model output 16*89c4ff92SAndroid Build Coastguard Worker * 17*89c4ff92SAndroid Build Coastguard Worker */ 18*89c4ff92SAndroid Build Coastguard Worker class Decoder 19*89c4ff92SAndroid Build Coastguard Worker { 20*89c4ff92SAndroid Build Coastguard Worker private: 21*89c4ff92SAndroid Build Coastguard Worker int quantisationOffset; 22*89c4ff92SAndroid Build Coastguard Worker float quantisationScale; 23*89c4ff92SAndroid Build Coastguard Worker 24*89c4ff92SAndroid Build Coastguard Worker public: 25*89c4ff92SAndroid Build Coastguard Worker Decoder(int quantisationOffset,float quantisationScale)26*89c4ff92SAndroid Build Coastguard Worker Decoder(int quantisationOffset, float quantisationScale) : quantisationOffset(quantisationOffset), 27*89c4ff92SAndroid Build Coastguard Worker quantisationScale(quantisationScale) {} 28*89c4ff92SAndroid Build Coastguard Worker 29*89c4ff92SAndroid Build Coastguard Worker std::pair<int, float> decodeOutput(std::vector<int8_t>& modelOutput); 30*89c4ff92SAndroid Build Coastguard Worker 31*89c4ff92SAndroid Build Coastguard Worker }; 32*89c4ff92SAndroid Build Coastguard Worker } // namespace kws