diff options
Diffstat (limited to 'arm_compute/core/Helpers.inl')
-rw-r--r-- | arm_compute/core/Helpers.inl | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/arm_compute/core/Helpers.inl b/arm_compute/core/Helpers.inl index de6c85ec76..1a27684c9c 100644 --- a/arm_compute/core/Helpers.inl +++ b/arm_compute/core/Helpers.inl @@ -197,7 +197,12 @@ inline void Iterator::reset(const size_t dimension) } } -inline bool auto_init_if_empty(ITensorInfo &info, const TensorShape &shape, int num_channels, DataType data_type, int fixed_point_position) +inline bool auto_init_if_empty(ITensorInfo &info, + const TensorShape &shape, + int num_channels, + DataType data_type, + int fixed_point_position, + QuantizationInfo quantization_info) { if(info.tensor_shape().total_size() == 0) { @@ -205,6 +210,7 @@ inline bool auto_init_if_empty(ITensorInfo &info, const TensorShape &shape, int info.set_num_channels(num_channels); info.set_tensor_shape(shape); info.set_fixed_point_position(fixed_point_position); + info.set_quantization_info(quantization_info); return true; } @@ -255,6 +261,17 @@ inline bool set_fixed_point_position_if_zero(ITensorInfo &info, int fixed_point_ return false; } +inline bool set_quantization_info_if_empty(ITensorInfo &info, QuantizationInfo quantization_info) +{ + if(info.quantization_info().empty() && (is_data_type_assymetric(info.data_type()))) + { + info.set_quantization_info(quantization_info); + return true; + } + + return false; +} + inline ValidRegion calculate_valid_region_scale(const ITensorInfo &src_info, const TensorShape &dst_shape, InterpolationPolicy policy, BorderSize border_size, bool border_undefined) { const auto wr = static_cast<float>(dst_shape[0]) / static_cast<float>(src_info.tensor_shape()[0]); |