diff options
Diffstat (limited to 'arm_compute/core/SubTensorInfo.h')
-rw-r--r-- | arm_compute/core/SubTensorInfo.h | 56 |
1 files changed, 42 insertions, 14 deletions
diff --git a/arm_compute/core/SubTensorInfo.h b/arm_compute/core/SubTensorInfo.h index bcb570ae7f..7a3ee2cfd0 100644 --- a/arm_compute/core/SubTensorInfo.h +++ b/arm_compute/core/SubTensorInfo.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 ARM Limited. + * Copyright (c) 2017-2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -24,14 +24,12 @@ #ifndef ARM_COMPUTE_SUBTENSORINFO_H #define ARM_COMPUTE_SUBTENSORINFO_H -#include "arm_compute/core/ITensorInfo.h" - #include "arm_compute/core/Coordinates.h" #include "arm_compute/core/Helpers.h" +#include "arm_compute/core/ITensorInfo.h" #include "arm_compute/core/Strides.h" #include "arm_compute/core/TensorInfo.h" #include "arm_compute/core/TensorShape.h" -#include "arm_compute/core/Validate.h" #include <cstddef> #include <memory> @@ -74,7 +72,7 @@ public: // Inherited methods overridden: std::unique_ptr<ITensorInfo> clone() const override; - ITensorInfo &set_data_type(DataType data_type) override + ITensorInfo &set_data_type(DataType data_type) override { ARM_COMPUTE_ERROR_ON(_parent == nullptr); _parent->set_data_type(data_type); @@ -99,6 +97,7 @@ public: return *this; }; ITensorInfo &set_tensor_shape(const TensorShape &shape) override; + ITensorInfo &set_tensor_dims_state(const TensorDimsState &state) override; ITensorInfo &set_quantization_info(const QuantizationInfo &quantization_info) override { ARM_COMPUTE_ERROR_ON(_parent == nullptr); @@ -116,7 +115,13 @@ public: ARM_COMPUTE_ERROR_ON(_parent == nullptr); return _parent->auto_padding(); }; + + ITensorInfo &set_lock_paddings(bool flag) override; + + bool lock_paddings() const override; + bool extend_padding(const PaddingSize &padding) override; + size_t dimension(size_t index) const override { return _tensor_shape[index]; @@ -137,7 +142,7 @@ public: return _parent->offset_element_in_bytes(_coords); } int32_t offset_element_in_bytes(const Coordinates &pos) const override; - size_t element_size() const override + size_t element_size() const override { ARM_COMPUTE_ERROR_ON(_parent == nullptr); return _parent->element_size(); @@ -156,6 +161,11 @@ public: ARM_COMPUTE_ERROR_ON(_parent == nullptr); return _tensor_shape; } + const TensorDimsState &tensor_dims_state() const override + { + ARM_COMPUTE_ERROR_ON(_parent == nullptr); + return _dims_state; + } DataType data_type() const override { ARM_COMPUTE_ERROR_ON(_parent == nullptr); @@ -191,16 +201,21 @@ public: ARM_COMPUTE_ERROR_ON(_parent == nullptr); return _parent->is_dynamic(); } + bool are_values_constant() const override + { + ARM_COMPUTE_ERROR_ON(_parent == nullptr); + return _parent->are_values_constant(); + } ITensorInfo &set_is_resizable(bool is_resizable) override { ARM_COMPUTE_ERROR_ON(_parent == nullptr); _parent->set_is_resizable(is_resizable); return *this; } - ITensorInfo &set_is_dynamic(bool is_dynamic) override + ITensorInfo &set_are_values_constant(bool are_values_constant) override { ARM_COMPUTE_ERROR_ON(_parent == nullptr); - _parent->set_is_dynamic(is_dynamic); + _parent->set_are_values_constant(are_values_constant); return *this; } ValidRegion valid_region() const override @@ -211,7 +226,7 @@ public: { ARM_COMPUTE_ERROR_ON(_parent == nullptr); // Check if subtensor is valid if parent is configured - if(_parent->tensor_shape().total_size() != 0) + if (_parent->tensor_shape().total_size() != 0) { ARM_COMPUTE_ERROR_ON_INVALID_SUBTENSOR_VALID_REGION(_parent->valid_region(), valid_region); } @@ -227,13 +242,26 @@ public: ARM_COMPUTE_ERROR_ON(_parent == nullptr); return _parent->data_layout(); } + ITensorInfo::Id id() const override + { + ARM_COMPUTE_ERROR_ON(_parent == nullptr); + return _parent->id(); + } + ITensorInfo &set_id(ITensorInfo::Id id) override + { + ARM_COMPUTE_ERROR_ON(_parent == nullptr); + _parent->set_id(id); + return *this; + } private: - ITensorInfo *_parent; - TensorShape _tensor_shape; - Coordinates _coords; - ValidRegion _valid_region; - bool _extend_parent; + ITensorInfo *_parent; + TensorShape _tensor_shape; + TensorDimsState _dims_state; + Coordinates _coords; + ValidRegion _valid_region; + bool _extend_parent; + bool _lock_paddings; }; } // namespace arm_compute #endif /*ARM_COMPUTE_SUBTENSORINFO_H */ |