MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / NeedInt8Conversion

Function NeedInt8Conversion

tensorflow/lite/delegates/nnapi/nnapi_delegate.cc:137–206  ·  view source on GitHub ↗

Check if the operation requires explict conversion from int8 to uint8 values.

Source from the content-addressed store, hash-verified

135
136// Check if the operation requires explict conversion from int8 to uint8 values.
137bool NeedInt8Conversion(const TfLiteContext* context, int builtin_code,
138 const TfLiteNode* node) {
139 const int input_id = node->inputs->data[0];
140 const TfLiteType input_type = context->tensors[input_id].type;
141 switch (builtin_code) {
142 case kTfLiteBuiltinConv2d:
143 case kTfLiteBuiltinDepthwiseConv2d:
144 case kTfLiteBuiltinFullyConnected: {
145 if (input_type == kTfLiteInt8) {
146 const int weights_id = node->inputs->data[1];
147 const auto& weights_tensor = context->tensors[weights_id];
148 if ((weights_tensor.type == kTfLiteInt8 ||
149 weights_tensor.type == kTfLiteUInt8) &&
150 weights_tensor.quantization.type == kTfLiteAffineQuantization) {
151 return true;
152 }
153 }
154 return false;
155 }
156 case kTfLiteBuiltinSelect: {
157 const auto value_type = context->tensors[node->inputs->data[1]].type;
158 return value_type == kTfLiteInt8;
159 }
160 case kTfLiteBuiltinAdd:
161 case kTfLiteBuiltinArgMax:
162 case kTfLiteBuiltinArgMin:
163 case kTfLiteBuiltinAveragePool2d:
164 case kTfLiteBuiltinBatchToSpaceNd:
165 case kTfLiteBuiltinConcatenation:
166 case kTfLiteBuiltinEqual:
167 case kTfLiteBuiltinExpandDims:
168 case kTfLiteBuiltinGreater:
169 case kTfLiteBuiltinGreaterEqual:
170 case kTfLiteBuiltinL2Normalization:
171 case kTfLiteBuiltinLess:
172 case kTfLiteBuiltinLessEqual:
173 case kTfLiteBuiltinLogistic:
174 case kTfLiteBuiltinMaximum:
175 case kTfLiteBuiltinMaxPool2d:
176 case kTfLiteBuiltinMean:
177 case kTfLiteBuiltinMinimum:
178 case kTfLiteBuiltinMul:
179 case kTfLiteBuiltinNotEqual:
180 case kTfLiteBuiltinPad:
181 case kTfLiteBuiltinPadv2:
182 case kTfLiteBuiltinReduceMax:
183 case kTfLiteBuiltinReduceMin:
184 case kTfLiteBuiltinRelu:
185 case kTfLiteBuiltinReluN1To1:
186 case kTfLiteBuiltinRelu6:
187 case kTfLiteBuiltinResizeBilinear:
188 case kTfLiteBuiltinResizeNearestNeighbor:
189 case kTfLiteBuiltinReshape:
190 case kTfLiteBuiltinSlice:
191 case kTfLiteBuiltinSoftmax:
192 case kTfLiteBuiltinSpaceToBatchNd:
193 case kTfLiteBuiltinSpaceToDepth:
194 case kTfLiteBuiltinDepthToSpace:

Callers 1

AddOpsAndTensorsMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected