diff options
Diffstat (limited to 'include/NeuralNetworksEx.h')
-rw-r--r-- | include/NeuralNetworksEx.h | 670 |
1 files changed, 0 insertions, 670 deletions
diff --git a/include/NeuralNetworksEx.h b/include/NeuralNetworksEx.h deleted file mode 100644 index 727ca9484..000000000 --- a/include/NeuralNetworksEx.h +++ /dev/null @@ -1,670 +0,0 @@ -/* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @file NeuralNetworksEx.h - * @brief This file contains ANeuralNetworksModel_addOperationEx function definition - * @ingroup COM_AI_RUNTIME - */ -#ifndef NN_RUNTIME_NEURAL_NETWORKS_EX_H -#define NN_RUNTIME_NEURAL_NETWORKS_EX_H - -#include <sys/cdefs.h> - -__BEGIN_DECLS - -/** - * @brief Extended operation types - */ -typedef enum { - /** extends operation. */ - - /** - * Casts a tensor/tensor-values to a new type - * - * The output value is calucated as: - * - * output = new_type(input) - * - * Ex: - * X = {1.8,2.2}, dtype of X = float32 - * Y = Cast(X), dtype of Y = int32 - * then Y = {1,2} - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D tensor, specifying the first input. - * - * Outputs: - * * 0: The output tensor, of the same {@link OperandCode} and shape as input0. - */ - ANEURALNETWORKS_CAST_EX = 50000, - - /** - * Gathers values along an axis. - * - * Produces an output tensor with shape - * input0.dimension[:axis] + indices.dimension + input0.dimension[axis + 1:] - * where: - * # Vector indices (output is rank(input0)). - * output[a_0, ..., a_n, i, b_0, ..., b_n] = - * input0[a_0, ..., a_n, indices[i], b_0, ..., b_n] - * - * # Higher rank indices (output is rank(input0) + rank(indices) - 1). - * output[a_0, ..., a_n, i, ..., j, b_0, ... b_n] = - * input0[a_0, ..., a_n, indices[i, ..., j], b_0, ..., b_n] - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: from 1 - * - * Inputs: - * * 0: An n-D tensor from which to gather values. - * * 1: A k-D tensor {@link ANEURALNETWORKS_TENSOR_INT32} of indices. - * The values must be in the bounds of the corresponding dimensions - * of input0. - * * 2: An {@link ANEURALNETWORKS_INT32} scalar specifying the axis. - * Negative index is used to specify axis from the end - * (e.g. -1 for the last axis). Must be in the range [-n, n). - * - * Outputs: - * * 0: An (n + k - 1)-D tensor with the same {@link OperandCode} as input0. - */ - ANEURALNETWORKS_GATHER_EX = 50001, /**< Gather slices according to indexes and axis */ - - /** - * Finds values and indices of the k largest entries for the last dimension. - * - * Resulting values in each dimensions are sorted in descending order. If - * two values are equal, the one with larger index appears first. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: from 1 - * - * Inputs: - * * 0: input, an n-D tensor specifying the input. - * * 1: k, an {@link ANEURALNETWORKS_INT32} scalar, specifying the number of - * top elements to look for along the last dimension. - * - * Outputs: - * * 0: An n-D tensor of the same type as the input, containing the k - * largest elements along each last dimensional slice. - * * 1: An n-D tensor of type {@link ANEURALNETWORKS_TENSOR_INT32} - * containing the indices of values within the last dimension of input. - */ - ANEURALNETWORKS_TOPK_V2_EX = 50002, - - /** - * Computes the maximum of elements across dimensions of a tensor. - * - * Reduces the input tensor along the given dimensions to reduce. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: A tensor, specifying the input. - * * 1: A 1-D Tensor of {@link ANEURALNETWORKS_TENSOR_INT32}. The dimensions - * to reduce. - * - * Outputs: - * * 0: A tensor of the same {@link OperandCode} as input0. - */ - ANEURALNETWORKS_TENSORFLOW_MAX_EX = 50003, - - /** - * Splits a tensor along a given axis into num_splits subtensors. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: from 1 - * - * Inputs: - * * 0: An n-D tensor to split. - * * 1: An {@link ANEURALNETWORKS_INT32} scalar specifying the axis along - * which to split. - * * 2: An {@link ANEURALNETWORKS_INT32} scalar indicating the number of - * splits along given axis. Must evenly divide axis size. - * - * Outputs: - * * 0 ~ (num_splits - 1): Resulting subtensors. - */ - ANEURALNETWORKS_SPLIT_EX = 50004, /**< Splits a tensor into sub tensors */ - - /** - * Computes element-wise reciprocal of square root of the input tensor. - * - * The output is calculated using this formula: - * - * output = 1/sqrt(input) - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D tensor, specifying the first input. - * - * Outputs: - * * 0: The output tensor, of the same {@link OperandCode} and shape as input0. - */ - ANEURALNETWORKS_RSQRT_EX = 50005, - - /** - * Computes element-wise squared difference on the input tensors. - * - * Takes two input tensors of identical {@link OperandCode} and compatible dimensions. - * The output is the result of squaring of difference given by subtracting the second input tensor - * from the first one. - * - * Two dimensions are compatible when: - * 1. they are equal, or - * 2. one of them is 1 - * - * The size of the output is the maximum size along each dimension of the - * input operands. It starts with the trailing dimensions, and works its way - * forward. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D tensor, specifying the first input. - * * 1: A tensor of the same {@link OperandCode}, and compatible dimensions - * as input0. - * - * Outputs: - * * 0: The output tensor, of the same {@link OperandCode} as input0. - */ - ANEURALNETWORKS_SQUARED_DIFFERENCE_EX = 50006, - - /** - * Computes numerical negative value element-wise on the input tensor. - * - * Given an input tensor of {@link OperandCode}, - * The output is the numerical negative value element-wise on the input tensor. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D tensor, specifying the input. - * - * Outputs: - * * 0: The output tensor, of the same {@link OperandCode} and shape as input0. - */ - ANEURALNETWORKS_NEG_EX = 50007, - - /** - * Computes exponential value element-wise on the input tensor. - * - * Given an input tensor of {@link OperandCode}, - * The output is the exponential value element-wise on the input tensor. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D tensor, specifying the input. - * - * Outputs: - * * 0: The output tensor, of the same {@link OperandCode} and shape as input0. - */ - ANEURALNETWORKS_EXP_EX = 50008, - - /** - * Computes the sum of elements across dimensions of a tensor. - * - * Reduces the input tensor along the given dimensions to reduce. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: A tensor, specifying the input. - * * 1: A 1-D Tensor of {@link ANEURALNETWORKS_TENSOR_INT32}. The dimensions - * to reduce. - * - * Outputs: - * * 0: A tensor of the same {@link OperandCode} as input0. - */ - ANEURALNETWORKS_REDUCE_SUM_EX = 50009, - - /** - * A transposed convolutional layer carries out a regular convolution - * but reverts its spatial transformation. - * Transpose convolution basically performs convolution with transposed weights. - * - * Supported tensor {@link OperandCode}: - * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * {@link ANEURALNETWORKS_TENSOR_INT32} - * - * Supported tensor rank: only 4 - * - * Inputs: - * 0: An {@link ANEURALNETWORKS_INT32} 1-D four element tensor, specifying the output shape. - * 1: A 4-D tensor, of shape [depth_out, filter_height, filter_width, depth_in], - * specifying the filter. - * 2: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input. - * 3: An {@link ANEURALNETWORKS_INT32} scalar, specifying the padding type. - * 4: An {@link ANEURALNETWORKS_INT32} scalar, specifying the stride when - * walking through input in the ‘width’ dimension. - * 5: An {@link ANEURALNETWORKS_INT32} scalar, specifying the stride when - * walking through input in the height dimension. - * - * Outputs: - * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth_out]. - */ - ANEURALNETWORKS_TRANSPOSE_CONV_EX = 50010, - - /** - * Computes element-wise truth value by comparing the two input tensors for equality. - * - * Takes two input tensors of identical {@link OperandCode} and compatible dimensions. - * The output is the result of comparison of two input tensors. - * - * Two dimensions are compatible when: - * 1. they are equal, or - * 2. one of them is 1 - * - * The size of the output is the maximum size along each dimension of the - * input operands. It starts with the trailing dimensions, and works its way - * forward. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D tensor, specifying the first input. - * * 1: A tensor of the same {@link OperandCode}, and compatible dimensions - * as input0. - * - * Outputs: - * * 0: A boolean tensor indicating the truth value of (x == y) - * Stored as {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} with offset 0 - * and scale 1.0f. - * A non-zero byte represents True, a hit. A zero indicates otherwise. - */ - ANEURALNETWORKS_EQUAL_EX = 50011, - - /** - * Computes element-wise absolute value of the input tensor. - * - * The output is calculated using this formula: - * - * output = fabs(input) - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D tensor, specifying the first input. - * - * Outputs: - * * 0: The output tensor, of the same {@link OperandCode} and shape as input0. - */ - ANEURALNETWORKS_ABS_EX = 50012, - /** - * Packs a list of rank-R tensors into one rank- (R+1) tensor along the axis dimension. - * - * The input tensors must have identical {@link OperandCode} and the same - * dimensions. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: up to 3 - * - * Inputs: - * * 0 ~ n-1: The list of n input tensors, of shape - * [D0, D1, ..., Daxis(i), ..., Dm]. For inputs of - * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}, all input tensors - * must have the same scale and zeroPoint. - * * n: An {@link ANEURALNETWORKS_INT32} scalar, specifying the - * number of input tensors. - * * n+1: An {@link ANEURALNETWORKS_INT32} scalar, specifying the - * pack axis. - * - * Outputs: - * * 0: The output, a tensor of the same {@link OperandCode} as the input - * tensors. The output shape is [D0, D1, ..., N at Daxis(i), ..., Dm+1] - * where N is the number of tensors to be packed. - */ - ANEURALNETWORKS_PACK_EX = 50013, - /** - * Unpacks a given rank-R tensors into num_splits rank- (R-1) tensors along the axis dimention. - * num_splits has to respect integral divisibility of dimention value along axis dimention - * of the input. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: The input shape is [D0, D1, ..., N at Daxis(i), ..., Dm+1]. - * * 1: An {@link ANEURALNETWORKS_INT32} scalar, specifying the - * number of splits along unpack axis. - * * 2: An {@link ANEURALNETWORKS_INT32} scalar, specifying the - * unpack axis. - * - * Outputs: - * * 0 ~ n-1: The list of n output tensors, of shape - * [D0, D1, ..., Daxis(i), ..., Dm]. The output tensors are of the same - * {@link OperandCode} as the input tensor 0. - */ - ANEURALNETWORKS_UNPACK_EX = 50014, - - /** - * Find index with the largest value across axes of a input tensor. - * - * Reduces the input tensor along the given dimensions to reduce. The reduced - * dimensions are retained with length 1. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Inputs: - * * 0: An n-D tensor, specifying the input. - * * 1: A 1-D Tensor of {@link ANEURALNETWORKS_TENSOR_INT32}. The dimensions - * to reduce. Must be in the range [-rank(input_tensor), rank(input_tensor)). - * - * Outputs: - * * 0: A output tensor of {@link ANEURALNETWORKS_TENSOR_INT32}. - * The rank of output tensor should be same rank of input0. - */ - ANEURALNETWORKS_ARGMAX_EX = 50015, - - /** - * Element-wise square root computation of the input tensor. - * - * The output is calculated using this formula: - * - * output = sqrt(input) - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D tensor, specifying the first input. - * - * Outputs: - * * 0: The output tensor, of the same {@link OperandCode} and shape as input0. - */ - ANEURALNETWORKS_SQRT_EX = 50016, - - /** - * Computes element-wise truth value by comparing the input tensors for non-equality. - * - * Takes two input tensors of identical {@link OperandCode} and compatible dimensions. - * The output is the result of comparison of two input tensors. - * - * Two dimensions are compatible when: - * 1. they are equal, or - * 2. one of them is 1 - * - * The size of the output is the maximum size along each dimension of the - * input operands. It starts with the trailing dimensions, and works its way - * forward. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D tensor, specifying the first input. - * * 1: A tensor of the same {@link OperandCode}, and compatible dimensions - * as input0. - * - * Outputs: - * * 0: A boolean tensor indicating the truth value of non-equality of input tensors - * Stored as {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} with offset 0 - * and scale 1.0f. - * A non-zero byte represents True, a hit. A zero indicates otherwise. - */ - ANEURALNETWORKS_NOT_EQUAL_EX = 50017, - - /** - * Computes element-wise truth value of the input tensor negation. - * - * Takes one input tensor. - * The output is the negation, which is logical complement, of the input tensor. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D boolean tensor, specifying the input. - * Stored as {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} with offset 0 - * and scale 1.0f. - * A non-zero byte represents True. A zero indicates otherwise. - * - * Outputs: - * * 0: A boolean tensor of the same size as input indicating the truth value of (NOT x) - * Stored as {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} with offset 0 - * and scale 1.0f. - * A non-zero byte represents True. A zero indicates otherwise. - */ - ANEURALNETWORKS_LOGICAL_NOT_EX = 50018, - - /** - * Computes element-wise truth value of two input tensors for LOGICAL AND. - * - * Takes two input tensors of identical {@link OperandCode} and compatible dimensions. - * The output is the result of comparison of two input tensors. - * - * Two dimensions are compatible when: - * 1. they are equal, or - * 2. one of them is 1 - * - * The size of the output is the maximum size along each dimension of the - * input operands. It starts with the trailing dimensions, and works its way - * forward. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D boolean tensor, specifying the first input. - * Stored as {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} with offset 0 - * and scale 1.0f. - * A non-zero byte represents True, a hit. A zero indicates otherwise. - * * 1: A tensor of the same {@link OperandCode}, and compatible dimensions - * as input0. - * - * Outputs: - * * 0: A boolean tensor indicating the truth value of two input tensors for LOGICAL AND. - * Stored as {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} with offset 0 - * and scale 1.0f. - * A non-zero byte represents True, a hit. A zero indicates otherwise. - */ - ANEURALNETWORKS_LOGICAL_AND_EX = 50019, - - /** - * Computes element-wise truth value of two input tensors for LOGICAL OR. - * - * Takes two input tensors of identical {@link OperandCode} and compatible dimensions. - * The output is the result of comparison of two input tensors. - * - * Two dimensions are compatible when: - * 1. they are equal, or - * 2. one of them is 1 - * - * The size of the output is the maximum size along each dimension of the - * input operands. It starts with the trailing dimensions, and works its way - * forward. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: An n-D boolean tensor, specifying the first input. - * Stored as {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} with offset 0 - * and scale 1.0f. - * A non-zero byte represents True, a hit. A zero indicates otherwise. - * * 1: A tensor of the same {@link OperandCode}, and compatible dimensions - * as input0. - * - * Outputs: - * * 0: A boolean tensor indicating the truth value of two input tensors for LOGICAL OR. - * Stored as {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} with offset 0 - * and scale 1.0f. - * A non-zero byte represents True, a hit. A zero indicates otherwise. - */ - ANEURALNETWORKS_LOGICAL_OR_EX = 50020, - - /** - * Computes the minimum of elements across dimensions of a tensor. - * - * Reduces the input tensor along the given dimensions to reduce. - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_INT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: A tensor, specifying the input. - * * 1: A 1-D Tensor of {@link ANEURALNETWORKS_TENSOR_INT32}. The dimensions - * to reduce. - * - * Outputs: - * * 0: A tensor of the same {@link OperandCode} as input0. - */ - ANEURALNETWORKS_REDUCE_MIN_EX = 500021, - - /** - * Parametric Rectified Linear Unit. - * - * It follows: f(x) = alpha * x for x < 0, f(x) = x for x >= 0, where alpha - * is a learned array with the same {@link OperandCode} and compatible - * dimensions as input x. - * - * Two dimensions are compatible when: - * 1. they are equal, or - * 2. one of them is 1 - * - * The size of the output is the maximum size along each dimension of the - * input operands. It starts with the trailing dimensions, and works its way - * forward. - * - * Example: - * input.dimension = {4, 1, 2} - * alpha.dimension = {5, 4, 3, 1} - * output.dimension = {5, 4, 3, 2} - * - * Supported tensor {@link OperandCode}: - * * {@link ANEURALNETWORKS_TENSOR_FLOAT32} - * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} - * - * Supported tensor rank: up to 4 - * - * Inputs: - * * 0: A tensor, specifying the input. - * * 1: A tensor of the same {@link OperandCode}, and compatible dimensions - * as input0, specifying the alpha. - * - * Outputs: - * * 0: A tensor of the same {@link OperandCode} as input0. - */ - ANEURALNETWORKS_PRELU_EX = 500022, -} OperationCodeEx; // extends OperationCode - -typedef OperationCodeEx ANeuralNetworksOperationTypeEx; - -/** - * @brief Add an extended operation to a model. - * - * @param[in] model The model to be modified. - * @param[in] type The type of extended operation. - * @param[in] inputCount The number of entries in the inputs array. - * @param[in] inputs An array of indexes identifying each operand. - * @param[in] outputCount The number of entries in the outputs array. - * @param[in] outputs An array of indexes identifying each operand. - * - * @note The operands specified by inputs and outputs must have been - * previously added by calls to {@link ANeuralNetworksModel_addOperand}.\n - * Attempting to modify a model once {@link ANeuralNetworksModel_finish} has been - * called will return an error.\n - * See {@link ANeuralNetworksModel} for information on multithreaded usage. - * - * @return ANEURALNETWORKS_NO_ERROR if successful. - */ -int ANeuralNetworksModel_addOperationEx(ANeuralNetworksModel *model, - ANeuralNetworksOperationTypeEx type, uint32_t inputCount, - const uint32_t *inputs, uint32_t outputCount, - const uint32_t *outputs); - -__END_DECLS - -#endif // NN_RUNTIME_NEURAL_NETWORKS_EX_H |