From 5595da3741a515ce79abd996a1e8a2bc2da3188d Mon Sep 17 00:00:00 2001 From: Lev Proleev Date: Tue, 26 Nov 2019 15:10:09 +0000 Subject: [PATCH] Add TENSOR_QUANT8_ASYMM_SIGNED support for more ops Updated: CONCATENATION REDUCE_MIN REDUCE_MAX STRIDED_SLICE RESHAPE SQUEEZE MEAN Bug: 143934554 Bug: 143935314 Bug: 143934726 Bug: 143934771 Bug: 143934557 Bug: 143934306 Bug: 143935140 Test: quantization coupling tests in CTS and VTS Change-Id: Ie73d070fd6f0a27185c1f26561710635b6e03b26 Merged-In: Ie73d070fd6f0a27185c1f26561710635b6e03b26 (cherry picked from commit 91134e7fb9cd0b6830d5fdbd6f640f631f283c25) --- current.txt | 6 +- neuralnetworks/1.1/types.hal | 2 +- neuralnetworks/1.2/types.hal | 16 ++--- neuralnetworks/1.3/types.hal | 126 +++++++++++++---------------------- 4 files changed, 56 insertions(+), 94 deletions(-) diff --git a/current.txt b/current.txt index 7074f22ce7..9c554e8ed2 100644 --- a/current.txt +++ b/current.txt @@ -575,10 +575,10 @@ cfa81f229b69f9011c58f48264fcb552447430fe68610eac514e811e65bc306a android.hardwar b69a7615c508acf5c5201efd1bfa3262167874fc3594e2db5a3ff93addd8ac75 android.hardware.keymaster@4.0::IKeymasterDevice eb2fa0c883c2185d514be0b84c179b283753ef0c1b77b45b4f359bd23bba8b75 android.hardware.neuralnetworks@1.0::IPreparedModel f1109cbb10297b7429a11fab42afa912710b303c9bf20bd5cdb8bd57b9c84186 android.hardware.neuralnetworks@1.0::types -9d8ee57c490ffeaa28f702eaea8d198cb510e4bbfb99e6cb5f63e73341057c7c android.hardware.neuralnetworks@1.1::types +5f6d3097ba84cb63c430787123f4de1b31c11f90b531b98eae9a8623a5ae962a android.hardware.neuralnetworks@1.1::types fb382e986c10b8fbb797a8546e8f9ea6d1107bfe6f3fb7e57f6bbbf1f807a906 android.hardware.neuralnetworks@1.2::IDevice 40e71cd693de5b832325c5d8f081f2ff20a7ba2b89d401cee5b4b3eb0e241681 android.hardware.neuralnetworks@1.2::IPreparedModel -b40eb9dc491e3b203be2edca330ccd0417e9ca77b1b1b0f4c628a5fd269764a2 android.hardware.neuralnetworks@1.2::types +2d5483fbf59d5fd2de94665a6df05da5c3d09de67561d0db5e9f09e59e9aea46 android.hardware.neuralnetworks@1.2::types a785a57447a81e9c130eef6904c3a5c256076c6a04588c40620ebd6fa2660d77 android.hardware.radio@1.2::types 1a6e2bd289f22931c526b21916910f1d4c436b7acb9556e4243de4ce8e6cc2e4 android.hardware.soundtrigger@2.0::ISoundTriggerHwCallback fd65298e1e09e0e3c781ab18305920d757dbe55a3b459ce17814ec5cf6dfee99 android.hardware.wifi@1.0::IWifiP2pIface @@ -597,7 +597,7 @@ adb0efdf1462e9b2e742c0dcadd598666aac551f178be06e755bfcdf5797abd0 android.hardwar 9e59fffceed0dd72a9799e04505db5f777bbbea1af0695ba4107ef6d967c6fda android.hardware.neuralnetworks@1.3::IDevice 4a6c3b3556da951b4def21ba579a227c022980fe4465df6cdfbe20628fa75f5a android.hardware.neuralnetworks@1.3::IPreparedModel 94e803236398bed1febb11cc21051bc42ec003700139b099d6c479e02a7ca3c3 android.hardware.neuralnetworks@1.3::IPreparedModelCallback -8900b3a4ef6c0be540821fad0ad8b58b3654b70cfa38df662c640b88ea486d9f android.hardware.neuralnetworks@1.3::types +cf1d55e8c68300090747ab90b94c22e4c859b29c84ced68a317c595bb115eab2 android.hardware.neuralnetworks@1.3::types 3e01d4446cd69fd1c48f8572efd97487bc179564b32bd795800b97bbe10be37b android.hardware.wifi@1.4::IWifi a64467bae843569f0d465c5be7f0c7a5b987985b55a3ef4794dd5afc68538650 android.hardware.wifi.supplicant@1.3::ISupplicant 44445b8a03d7b9e68b2fbd954672c18a8fce9e32851b0692f4f4ab3407f86ecb android.hardware.wifi.supplicant@1.3::ISupplicantStaIface diff --git a/neuralnetworks/1.1/types.hal b/neuralnetworks/1.1/types.hal index 3d78fb654d..da7ba78734 100644 --- a/neuralnetworks/1.1/types.hal +++ b/neuralnetworks/1.1/types.hal @@ -125,7 +125,7 @@ enum OperationType : @1.0::OperationType { * Outputs: * * 0: A tensor of the same {@link OperandType} as input0. * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, - * the scale and zeroPoint must be same as input0. + * the scale and zeroPoint must be the same as input0. */ MEAN = 31, diff --git a/neuralnetworks/1.2/types.hal b/neuralnetworks/1.2/types.hal index 65ee81c7b0..b111d96e96 100644 --- a/neuralnetworks/1.2/types.hal +++ b/neuralnetworks/1.2/types.hal @@ -1954,7 +1954,7 @@ enum OperationType : int32_t { * Outputs: * * 0: A tensor of the same {@link OperandType} as input0. * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, - * the scale and zeroPoint must be same as input0. + * the scale and zeroPoint must be the same as input0. */ MEAN = @1.1::OperationType:MEAN, @@ -3141,8 +3141,8 @@ enum OperationType : int32_t { * {@link SymmPerChannelQuantParams}) must be set to 0. * * 2: A 1-D tensor, of shape [depth_out], specifying the bias. For input * tensor of type {@link OperandType::TENSOR_FLOAT32} or - * {@link OperandType::TENSOR_FLOAT16}, the bias must be of the same type. - * For filter tensor of {@link OperandType::TENSOR_QUANT8_ASYMM}, + * {@link OperandType::TENSOR_FLOAT16}, the bias must be of the same + * type. For filter tensor of {@link OperandType::TENSOR_QUANT8_ASYMM}, * the bias should be of {@link OperandType::TENSOR_INT32}, with zeroPoint * of 0 and bias_scale == input_scale * filter_scale. For filter tensor * of {@link OperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL}, the bias @@ -3181,8 +3181,7 @@ enum OperationType : int32_t { * * 2: A 1-D tensor, of shape [depth_out], specifying the bias. For input * tensor of type {@link OperandType::TENSOR_FLOAT32} or * {@link OperandType::TENSOR_FLOAT16}, the bias must be of the same - * {@link OperandType::TENSOR_FLOAT16}, the bias must be of the same type. - * For filter tensor of {@link OperandType::TENSOR_QUANT8_ASYMM}, + * type. For filter tensor of {@link OperandType::TENSOR_QUANT8_ASYMM}, * the bias should be of {@link OperandType::TENSOR_INT32}, with zeroPoint * of 0 and bias_scale == input_scale * filter_scale. For filter tensor * of {@link OperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL}, the bias @@ -3669,17 +3668,14 @@ enum OperationType : int32_t { /** * Quantizes the input tensor. * - * The formula for {@link OperandType::TENSOR_QUANT8_ASYMM} output tensor is: + * The formula is: * * output = max(0, min(255, round(input / scale) + zeroPoint) * - * Supported input tensor {@link OperandType}: + * Supported tensor {@link OperandType}: * * {@link OperandType::TENSOR_FLOAT16} * * {@link OperandType::TENSOR_FLOAT32} * - * Supported output tensor {@link OperandType}: - * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * Supported tensor rank: from 1 * * Inputs: diff --git a/neuralnetworks/1.3/types.hal b/neuralnetworks/1.3/types.hal index 5fbf4e61c2..84c48139ab 100644 --- a/neuralnetworks/1.3/types.hal +++ b/neuralnetworks/1.3/types.hal @@ -228,6 +228,7 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} * (full support since HAL version 1.2, see the input section) + * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: up to 4 * @@ -237,6 +238,9 @@ enum OperationType : int32_t { * Before HAL version 1.2, all input tensors of * {@link OperandType::TENSOR_QUANT8_ASYMM} * must have the same scale and zeroPoint as the output tensor. + * Input tensors of + * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} + * are allowed to have different scale and zeroPoint. * Since HAL version 1.2, zero-sized tensors are supported. * * n: An {@link OperandType::INT32} scalar, specifying the * concatenation axis. @@ -247,6 +251,8 @@ enum OperationType : int32_t { * Since HAL version 1.2, for a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint values can be different from * input tensors. Before HAL version 1.2 they have to be the same as for the input tensors. + * For a {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * the scale and zeroPoint values can be different from input tensors. */ CONCATENATION = @1.2::OperationType:CONCATENATION, @@ -563,7 +569,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} (since HAL version 1.2) * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: 4, with "NHWC" or "NCHW" data layout. * With the default data layout NHWC, the data is stored in the order of: @@ -584,8 +589,7 @@ enum OperationType : int32_t { * Outputs: * * 0: The output 4-D tensor, of shape [batch, height*block_size, * width*block_size, depth/(block_size*block_size)]. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. */ DEPTH_TO_SPACE = @1.2::OperationType:DEPTH_TO_SPACE, @@ -1469,6 +1473,7 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} (since HAL version 1.2) * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} + * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: up to 4. * @@ -1485,7 +1490,8 @@ enum OperationType : int32_t { * * Outputs: * * 0: The output tensor, of shape specified by the input shape. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and + * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, * the scale and zeroPoint must be the same as input0. */ RESHAPE = @1.2::OperationType:RESHAPE, @@ -1501,7 +1507,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} (since HAL version 1.2) * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} (since HAL version 1.2) - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: 4, with "NHWC" or "NCHW" data layout. * With the default data layout NHWC, the data is stored in the order of: @@ -1544,8 +1549,7 @@ enum OperationType : int32_t { * Outputs: * * 0: The output 4-D tensor, of shape * [batches, new_height, new_width, depth]. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. */ RESIZE_BILINEAR = @1.2::OperationType:RESIZE_BILINEAR, @@ -1664,7 +1668,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} (since HAL version 1.2) * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: 4, with "NHWC" or "NCHW" data layout. * With the default data layout NHWC, the data is stored in the order of: @@ -1685,8 +1688,7 @@ enum OperationType : int32_t { * Outputs: * * 0: The output 4-D tensor, of shape [batches, height/block_size, * width/block_size, depth_in*block_size*block_size]. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. */ SPACE_TO_DEPTH = @1.2::OperationType:SPACE_TO_DEPTH, @@ -1810,7 +1812,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} (since HAL version 1.2) * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: 4, with "NHWC" or "NCHW" data layout. * With the default data layout NHWC, the data is stored in the order of: @@ -1829,8 +1830,7 @@ enum OperationType : int32_t { * * Outputs: * * 0: A tensor of the same {@link OperandType} as input0. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. */ BATCH_TO_SPACE_ND = @1.2::OperationType:BATCH_TO_SPACE_ND, @@ -1890,6 +1890,7 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} (since HAL version 1.2) * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} + * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: up to 4 * @@ -1909,8 +1910,9 @@ enum OperationType : int32_t { * * Outputs: * * 0: A tensor of the same {@link OperandType} as input0. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, - * the scale and zeroPoint must be same as input0. + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and + * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * the scale and zeroPoint must be the same as input0. */ MEAN = @1.2::OperationType:MEAN, @@ -1923,7 +1925,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} (since HAL version 1.2) * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * (full support since HAL version 1.2, see the output section) * * Supported tensor rank: up to 4 @@ -1946,8 +1947,7 @@ enum OperationType : int32_t { * of the padding: * output0.dimension[i] = * padding[i, 0] + input0.dimension[i] + padding[i, 1] - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. * * NOTE: Before HAL version 1.2, the pad value for @@ -1971,7 +1971,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} (since HAL version 1.2) * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * (full support since HAL version 1.2, see the output section) * * Supported tensor rank: 4, with "NHWC" or "NCHW" data layout. @@ -1999,8 +1998,7 @@ enum OperationType : int32_t { * * Outputs: * * 0: A tensor of the same {@link OperandType} as input0. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. * * NOTE: Before HAL version 1.2, the pad value for @@ -2021,6 +2019,7 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} (since HAL version 1.2) * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} + * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: up to 4 * @@ -2036,7 +2035,8 @@ enum OperationType : int32_t { * * 0: A tensor of the same {@link OperandType} as input0. Contains the * same data as input, but has one or more dimensions of size 1 * removed. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and + * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, * the scale and zeroPoint must be the same as input0. */ SQUEEZE = @1.2::OperationType:SQUEEZE, @@ -2054,6 +2054,7 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} (since HAL version 1.2) * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} + * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: up to 4 * @@ -2083,7 +2084,8 @@ enum OperationType : int32_t { * Outputs: * * 0: A tensor of the same {@link OperandType} as input0 and rank (n - k), * where k is the number of bits set in shrink_axis_mask. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and + * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, * the scale and zeroPoint must be the same as input0. */ STRIDED_SLICE = @1.2::OperationType:STRIDED_SLICE, @@ -2149,7 +2151,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} (since HAL version 1.2) * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: up to 4 * @@ -2161,8 +2162,7 @@ enum OperationType : int32_t { * * Outputs: * * 0: A tensor of the same {@link OperandType} as input0. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. */ TRANSPOSE = @1.2::OperationType:TRANSPOSE, @@ -2708,7 +2708,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: up to 4 * @@ -2723,8 +2722,7 @@ enum OperationType : int32_t { * * Outputs: * * 0: A tensor of the same {@link OperandType} and same shape as input0. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. */ CHANNEL_SHUFFLE = @1.2::OperationType:CHANNEL_SHUFFLE, @@ -3083,23 +3081,12 @@ enum OperationType : int32_t { * * * {@link OperandType::TENSOR_INT32} for bias (with scale set to * * * input.scale * filter.scale). * - * * Quantized signed (since HAL version 1.3): - * * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} for input, filter, and output. - * * * {@link OperandType::TENSOR_INT32} for bias (with scale set to - * * * input.scale * filter.scale). - * * * Quantized with symmetric per channel quantization for the filter: * * * {@link OperandType::TENSOR_QUANT8_ASYMM} for input, and output. * * * {@link OperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL} for filter. * * * {@link OperandType::TENSOR_INT32} for bias (scale set to 0.0, * * * each value scaling is separate and equal to input.scale * filter.scales[channel]). * - * * Quantized signed with filter symmetric per channel quantization (since HAL version 1.3): - * * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} for input, and output. - * * * {@link OperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL} for filter. - * * * {@link OperandType::TENSOR_INT32} for bias (scale set to 0.0, - * * * each value scaling is separate and equal to input.scale * filter.scales[channel]). - * * Supported tensor rank: 4, with "NHWC" or "NCHW" data layout. * With the default data layout NHWC, the data is stored in the order of: * [batch, height, width, channels]. Alternatively, the data layout could @@ -3118,9 +3105,8 @@ enum OperationType : int32_t { * {@link SymmPerChannelQuantParams}) must be set to 0. * * 2: A 1-D tensor, of shape [depth_out], specifying the bias. For input * tensor of type {@link OperandType::TENSOR_FLOAT32} or - * {@link OperandType::TENSOR_FLOAT16}, the bias must be of the same type. - * For filter tensor of {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} + * {@link OperandType::TENSOR_FLOAT16}, the bias must be of the same + * type. For filter tensor of {@link OperandType::TENSOR_QUANT8_ASYMM}, * the bias should be of {@link OperandType::TENSOR_INT32}, with zeroPoint * of 0 and bias_scale == input_scale * filter_scale. For filter tensor * of {@link OperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL}, the bias @@ -3159,9 +3145,7 @@ enum OperationType : int32_t { * * 2: A 1-D tensor, of shape [depth_out], specifying the bias. For input * tensor of type {@link OperandType::TENSOR_FLOAT32} or * {@link OperandType::TENSOR_FLOAT16}, the bias must be of the same - * {@link OperandType::TENSOR_FLOAT16}, the bias must be of the same type. - * For filter tensor of {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} + * type. For filter tensor of {@link OperandType::TENSOR_QUANT8_ASYMM}, * the bias should be of {@link OperandType::TENSOR_INT32}, with zeroPoint * of 0 and bias_scale == input_scale * filter_scale. For filter tensor * of {@link OperandType::TENSOR_QUANT8_SYMM_PER_CHANNEL}, the bias @@ -3186,8 +3170,7 @@ enum OperationType : int32_t { * Outputs: * * 0: The output 4-D tensor, of shape * [batches, out_height, out_width, depth_out]. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint can be different from inputs' scale and zeroPoint. */ GROUPED_CONV_2D = @1.2::OperationType:GROUPED_CONV_2D, @@ -3543,7 +3526,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: up to 4 * @@ -3561,8 +3543,7 @@ enum OperationType : int32_t { * pad value must be of {@link OperandType::FLOAT16}. * For input tensor of {@link OperandType::TENSOR_FLOAT32}, the * pad value must be of {@link OperandType::FLOAT32}. - * For input tensor of {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED}, + * For input tensor of {@link OperandType::TENSOR_QUANT8_ASYMM}, * the pad value must be of {@link OperandType::INT32}. The * scale and zeroPoint are assumed to be the same as in input0. * @@ -3574,8 +3555,7 @@ enum OperationType : int32_t { * of the padding: * output0.dimension[i] = * padding[i, 0] + input0.dimension[i] + padding[i, 1] - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. */ PAD_V2 = @1.2::OperationType:PAD_V2, @@ -3652,23 +3632,14 @@ enum OperationType : int32_t { /** * Quantizes the input tensor. * - * The formula for {@link OperandType::TENSOR_QUANT8_ASYMM} output tensor is: + * The formula is: * * output = max(0, min(255, round(input / scale) + zeroPoint) * - * The formula for {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} output - * tensor is: - * - * output = max(-128, min(127, round(input / scale) + zeroPoint) - * - * Supported input tensor {@link OperandType}: + * Supported tensor {@link OperandType}: * * {@link OperandType::TENSOR_FLOAT16} * * {@link OperandType::TENSOR_FLOAT32} * - * Supported output tensor {@link OperandType}: - * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) - * * Supported tensor rank: from 1 * * Inputs: @@ -3676,8 +3647,7 @@ enum OperationType : int32_t { * * Outputs: * * 0: The output tensor of same shape as input0, but with - * {@link OperandType::TENSOR_QUANT8_ASYMM} or. - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED}. + * {@link OperandType::TENSOR_QUANT8_ASYMM}. */ QUANTIZE = @1.2::OperationType:QUANTIZE, @@ -3868,6 +3838,7 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} + * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: up to 4 * @@ -3880,7 +3851,8 @@ enum OperationType : int32_t { * * Outputs: * * 0: A tensor of the same {@link OperandType} as input0. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and + * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, * the scale and zeroPoint must be the same as input0. */ REDUCE_MAX = @1.2::OperationType:REDUCE_MAX, @@ -3897,6 +3869,7 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} + * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: up to 4 * @@ -3909,7 +3882,8 @@ enum OperationType : int32_t { * * Outputs: * * 0: A tensor of the same {@link OperandType} as input0. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and + * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, * the scale and zeroPoint must be the same as input0. */ REDUCE_MIN = @1.2::OperationType:REDUCE_MIN, @@ -4184,7 +4158,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_INT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: from 1 * @@ -4197,8 +4170,7 @@ enum OperationType : int32_t { * * Outputs: * * 0 ~ (num_splits - 1): Resulting subtensors. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. */ SPLIT = @1.2::OperationType:SPLIT, @@ -4234,7 +4206,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_INT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: from 1 * @@ -4245,8 +4216,7 @@ enum OperationType : int32_t { * * Outputs: * * 0: A tiled tensor of the same {@link OperandType} and rank as `input`. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. */ TILE = @1.2::OperationType:TILE, @@ -4262,7 +4232,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_INT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: from 1 * @@ -4274,8 +4243,7 @@ enum OperationType : int32_t { * Outputs: * * 0: An n-D tensor of the same type as the input, containing the k * largest elements along each last dimensional slice. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. * * 1: An n-D tensor of type {@link OperandType::TENSOR_INT32} * containing the indices of values within the last dimension of input. @@ -4571,7 +4539,6 @@ enum OperationType : int32_t { * * {@link OperandType::TENSOR_FLOAT16} * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} - * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) * * Supported tensor rank: 4, with "NHWC" or "NCHW" data layout. * With the default data layout NHWC, the data is stored in the order of: @@ -4611,8 +4578,7 @@ enum OperationType : int32_t { * Outputs: * * 0: The output 4-D tensor, of shape * [batches, new_height, new_width, depth]. - * For a {@link OperandType::TENSOR_QUANT8_ASYMM} and - * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} tensor, + * For a {@link OperandType::TENSOR_QUANT8_ASYMM} tensor, * the scale and zeroPoint must be the same as input0. */ RESIZE_NEAREST_NEIGHBOR = @1.2::OperationType:RESIZE_NEAREST_NEIGHBOR,