augmented_inputs.data(), static_cast<uint32_t>(node.outputs->size),
reinterpret_cast<uint32_t *>(node.outputs->data)));
continue;
+ case tflite::BuiltinOperator_TOPK_V2:
+ CHECK_NN(ANeuralNetworksModel_addOperationEx(
+ nn_model, ANEURALNETWORKS_TOPK_V2_EX, static_cast<uint32_t>(augmented_inputs.size()),
+ augmented_inputs.data(), static_cast<uint32_t>(node.outputs->size),
+ reinterpret_cast<uint32_t *>(node.outputs->data)));
+ continue;
case tflite::BuiltinOperator_CONCAT_EMBEDDINGS:
case tflite::BuiltinOperator_LSH_PROJECTION:
case tflite::BuiltinOperator_SVDF:
case tflite::BuiltinOperator_GATHER:
case tflite::BuiltinOperator_SPACE_TO_BATCH_ND:
case tflite::BuiltinOperator_BATCH_TO_SPACE_ND:
- case tflite::BuiltinOperator_TOPK_V2:
case tflite::BuiltinOperator_TRANSPOSE:
case tflite::BuiltinOperator_MEAN:
case tflite::BuiltinOperator_SPLIT:
const RunTimeOperandInfo &input = mOperands[ins[0]];
const int32_t &k = getScalarData<int32_t>(mOperands[ins[1]]);
- RunTimeOperandInfo &outputIndexes = mOperands[outs[0]];
- RunTimeOperandInfo &outputValues = mOperands[outs[1]];
- Shape outIndexesShape = outputIndexes.shape();
+ RunTimeOperandInfo &outputValues = mOperands[outs[0]];
+ RunTimeOperandInfo &outputIndexes = mOperands[outs[1]];
Shape outValuesShape = outputValues.shape();
+ Shape outIndexesShape = outputIndexes.shape();
success = topk_v2Prepare(input.shape(), k, &outIndexesShape, &outValuesShape) &&
setInfoAndAllocateIfNeeded(&outputIndexes, outIndexesShape) &&
case ANEURALNETWORKS_SUB_EX:
type = OperationType::SUB;
break;
+ case ANEURALNETWORKS_TOPK_V2_EX:
+ type = OperationType::TOPK_V2;
+ break;
default:
type = static_cast<OperationType>(_type);
break;