diff options
author | arovir01 <Aron.Virginas-Tar@arm.com> | 2018-09-05 17:03:25 +0100 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2018-09-18 12:40:40 +0100 |
commit | b0717b5241a15e3e4d37a1b51b6e5fd9a92a664f (patch) | |
tree | 84159d2eb142f12081c494483c07012e8ebee8cb /1.0/HalPolicy.hpp | |
parent | 93e48980920ddcc8c6390fa6cbfdfc9740786617 (diff) | |
download | android-nn-driver-b0717b5241a15e3e4d37a1b51b6e5fd9a92a664f.tar.gz |
IVGCVSW-1806: Refactor Android-NN-Driver ModelToINetworkConverter
* Moved conversion logic into new V1_0 and V1_1 HalPolicy classes
* Extracted common helper functions into ConversionUtils class
Change-Id: I1ab50edc266dd528c0cb22a5cd1aa65e103674d9
Diffstat (limited to '1.0/HalPolicy.hpp')
-rw-r--r-- | 1.0/HalPolicy.hpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/1.0/HalPolicy.hpp b/1.0/HalPolicy.hpp new file mode 100644 index 00000000..c596075b --- /dev/null +++ b/1.0/HalPolicy.hpp @@ -0,0 +1,75 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include "ConversionUtils.hpp" + +#include <HalInterfaces.h> + +namespace V1_0 = ::android::hardware::neuralnetworks::V1_0; + +namespace armnn_driver +{ +namespace hal_1_0 +{ + +class HalPolicy +{ +public: + using Model = V1_0::Model; + using Operation = V1_0::Operation; + using getSupportedOperations_cb = V1_0::IDevice::getSupportedOperations_cb; + + static bool ConvertOperation(const Operation& operation, const Model& model, ConversionData& data); + +private: + static bool ConvertAdd(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertAveragePool2d(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertConcatenation(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertConv2d(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertDepthwiseConv2d(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertFloor(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertFullyConnected(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertLocalResponseNormalization(const Operation& operation, + const Model& model, + ConversionData& data); + + static bool ConvertLogistic(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertLstm(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertL2Normalization(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertL2Pool2d(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertMaxPool2d(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertMul(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertReLu(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertReLu1(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertReLu6(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertSoftmax(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertTanH(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertReshape(const Operation& operation, const Model& model, ConversionData& data); + + static bool ConvertResizeBilinear(const Operation& operation, const Model& model, ConversionData& data); +}; + +} // namespace hal_1_0 +} // namespace armnn_driver |