diff options
author | Adnan AlSinan <adnan.alsinan@arm.com> | 2023-02-14 14:24:09 +0000 |
---|---|---|
committer | Adnan AlSinan <adnan.alsinan@arm.com> | 2023-02-28 19:19:08 +0000 |
commit | 227db8db83cd85d8704a8edbd4e8c88af0dd1f84 (patch) | |
tree | 9247a7d4cfd9475f97d1cda6409af9f312d50989 /arm_compute/core/Types.h | |
parent | d538d161f6e55290bf1bb0b27cf26666379d0255 (diff) | |
download | ComputeLibrary-227db8db83cd85d8704a8edbd4e8c88af0dd1f84.tar.gz |
Add an option to use lowest for max-pooling
- Add a parameter in PoolingLayerInfo class to pick which value to use as min for max-pooling.
Resolves: [ONCPUML-1166]
Signed-off-by: Adnan AlSinan <adnan.alsinan@arm.com>
Change-Id: I34e1cccc15176bbf31523c61e99f3188ddca23e1
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/8989
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: SiCong Li <sicong.li@arm.com>
Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'arm_compute/core/Types.h')
-rw-r--r-- | arm_compute/core/Types.h | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/arm_compute/core/Types.h b/arm_compute/core/Types.h index 71ec926483..e8eed67c58 100644 --- a/arm_compute/core/Types.h +++ b/arm_compute/core/Types.h @@ -1209,7 +1209,8 @@ struct PoolingLayerInfo pad_stride_info(PadStrideInfo()), exclude_padding(false), is_global_pooling(false), - fp_mixed_precision(false) + fp_mixed_precision(false), + use_inf_as_limit(true) { } /** Constructor @@ -1222,20 +1223,23 @@ struct PoolingLayerInfo * True will exclude padding while false will not (Used in AVG/L2 pooling to determine the pooling area). * Defaults to false; * @param[in] fp_mixed_precision (Optional) Use wider accumulators (32 bit instead of 16 for FP16) to improve accuracy. + * @param[in] use_inf_as_limit (Optional) Use inf to represent the limits of datatypes range, instead of using "lowest" property of the data type. */ explicit PoolingLayerInfo(PoolingType pool_type, unsigned int pool_size, DataLayout data_layout, PadStrideInfo pad_stride_info = PadStrideInfo(), bool exclude_padding = false, - bool fp_mixed_precision = false) + bool fp_mixed_precision = false, + bool use_inf_as_limit = true) : pool_type(pool_type), pool_size(Size2D(pool_size, pool_size)), data_layout(data_layout), pad_stride_info(pad_stride_info), exclude_padding(exclude_padding), is_global_pooling(false), - fp_mixed_precision(fp_mixed_precision) + fp_mixed_precision(fp_mixed_precision), + use_inf_as_limit(use_inf_as_limit) { } @@ -1249,20 +1253,23 @@ struct PoolingLayerInfo * True will exclude padding while false will not (Used in AVG/L2 pooling to determine the pooling area). * Defaults to false; * @param[in] fp_mixed_precision (Optional) Use wider accumulators (32 bit instead of 16 for FP16) to improve accuracy. + * @param[in] use_inf_as_limit (Optional) Use inf to represent the limits of datatypes range, instead of using "lowest" property of the data type. */ explicit PoolingLayerInfo(PoolingType pool_type, Size2D pool_size, DataLayout data_layout, PadStrideInfo pad_stride_info = PadStrideInfo(), bool exclude_padding = false, - bool fp_mixed_precision = false) + bool fp_mixed_precision = false, + bool use_inf_as_limit = true) : pool_type(pool_type), pool_size(pool_size), data_layout(data_layout), pad_stride_info(pad_stride_info), exclude_padding(exclude_padding), is_global_pooling(false), - fp_mixed_precision(fp_mixed_precision) + fp_mixed_precision(fp_mixed_precision), + use_inf_as_limit(use_inf_as_limit) { } @@ -1280,7 +1287,8 @@ struct PoolingLayerInfo pad_stride_info(PadStrideInfo(1, 1, 0, 0)), exclude_padding(false), is_global_pooling(true), - fp_mixed_precision(false) + fp_mixed_precision(false), + use_inf_as_limit(true) { } @@ -1291,6 +1299,7 @@ struct PoolingLayerInfo bool exclude_padding; bool is_global_pooling; bool fp_mixed_precision; + bool use_inf_as_limit; }; /** Pooling Layer Information struct*/ |