ArmNN
 23.02
Converter.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include "ConversionUtils.hpp"
9 
10 #include <nnapi/OperandTypes.h>
11 #include <nnapi/Result.h>
12 #include <nnapi/Types.h>
13 
14 #include <armnn/Types.hpp>
15 using namespace armnn;
16 
17 namespace armnn_driver
18 {
19 
20 class Converter
21 {
22 
23 public:
26  using OperandLifeTime = ::android::nn::Operand::LifeTime;
31  static bool ConvertOperation(const Operation& operation, const Model& model, ConversionData& data);
32 
33 private:
34  static bool ConvertAdd(const Operation& operation, const Model& model, ConversionData& data);
35 
36  static bool ConvertArgMinMax(const Operation& operation,
37  const Model& model,
38  ConversionData& data,
39  armnn::ArgMinMaxFunction argMinMaxFunction);
40 
41  static bool ConvertAveragePool2d(const Operation& operation, const Model& model, ConversionData& data);
42 
43  static bool ConvertBatchMatMul(const Operation& operation, const Model& model, ConversionData& data);
44 
45  static bool ConvertBatchToSpaceNd(const Operation& operation, const Model& model, ConversionData& data);
46 
47  static bool ConvertCast(const Operation& operation, const Model& model, ConversionData& data);
48 
49  static bool ConvertComparison(const Operation& operation,
50  const Model& model,
51  ConversionData& data,
52  armnn::ComparisonOperation comparisonOperation);
53 
54  static bool ConvertConcatenation(const Operation& operation, const Model& model, ConversionData& data);
55 
56  static bool ConvertConv2d(const Operation& operation, const Model& model, ConversionData& data);
57 
58  static bool ConvertDepthToSpace(const Operation& operation, const Model& model, ConversionData& data);
59 
60  static bool ConvertDepthwiseConv2d(const Operation& operation, const Model& model, ConversionData& data);
61 
62  static bool ConvertDequantize(const Operation& operation, const Model& model, ConversionData& data);
63 
64  static bool ConvertDiv(const Operation& operation, const Model& model, ConversionData& data);
65 
66  static bool ConvertElementwiseUnary(const Operation& operation,
67  const Model& model,
68  ConversionData& data,
69  armnn::UnaryOperation unaryOperation);
70 
71  static bool ConvertElu(const Operation& operation, const Model& model, ConversionData& data);
72 
73  static bool ConvertExpandDims(const Operation& operation, const Model& model, ConversionData& data);
74 
75  static bool ConvertFill(const Operation& operation, const Model& model, ConversionData& data);
76 
77  static bool ConvertFloor(const Operation& operation, const Model& model, ConversionData& data);
78 
79  static bool ConvertFullyConnected(const Operation& operation, const Model& model, ConversionData& data);
80 
81  static bool ConvertGather(const Operation& operation, const Model& model, ConversionData& data);
82 
83  static bool ConvertGroupedConv2d(const Operation& operation, const Model& model, ConversionData& data);
84 
85  static bool ConvertHardSwish(const Operation& operation, const Model& model, ConversionData& data);
86 
87  static bool ConvertInstanceNormalization(const Operation& operation, const Model& model, ConversionData& data);
88 
89  static bool ConvertL2Normalization(const Operation& operation, const Model& model, ConversionData& data);
90 
91  static bool ConvertL2Pool2d(const Operation& operation, const Model& model, ConversionData& data);
92 
93  static bool ConvertLocalResponseNormalization(const Operation& operation,
94  const Model& model,
95  ConversionData& data);
96 
97  static bool ConvertLogicalBinary(const Operation& operation,
98  const Model& model,
99  ConversionData& data,
100  armnn::LogicalBinaryOperation logicalOperation);
101 
102  static bool ConvertLogistic(const Operation& operation, const Model& model, ConversionData& data);
103 
104  static bool ConvertLogSoftmax(const Operation& operation, const Model& model, ConversionData& data);
105 
106  static bool ConvertLstm(const Operation& operation, const Model& model, ConversionData& data);
107 
108  static bool ConvertMaxPool2d(const Operation& operation, const Model& model, ConversionData& data);
109 
110  static bool ConvertMaximum(const Operation& operation, const Model& model, ConversionData& data);
111 
112  static bool ConvertMean(const Operation& operation, const Model& model, ConversionData& data);
113 
114  static bool ConvertMinimum(const Operation& operation, const Model& model, ConversionData& data);
115 
116  static bool ConvertMul(const Operation& operation, const Model& model, ConversionData& data);
117 
118  static bool ConvertPad(const Operation& operation, const Model& model, ConversionData& data);
119 
120  static bool ConvertPadV2(const Operation& operation, const Model& model, ConversionData& data);
121 
122  static bool ConvertPrelu(const Operation& operation, const Model& model, ConversionData& data);
123 
124  static bool ConvertQuantize(const Operation& operation, const Model& model, ConversionData& data);
125 
126  static bool ConvertQuantizedLstm(const Operation& operation, const Model& model, ConversionData& data);
127 
128  static bool ConvertQuantized16BitLstm(const Operation& operation, const Model& model, ConversionData& data);
129 
130  static bool ConvertRank(const Operation& operation, const Model& model, ConversionData& data);
131 
132  static bool ConvertReLu(const Operation& operation, const Model& model, ConversionData& data);
133 
134  static bool ConvertReLu1(const Operation& operation, const Model& model, ConversionData& data);
135 
136  static bool ConvertReLu6(const Operation& operation, const Model& model, ConversionData& data);
137 
138  static bool ConvertReshape(const Operation& operation, const Model& model, ConversionData& data);
139 
140  static bool ConvertResize(const Operation& operation,
141  const Model& model,
142  ConversionData& data,
143  armnn::ResizeMethod resizeMethod);
144 
145  static bool ConvertSoftmax(const Operation& operation, const Model& model, ConversionData& data);
146 
147  static bool ConvertSpaceToBatchNd(const Operation& operation, const Model& model, ConversionData& data);
148 
149  static bool ConvertSpaceToDepth(const Operation& operation, const Model& model, ConversionData& data);
150 
151  static bool ConvertSqrt(const Operation& operation, const Model& model, ConversionData& data);
152 
153  static bool ConvertSqueeze(const Operation& operation, const Model& model, ConversionData& data);
154 
155  static bool ConvertStridedSlice(const Operation& operation, const Model& model, ConversionData& data);
156 
157  static bool ConvertSub(const Operation& operation, const Model& model, ConversionData& data);
158 
159  static bool ConvertTanH(const Operation& operation, const Model& model, ConversionData& data);
160 
161  static bool ConvertTranspose(const Operation& operation, const Model& model, ConversionData& data);
162 
163  static bool ConvertTransposeConv2d(const Operation& operation, const Model& model, ConversionData& data);
164 };
165 
166 } // namespace armnn_driver
armnn_driver::Operation
::android::nn::Operation Operation
Definition: ConversionUtils.hpp:47
armnn_driver::Converter::Operation
::android::nn::Operation Operation
Definition: Converter.hpp:28
armnn_driver::OperationType
::android::nn::OperationType OperationType
Definition: ConversionUtils.hpp:48
armnn_driver
Helper classes.
Definition: ArmnnDevice.cpp:37
armnn_driver::Converter::ErrorStatus
::android::nn::ErrorStatus ErrorStatus
Definition: Converter.hpp:30
armnn_driver::Converter
Definition: Converter.hpp:20
armnn_driver::Model
::android::nn::Model Model
Helper classes.
Definition: ConversionUtils.hpp:43
armnn_driver::Converter::OperandType
::android::nn::OperandType OperandType
Definition: Converter.hpp:27
armnn::ArgMinMaxFunction
ArgMinMaxFunction
Definition: Types.hpp:102
armnn_driver::ConversionData
Definition: ConversionUtils.hpp:51
armnn
Copyright (c) 2021 ARM Limited and Contributors.
Definition: 01_00_quick_start.dox:6
armnn_driver::Operand
::android::nn::Operand Operand
Definition: ConversionUtils.hpp:44
armnn::LogicalBinaryOperation
LogicalBinaryOperation
Definition: Types.hpp:118
armnn::ResizeMethod
ResizeMethod
Definition: Types.hpp:152
armnn_driver::Converter::Model
::android::nn::Model Model
Definition: Converter.hpp:24
armnn_driver::Converter::OperandLifeTime
::android::nn::Operand::LifeTime OperandLifeTime
Definition: Converter.hpp:26
armnn::ComparisonOperation
ComparisonOperation
Definition: Types.hpp:108
armnn::UnaryOperation
UnaryOperation
Definition: Types.hpp:124
ConversionUtils.hpp
armnn_driver::ErrorStatus
::android::nn::ErrorStatus ErrorStatus
Definition: ConversionUtils.hpp:49
armnn_driver::Converter::Operand
::android::nn::Operand Operand
Definition: Converter.hpp:25
armnn_driver::Converter::OperationType
::android::nn::OperationType OperationType
Definition: Converter.hpp:29
Types.hpp
armnn_driver::OperandType
::android::nn::OperandType OperandType
Definition: ConversionUtils.hpp:46