mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Add align_corners and half_pixel_centers parameters to resize ops
Fix: 135147454
Test: NNTest_static
Change-Id: I4115120c8b6261c5518d561c043cda913d47dd45
Merged-In: I4115120c8b6261c5518d561c043cda913d47dd45
(cherry picked from commit 3ab17d6b02)
This commit is contained in:
committed by
Slava Shklyaev
parent
5c40bcc475
commit
e3080db4e8
@@ -630,7 +630,7 @@ ddcf89cd8ee2df0d32aee55050826446fb64f7aafde0a7cd946c64f61b1a364c android.hardwar
|
||||
6e904be0ddca5ae1de8eba020e6c38ed935ea7d80cd08f47787f137a0ca58555 android.hardware.neuralnetworks@1.3::IFencedExecutionCallback
|
||||
2b0b10d2ea7a18a4048cd0eb83d35c19a817aeee95f65807fc31f4ef21381397 android.hardware.neuralnetworks@1.3::IPreparedModel
|
||||
eee3430cc86c97c7b407495863d8fb61da6f1a64b7721e77b9b4909b11b174e9 android.hardware.neuralnetworks@1.3::IPreparedModelCallback
|
||||
dd39887aa4fb60ce60ea9cc043edeadbbae6e922d09d3946311b0b410024ae14 android.hardware.neuralnetworks@1.3::types
|
||||
c9320b04ec302624985180a02d591bea5e435601fc411a6cabb58878e4e1ad68 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
|
||||
|
||||
@@ -1584,6 +1584,17 @@ enum OperationType : int32_t {
|
||||
* * 3: An optional {@link OperandType::BOOL} scalar, default to false.
|
||||
* Set to true to specify NCHW data layout for input0 and output0.
|
||||
* Available since HAL version 1.2.
|
||||
* * 4: Align corners. An optional {@link OperandType::BOOL}
|
||||
* scalar, default to false. If True, the centers of the 4 corner
|
||||
* pixels of the input and output tensors are aligned, preserving the
|
||||
* values at the corner pixels.
|
||||
* Available since HAL version 1.3.
|
||||
* * 5: Half pixel centers. An optional {@link OperandType::BOOL}
|
||||
* scalar, default to false. If True, the pixel centers are assumed to
|
||||
* be at (0.5, 0.5). This is the default behavior of image.resize in
|
||||
* TF 2.0. If this parameter is True, then align_corners parameter
|
||||
* must be False.
|
||||
* Available since HAL version 1.3.
|
||||
*
|
||||
* Inputs (resizing by scale, since HAL version 1.2):
|
||||
* * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying
|
||||
@@ -1602,6 +1613,17 @@ enum OperationType : int32_t {
|
||||
* {@link OperandType::FLOAT32} otherwise.
|
||||
* * 3: An optional {@link OperandType::BOOL} scalar, default to false.
|
||||
* Set to true to specify NCHW data layout for input0 and output0.
|
||||
* * 4: Align corners. An optional {@link OperandType::BOOL}
|
||||
* scalar, default to false. If True, the centers of the 4 corner
|
||||
* pixels of the input and output tensors are aligned, preserving the
|
||||
* values at the corner pixels.
|
||||
* Available since HAL version 1.3.
|
||||
* * 5: Half pixel centers. An optional {@link OperandType::BOOL}
|
||||
* scalar, default to false. If True, the pixel centers are assumed to
|
||||
* be at (0.5, 0.5). This is the default behavior of image.resize in
|
||||
* TF 2.0. If this parameter is True, then align_corners parameter
|
||||
* must be False.
|
||||
* Available since HAL version 1.3.
|
||||
*
|
||||
* Outputs:
|
||||
* * 0: The output 4-D tensor, of shape
|
||||
@@ -4870,6 +4892,17 @@ enum OperationType : int32_t {
|
||||
* height of the output tensor.
|
||||
* * 3: An {@link OperandType::BOOL} scalar, default to false.
|
||||
* Set to true to specify NCHW data layout for input0 and output0.
|
||||
* * 4: Align corners. An optional {@link OperandType::BOOL}
|
||||
* scalar, default to false. If True, the centers of the 4 corner
|
||||
* pixels of the input and output tensors are aligned, preserving the
|
||||
* values at the corner pixels.
|
||||
* Available since HAL version 1.3.
|
||||
* * 5: Half pixel centers. An optional {@link OperandType::BOOL}
|
||||
* scalar, default to false. If True, the pixel centers are assumed to
|
||||
* be at (0.5, 0.5). This is the default behavior of image.resize in
|
||||
* TF 2.0. If this parameter is True, then align_corners parameter
|
||||
* must be False.
|
||||
* Available since HAL version 1.3.
|
||||
*
|
||||
* Inputs (resizing by scale):
|
||||
* * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying
|
||||
@@ -4888,6 +4921,17 @@ enum OperationType : int32_t {
|
||||
* {@link OperandType::FLOAT32} otherwise.
|
||||
* * 3: An {@link OperandType::BOOL} scalar, default to false.
|
||||
* Set to true to specify NCHW data layout for input0 and output0.
|
||||
* * 4: Align corners. An optional {@link OperandType::BOOL}
|
||||
* scalar, default to false. If True, the centers of the 4 corner
|
||||
* pixels of the input and output tensors are aligned, preserving the
|
||||
* values at the corner pixels.
|
||||
* Available since HAL version 1.3.
|
||||
* * 5: Half pixel centers. An optional {@link OperandType::BOOL}
|
||||
* scalar, default to false. If True, the pixel centers are assumed to
|
||||
* be at (0.5, 0.5). This is the default behavior of image.resize in
|
||||
* TF 2.0. If this parameter is True, then align_corners parameter
|
||||
* must be False.
|
||||
* Available since HAL version 1.3.
|
||||
*
|
||||
* Outputs:
|
||||
* * 0: The output 4-D tensor, of shape
|
||||
|
||||
@@ -578,6 +578,8 @@ static bool removeOperationInputSkip(const Operation& op, size_t input) {
|
||||
// - CONV_2D, DEPTHWISE_CONV_2D, MAX_POOL_2D, AVERAGE_POOL_2D, L2_POOL_2D, RESIZE_BILINEAR,
|
||||
// SPACE_TO_DEPTH, SPACE_TO_DEPTH, SPACE_TO_BATCH_ND, BATCH_TO_SPACE_ND can have an optional
|
||||
// layout parameter.
|
||||
// RESIZE_BILINEAR and RESIZE_NEAREST_NEIGHBOR can have optional
|
||||
// align_corners and half_pixel_centers parameters.
|
||||
// - L2_NORMALIZATION, LOCAL_RESPONSE_NORMALIZATION, SOFTMAX can have an optional axis
|
||||
// parameter.
|
||||
switch (op.type) {
|
||||
@@ -600,7 +602,12 @@ static bool removeOperationInputSkip(const Operation& op, size_t input) {
|
||||
}
|
||||
} break;
|
||||
case OperationType::RESIZE_BILINEAR: {
|
||||
if (op.inputs.size() == 4 && input == 3) {
|
||||
if (op.inputs.size() >= 4 && input >= 3) {
|
||||
return true;
|
||||
}
|
||||
} break;
|
||||
case OperationType::RESIZE_NEAREST_NEIGHBOR: {
|
||||
if (op.inputs.size() >= 5 && input >= 3) {
|
||||
return true;
|
||||
}
|
||||
} break;
|
||||
@@ -686,7 +693,9 @@ static bool addOperationInputSkip(const Operation& op) {
|
||||
// parameter.
|
||||
if ((op.type == OperationType::L2_NORMALIZATION && op.inputs.size() == 1) ||
|
||||
(op.type == OperationType::LOCAL_RESPONSE_NORMALIZATION && op.inputs.size() == 5) ||
|
||||
(op.type == OperationType::SOFTMAX && op.inputs.size() == 2)) {
|
||||
(op.type == OperationType::SOFTMAX && op.inputs.size() == 2) ||
|
||||
(op.type == OperationType::RESIZE_BILINEAR && op.inputs.size() < 6) ||
|
||||
(op.type == OperationType::RESIZE_NEAREST_NEIGHBOR && op.inputs.size() < 6)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user