Compute Library
 21.05
TensorInfo Class Referencefinal

Store the tensor's metadata. More...

#include <TensorInfo.h>

Collaboration diagram for TensorInfo:
[legend]

Public Member Functions

 TensorInfo ()
 Default constructor. More...
 
 ~TensorInfo ()=default
 Default destructor. More...
 
 TensorInfo (const ITensorInfo &info)
 Allow instances of this class to be copy constructed. More...
 
 TensorInfo (const TensorInfo &)=default
 Allow instances of this class to be copy constructed. More...
 
TensorInfooperator= (const TensorInfo &)=default
 Allow instances of this class to be copied. More...
 
 TensorInfo (TensorInfo &&)=default
 Allow instances of this class to be move constructed. More...
 
TensorInfooperator= (TensorInfo &&)=default
 Allow instances of this class to be moved. More...
 
 TensorInfo (Format format)
 Construct a tensor info with a format. More...
 
 TensorInfo (unsigned int width, unsigned int height, Format format)
 2D tensor constructor More...
 
 TensorInfo (const TensorShape &tensor_shape, Format format)
 Constructor. More...
 
 TensorInfo (size_t num_channels, DataType data_type)
 Construct a tensor info with a data type and number of channels. More...
 
 TensorInfo (const TensorShape &tensor_shape, size_t num_channels, DataType data_type)
 Constructor. More...
 
 TensorInfo (const TensorShape &tensor_shape, size_t num_channels, DataType data_type, DataLayout data_layout)
 Constructor. More...
 
 TensorInfo (const TensorShape &tensor_shape, size_t num_channels, DataType data_type, QuantizationInfo quantization_info)
 Constructor. More...
 
void init (Format format)
 Initialize the tensor info with just a format. More...
 
void init (const TensorShape &tensor_shape, Format format)
 Initialize the metadata structure with the given parameters. More...
 
void init (const TensorShape &tensor_shape, Format format, const Strides &strides_in_bytes, size_t offset_first_element_in_bytes, size_t total_size_in_bytes)
 Initialize the metadata structure with the given parameters. More...
 
void init (size_t num_channels, DataType data_type)
 Initialize the tensor info with just a format. More...
 
void init (const TensorShape &tensor_shape, size_t num_channels, DataType data_type)
 Initialize the metadata structure with the given parameters. More...
 
void init (const TensorShape &tensor_shape, size_t num_channels, DataType data_type, const Strides &strides_in_bytes, size_t offset_first_element_in_bytes, size_t total_size_in_bytes)
 Initialize the metadata structure with the given parameters. More...
 
size_t init_auto_padding (const TensorShape &tensor_shape, Format format)
 Initialize the metadata structure for the given tensor shape and single-plane format, (Padding is automatically calculated) More...
 
size_t init_auto_padding (const TensorShape &tensor_shape, size_t num_channels, DataType data_type)
 Initialize the metadata structure for the given tensor shape, number of channels and data type. More...
 
std::unique_ptr< ITensorInfoclone () const override
 Provide a clone of the current object of class T. More...
 
ITensorInfoset_data_type (DataType data_type) override
 Set the data type to the specified value. More...
 
ITensorInfoset_num_channels (int num_channels) override
 Set the number of channels to the specified value. More...
 
ITensorInfoset_format (Format format) override
 Set the format of an already initialized tensor. More...
 
ITensorInfoset_tensor_shape (const TensorShape &shape) override
 Set the shape of an already initialized tensor. More...
 
ITensorInfoset_tensor_dims_state (const TensorDimsState &state) override
 Set the state for each dimension of the tensor. More...
 
ITensorInfoset_quantization_info (const QuantizationInfo &quantization_info) override
 Set the quantization settings (scale and offset) of the tensor. More...
 
ITensorInfoset_data_layout (const DataLayout &data_layout) override
 Set the data layout of the tensor. More...
 
ITensorInforeset_padding () override
 Resets the padding settings of the tensor. More...
 
bool auto_padding () override
 Update the offset to the first element and the strides to automatically computed values. More...
 
bool extend_padding (const PaddingSize &padding) override
 Update the offset to the first element, the strides and the total size. More...
 
size_t dimension (size_t index) const override
 Return the size of the requested dimension. More...
 
size_t dimension (DataLayoutDimension dimension) const override
 Return the size of the requested data layout dimension. More...
 
const Stridesstrides_in_bytes () const override
 The strides in bytes for accessing each dimension of the tensor. More...
 
size_t offset_first_element_in_bytes () const override
 The offset from the beginning of the memory allocation to the first element of the tensor. More...
 
int32_t offset_element_in_bytes (const Coordinates &pos) const override
 The offset in bytes from the beginning of the memory allocation to access the element at position (x, y, z ...) More...
 
size_t element_size () const override
 Element size in bytes calculated as data_size() * num_channels() More...
 
size_t num_dimensions () const override
 The number of dimensions of the tensor (rank) More...
 
size_t num_channels () const override
 The number of channels for each tensor element. More...
 
const TensorShapetensor_shape () const override
 Size for each dimension of the tensor. More...
 
const TensorDimsStatetensor_dims_state () const override
 State of each dimension of the tensor shape. More...
 
DataType data_type () const override
 Data type used for each element of the tensor. More...
 
Format format () const override
 Colour format of the image. More...
 
size_t total_size () const override
 Returns the total size of the tensor in bytes. More...
 
PaddingSize padding () const override
 Padding of tensor. More...
 
bool has_padding () const override
 Checks if the tensor has been allocated with padding or not. More...
 
bool is_resizable () const override
 Flag indicating whether the size of the tensor can be changed. More...
 
bool is_dynamic () const override
 Flag indicating whether the shape of the tensor is dynamic, meaning that it can change on kernel/function execution. More...
 
ITensorInfoset_is_resizable (bool is_resizable) override
 Set the flag whether the tensor size can be changed. More...
 
ValidRegion valid_region () const override
 Valid region of the tensor. More...
 
void set_valid_region (const ValidRegion &valid_region) override
 Set the valid region of the tensor. More...
 
QuantizationInfo quantization_info () const override
 Get the quantization settings (scale and offset) of the tensor. More...
 
DataLayout data_layout () const override
 Get the data layout of the tensor. More...
 
- Public Member Functions inherited from ITensorInfo
virtual ~ITensorInfo ()=default
 Default virtual destructor. More...
 
- Public Member Functions inherited from ICloneable< ITensorInfo >
virtual ~ICloneable ()=default
 Default virtual desctructor. More...
 

Additional Inherited Members

- Public Types inherited from ITensorInfo
using TensorDimsState = Coordinates
 
- Static Public Member Functions inherited from ITensorInfo
static constexpr int32_t get_dynamic_state_value ()
 Get the value representing dynamic dimension state. More...
 
static constexpr int32_t get_static_state_value ()
 Get the value representing static dimension state. More...
 
template<typename... Infos>
static std::pair< TensorShape, ValidRegionbroadcast_shape_and_valid_region (const Infos &... infos)
 If infos are broadcast compatible tensor info's, return the broadcasted shape and the intersection of the broadcasted valid regions of the tensors. More...
 

Detailed Description

Store the tensor's metadata.

Definition at line 43 of file TensorInfo.h.

Constructor & Destructor Documentation

◆ TensorInfo() [1/11]

Default constructor.

Definition at line 36 of file TensorInfo.cpp.

37  : _total_size(0), _offset_first_element_in_bytes(0), _strides_in_bytes(), _num_channels(0), _tensor_shape(), _dims_state(), _data_type(DataType::UNKNOWN), _format(Format::UNKNOWN), _is_resizable{ true },
38  _valid_region{ Coordinates(), _tensor_shape }, _padding{ 0 }, _quantization_info(), _data_layout(DataLayout::NCHW)
39 {
40 }
Coordinates of an item.
Definition: Coordinates.h:37
Num samples, channels, height, width.

References arm_compute::UNKNOWN.

◆ ~TensorInfo()

~TensorInfo ( )
default

Default destructor.

◆ TensorInfo() [2/11]

TensorInfo ( const ITensorInfo info)

Allow instances of this class to be copy constructed.

Definition at line 42 of file TensorInfo.cpp.

43  : TensorInfo()
44 {
45  _total_size = info.total_size();
46  _offset_first_element_in_bytes = info.offset_first_element_in_bytes();
47  _strides_in_bytes = info.strides_in_bytes();
48  _num_channels = info.num_channels();
49  _tensor_shape = info.tensor_shape();
50  _dims_state = info.tensor_dims_state();
51  _data_type = info.data_type();
52  _format = info.format();
53  _is_resizable = info.is_resizable();
54  _valid_region = info.valid_region();
55  _padding = info.padding();
56  _quantization_info = info.quantization_info();
57  _data_layout = info.data_layout();
58 }
ScaleKernelInfo info(interpolation_policy, default_border_mode, PixelValue(), sampling_policy, false)
TensorInfo()
Default constructor.
Definition: TensorInfo.cpp:36
DataLayout data_layout
Data layout to use.

References ScaleKernelInfo::data_layout, and arm_compute::test::validation::info.

◆ TensorInfo() [3/11]

TensorInfo ( const TensorInfo )
default

Allow instances of this class to be copy constructed.

◆ TensorInfo() [4/11]

TensorInfo ( TensorInfo &&  )
default

Allow instances of this class to be move constructed.

◆ TensorInfo() [5/11]

TensorInfo ( Format  format)

Construct a tensor info with a format.

Can be used for automatic derivation of the shape by the function.

Parameters
[in]formatFormat of the tensor.

Definition at line 60 of file TensorInfo.cpp.

62 {
63 }
Shape of a tensor.
Definition: TensorShape.h:39
Format format() const override
Colour format of the image.
Definition: TensorInfo.h:246
TensorInfo()
Default constructor.
Definition: TensorInfo.cpp:36

◆ TensorInfo() [6/11]

TensorInfo ( unsigned int  width,
unsigned int  height,
Format  format 
)

2D tensor constructor

Parameters
[in]widthWidth of the 2D tensor
[in]heightHeight of the 2D tensor
[in]formatSingle plane format of the tensor.

Definition at line 65 of file TensorInfo.cpp.

66  : TensorInfo(TensorShape(width, height), format)
67 {
68 }
Shape of a tensor.
Definition: TensorShape.h:39
Format format() const override
Colour format of the image.
Definition: TensorInfo.h:246
TensorInfo()
Default constructor.
Definition: TensorInfo.cpp:36

◆ TensorInfo() [7/11]

TensorInfo ( const TensorShape tensor_shape,
Format  format 
)

Constructor.

Parameters
[in]tensor_shapeIt specifies the size for each dimension of the tensor in number of elements.
[in]formatSingle plane format of the tensor.

Definition at line 70 of file TensorInfo.cpp.

71  : TensorInfo()
72 {
74 }
Format format() const override
Colour format of the image.
Definition: TensorInfo.h:246
void init(Format format)
Initialize the tensor info with just a format.
Definition: TensorInfo.cpp:102
TensorInfo()
Default constructor.
Definition: TensorInfo.cpp:36
const TensorShape & tensor_shape() const override
Size for each dimension of the tensor.
Definition: TensorInfo.h:234

References TensorInfo::format(), TensorInfo::init(), and TensorInfo::tensor_shape().

◆ TensorInfo() [8/11]

TensorInfo ( size_t  num_channels,
DataType  data_type 
)

Construct a tensor info with a data type and number of channels.

Can be used for automatic derivation of the shape by the function.

Parameters
[in]num_channelsIt indicates the number of channels for each tensor element
[in]data_typeData type to use for each tensor element

Definition at line 76 of file TensorInfo.cpp.

77  : TensorInfo()
78 {
80 }
Shape of a tensor.
Definition: TensorShape.h:39
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230
DataType data_type() const override
Data type used for each element of the tensor.
Definition: TensorInfo.h:242
void init(Format format)
Initialize the tensor info with just a format.
Definition: TensorInfo.cpp:102
TensorInfo()
Default constructor.
Definition: TensorInfo.cpp:36

References TensorInfo::data_type(), TensorInfo::init(), and TensorInfo::num_channels().

◆ TensorInfo() [9/11]

TensorInfo ( const TensorShape tensor_shape,
size_t  num_channels,
DataType  data_type 
)

Constructor.

Parameters
[in]tensor_shapeIt specifies the size for each dimension of the tensor in number of elements.
[in]num_channelsIt indicates the number of channels for each tensor element
[in]data_typeData type to use for each tensor element

Definition at line 82 of file TensorInfo.cpp.

83  : TensorInfo()
84 {
86 }
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230
DataType data_type() const override
Data type used for each element of the tensor.
Definition: TensorInfo.h:242
void init(Format format)
Initialize the tensor info with just a format.
Definition: TensorInfo.cpp:102
TensorInfo()
Default constructor.
Definition: TensorInfo.cpp:36
const TensorShape & tensor_shape() const override
Size for each dimension of the tensor.
Definition: TensorInfo.h:234

References TensorInfo::data_type(), TensorInfo::init(), TensorInfo::num_channels(), and TensorInfo::tensor_shape().

◆ TensorInfo() [10/11]

TensorInfo ( const TensorShape tensor_shape,
size_t  num_channels,
DataType  data_type,
DataLayout  data_layout 
)

Constructor.

Parameters
[in]tensor_shapeIt specifies the size for each dimension of the tensor in number of elements.
[in]num_channelsIt indicates the number of channels for each tensor element
[in]data_typeData type to use for each tensor element
[in]data_layoutThe data layout setting for the tensor data.

Definition at line 95 of file TensorInfo.cpp.

96  : TensorInfo()
97 {
99  _data_layout = data_layout;
100 }
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230
DataLayout data_layout() const override
Get the data layout of the tensor.
Definition: TensorInfo.h:287
DataType data_type() const override
Data type used for each element of the tensor.
Definition: TensorInfo.h:242
void init(Format format)
Initialize the tensor info with just a format.
Definition: TensorInfo.cpp:102
TensorInfo()
Default constructor.
Definition: TensorInfo.cpp:36
const TensorShape & tensor_shape() const override
Size for each dimension of the tensor.
Definition: TensorInfo.h:234

References TensorInfo::data_layout(), TensorInfo::data_type(), TensorInfo::init(), TensorInfo::num_channels(), and TensorInfo::tensor_shape().

◆ TensorInfo() [11/11]

TensorInfo ( const TensorShape tensor_shape,
size_t  num_channels,
DataType  data_type,
QuantizationInfo  quantization_info 
)

Constructor.

Parameters
[in]tensor_shapeIt specifies the size for each dimension of the tensor in number of elements.
[in]num_channelsIt indicates the number of channels for each tensor element
[in]data_typeData type to use for each tensor element
[in]quantization_infoThe quantization settings for the tensor data.

Definition at line 88 of file TensorInfo.cpp.

89  : TensorInfo()
90 {
92  _quantization_info = std::move(quantization_info);
93 }
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230
QuantizationInfo quantization_info() const override
Get the quantization settings (scale and offset) of the tensor.
Definition: TensorInfo.h:283
DataType data_type() const override
Data type used for each element of the tensor.
Definition: TensorInfo.h:242
void init(Format format)
Initialize the tensor info with just a format.
Definition: TensorInfo.cpp:102
TensorInfo()
Default constructor.
Definition: TensorInfo.cpp:36
const TensorShape & tensor_shape() const override
Size for each dimension of the tensor.
Definition: TensorInfo.h:234

References TensorInfo::data_type(), TensorInfo::init(), TensorInfo::num_channels(), TensorInfo::quantization_info(), and TensorInfo::tensor_shape().

Member Function Documentation

◆ auto_padding()

bool auto_padding ( )
overridevirtual

Update the offset to the first element and the strides to automatically computed values.

Note
The padding used by this method is really conservative so that the tensor can be used for most functions.
Returns
True if the strides or the offset to the first element have changed.

Implements ITensorInfo.

Definition at line 189 of file TensorInfo.cpp.

190 {
191  ARM_COMPUTE_ERROR_ON(!_is_resizable);
192 
193  // Some kernels compute 32 elements at the time, worst case scenario they
194  // will read 32 values after the last element
195  const size_t extra_pad_x = _tensor_shape.num_dimensions() < 1 ? 0 : 32;
196  const size_t pad_x = _tensor_shape.num_dimensions() < 1 ? 0 : 4;
197  const size_t pad_y = _tensor_shape.num_dimensions() < 2 ? 0 : 4;
198 
199  return extend_padding(PaddingSize(pad_y, pad_x + extra_pad_x, pad_y, pad_x));
200 }
bool extend_padding(const PaddingSize &padding) override
Update the offset to the first element, the strides and the total size.
Definition: TensorInfo.cpp:246
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
Definition: Error.h:466
BorderSize PaddingSize
Container for 2D padding size.
Definition: Types.h:382
unsigned int num_dimensions() const
Returns the effective dimensionality of the tensor.
Definition: Dimensions.h:143

References ARM_COMPUTE_ERROR_ON, TensorInfo::extend_padding(), and Dimensions< T >::num_dimensions().

Referenced by TensorInfo::init_auto_padding().

◆ clone()

std::unique_ptr< ITensorInfo > clone ( ) const
overridevirtual

Provide a clone of the current object of class T.

Returns
Clone object of class T

Implements ICloneable< ITensorInfo >.

Definition at line 281 of file TensorInfo.cpp.

282 {
283  return std::make_unique<TensorInfo>(*this);
284 }

Referenced by CLFFTConvolutionLayer::configure(), CPPSplit< CLSlice, ICLTensor >::validate(), NEGEMM::validate(), NEWinogradConvolutionLayer::validate(), CLWinogradConvolutionLayer::validate(), NELSTMLayerQuantized::validate(), CLGEMMDeconvolutionLayer::validate(), and CLLSTMLayerQuantized::validate().

◆ data_layout()

DataLayout data_layout ( ) const
inlineoverridevirtual

Get the data layout of the tensor.

Returns
A DataLayout containing the layout data information.

Implements ITensorInfo.

Definition at line 287 of file TensorInfo.h.

288  {
289  return _data_layout;
290  }

Referenced by arm_compute::calculate_valid_region_scale(), CLAccessor::data_layout(), TensorInfo::set_data_layout(), and TensorInfo::TensorInfo().

◆ data_type()

DataType data_type ( ) const
inlineoverridevirtual

◆ dimension() [1/2]

size_t dimension ( size_t  index) const
inlineoverridevirtual

Return the size of the requested dimension.

Parameters
[in]indexIndex of the dimension
Returns
Dimension of the requested dimension

Implements ITensorInfo.

Definition at line 205 of file TensorInfo.h.

206  {
207  return _tensor_shape[index];
208  }

Referenced by ITensor::copy_from(), and TensorInfo::dimension().

◆ dimension() [2/2]

size_t dimension ( DataLayoutDimension  dimension) const
inlineoverridevirtual

Return the size of the requested data layout dimension.

Parameters
[in]dimensionDataLayoutDimension of the dimension
Returns
Dimension of the requested dimension

Implements ITensorInfo.

Definition at line 209 of file TensorInfo.h.

210  {
211  return get_data_layout_dimension_index(_data_layout, dimension);
212  }
size_t dimension(size_t index) const override
Return the size of the requested dimension.
Definition: TensorInfo.h:205
size_t get_data_layout_dimension_index(const DataLayout data_layout, const DataLayoutDimension data_layout_dimension)
Get the index of the given dimension.
Definition: Helpers.inl:193

References TensorInfo::dimension(), and arm_compute::get_data_layout_dimension_index().

◆ element_size()

size_t element_size ( ) const
inlineoverridevirtual

Element size in bytes calculated as data_size() * num_channels()

Returns
The size of one element in bytes

Implements ITensorInfo.

Definition at line 222 of file TensorInfo.h.

223  {
224  return data_size_from_type(_data_type) * _num_channels;
225  }
size_t data_size_from_type(DataType data_type)
The size in bytes of the data type.
Definition: Utils.h:106

References arm_compute::data_size_from_type().

Referenced by ITensor::copy_from(), CLAccessor::element_size(), and CLQLSTMLayer::prepare().

◆ extend_padding()

bool extend_padding ( const PaddingSize padding)
overridevirtual

Update the offset to the first element, the strides and the total size.

Note
This function can only increase the offset, strides and total size.
Parameters
[in]paddingPadding around the XY plane in number of elements.
Returns
True if the strides, offset and total size have changed.

Implements ITensorInfo.

Definition at line 246 of file TensorInfo.cpp.

247 {
248  ARM_COMPUTE_ERROR_ON(!_is_resizable);
249 
250  bool updated = false;
251 
252  if(padding.top > _padding.top)
253  {
254  _padding.top = padding.top;
255  updated = true;
256  }
257 
258  if(padding.right > _padding.right)
259  {
260  _padding.right = padding.right;
261  updated = true;
262  }
263 
264  if(padding.bottom > _padding.bottom)
265  {
266  _padding.bottom = padding.bottom;
267  updated = true;
268  }
269 
270  if(padding.left > _padding.left)
271  {
272  _padding.left = padding.left;
273  updated = true;
274  }
275 
276  std::tie(_strides_in_bytes, _offset_first_element_in_bytes, _total_size) = calculate_padding_requirements(_padding);
277 
278  return updated;
279 }
unsigned int top
top of the border
Definition: Types.h:375
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
Definition: Error.h:466
unsigned int bottom
bottom of the border
Definition: Types.h:377
PaddingSize padding() const override
Padding of tensor.
Definition: TensorInfo.h:254
unsigned int left
left of the border
Definition: Types.h:378
unsigned int right
right of the border
Definition: Types.h:376

References ARM_COMPUTE_ERROR_ON, BorderSize::bottom, BorderSize::left, TensorInfo::padding(), BorderSize::right, and BorderSize::top.

Referenced by TensorInfo::auto_padding().

◆ format()

Format format ( ) const
inlineoverridevirtual

Colour format of the image.

Returns
Colour format of the image

Implements ITensorInfo.

Definition at line 246 of file TensorInfo.h.

247  {
248  return _format;
249  }

Referenced by CLAccessor::format(), TensorAllocator::init(), TensorInfo::init(), TensorInfo::init_auto_padding(), TensorInfo::set_format(), and TensorInfo::TensorInfo().

◆ has_padding()

bool has_padding ( ) const
inlineoverridevirtual

Checks if the tensor has been allocated with padding or not.

Returns
True if padding is allocated in the tensor, otherwise false.

Implements ITensorInfo.

Definition at line 258 of file TensorInfo.h.

259  {
260  return !_padding.empty();
261  }
constexpr bool empty() const
Check if the entire border is zero.
Definition: Types.h:300

References BorderSize::empty().

◆ init() [1/6]

void init ( Format  format)

Initialize the tensor info with just a format.

Can be used for automatic derivation of the shape by the function.

Parameters
[in]formatSingle plane format of the tensor.

Definition at line 102 of file TensorInfo.cpp.

103 {
104  init(TensorShape(), format);
105 }
Shape of a tensor.
Definition: TensorShape.h:39
Format format() const override
Colour format of the image.
Definition: TensorInfo.h:246
void init(Format format)
Initialize the tensor info with just a format.
Definition: TensorInfo.cpp:102

References TensorInfo::format().

Referenced by NEWinogradConvolutionLayer::configure(), arm_compute::detail::convert_to_legacy_tensor_info(), TensorAllocator::init(), TensorInfo::init(), and TensorInfo::TensorInfo().

◆ init() [2/6]

void init ( const TensorShape tensor_shape,
Format  format 
)

Initialize the metadata structure with the given parameters.

Parameters
[in]tensor_shapeSize for each dimension of the tensor in number of elements.
[in]formatSingle plane format of the tensor.

Definition at line 107 of file TensorInfo.cpp.

108 {
111 
113 
114  _format = format;
115 }
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230
size_t num_channels_from_format(Format format)
Return the number of channels for a given single-planar pixel format.
Definition: Utils.h:486
decltype(strategy::transforms) typedef type
Format format() const override
Colour format of the image.
Definition: TensorInfo.h:246
DataType data_type_from_format(Format format)
Return the data type used by a given single-planar pixel format.
Definition: Utils.h:219
void init(Format format)
Initialize the tensor info with just a format.
Definition: TensorInfo.cpp:102
const TensorShape & tensor_shape() const override
Size for each dimension of the tensor.
Definition: TensorInfo.h:234
DataType
Available data types.
Definition: Types.h:77

References arm_compute::data_type_from_format(), TensorInfo::format(), TensorInfo::init(), TensorInfo::num_channels(), arm_compute::num_channels_from_format(), TensorInfo::tensor_shape(), and type.

◆ init() [3/6]

void init ( const TensorShape tensor_shape,
Format  format,
const Strides strides_in_bytes,
size_t  offset_first_element_in_bytes,
size_t  total_size_in_bytes 
)

Initialize the metadata structure with the given parameters.

Parameters
[in]tensor_shapeSize for each dimension of the tensor in number of elements.
[in]formatSingle plane format of the tensor.
[in]strides_in_bytesStride in bytes for accessing each dimension of the tensor.
[in]offset_first_element_in_bytesOffset in bytes from the beginning of memory allocation to access the first element.
[in]total_size_in_bytesSize in bytes of the memory allocation (including the offset to the first element).

Definition at line 117 of file TensorInfo.cpp.

120 {
123 
125 
126  _format = format;
127 }
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230
size_t num_channels_from_format(Format format)
Return the number of channels for a given single-planar pixel format.
Definition: Utils.h:486
const Strides & strides_in_bytes() const override
The strides in bytes for accessing each dimension of the tensor.
Definition: TensorInfo.h:213
decltype(strategy::transforms) typedef type
Format format() const override
Colour format of the image.
Definition: TensorInfo.h:246
DataType data_type_from_format(Format format)
Return the data type used by a given single-planar pixel format.
Definition: Utils.h:219
void init(Format format)
Initialize the tensor info with just a format.
Definition: TensorInfo.cpp:102
size_t offset_first_element_in_bytes() const override
The offset from the beginning of the memory allocation to the first element of the tensor.
Definition: TensorInfo.h:217
const TensorShape & tensor_shape() const override
Size for each dimension of the tensor.
Definition: TensorInfo.h:234
DataType
Available data types.
Definition: Types.h:77

References arm_compute::data_type_from_format(), TensorInfo::format(), TensorInfo::init(), TensorInfo::num_channels(), arm_compute::num_channels_from_format(), TensorInfo::offset_first_element_in_bytes(), TensorInfo::strides_in_bytes(), TensorInfo::tensor_shape(), and type.

◆ init() [4/6]

void init ( size_t  num_channels,
DataType  data_type 
)

Initialize the tensor info with just a format.

Can be used for automatic derivation of the shape by the function.

Parameters
[in]num_channelsDesired number of channels for each tensor element.
[in]data_typeData type to use for each tensor element.

Definition at line 129 of file TensorInfo.cpp.

130 {
132 }
Shape of a tensor.
Definition: TensorShape.h:39
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230
DataType data_type() const override
Data type used for each element of the tensor.
Definition: TensorInfo.h:242
void init(Format format)
Initialize the tensor info with just a format.
Definition: TensorInfo.cpp:102

References TensorInfo::data_type(), TensorInfo::init(), and TensorInfo::num_channels().

◆ init() [5/6]

void init ( const TensorShape tensor_shape,
size_t  num_channels,
DataType  data_type 
)

Initialize the metadata structure with the given parameters.

Parameters
[in]tensor_shapeSize for each dimension of the tensor in number of elements.
[in]num_channelsDesired number of channels for each tensor element.
[in]data_typeData type to use for each tensor element.

Definition at line 134 of file TensorInfo.cpp.

135 {
137 
138  _data_type = data_type;
139  _num_channels = num_channels;
140  _format = Format::UNKNOWN;
141 
143 }
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
Definition: Error.h:466
DataType data_type() const override
Data type used for each element of the tensor.
Definition: TensorInfo.h:242
ITensorInfo & set_tensor_shape(const TensorShape &shape) override
Set the shape of an already initialized tensor.
Definition: TensorInfo.cpp:317
const TensorShape & tensor_shape() const override
Size for each dimension of the tensor.
Definition: TensorInfo.h:234

References ARM_COMPUTE_ERROR_ON, TensorInfo::data_type(), TensorInfo::num_channels(), TensorInfo::set_tensor_shape(), TensorInfo::tensor_shape(), and arm_compute::UNKNOWN.

◆ init() [6/6]

void init ( const TensorShape tensor_shape,
size_t  num_channels,
DataType  data_type,
const Strides strides_in_bytes,
size_t  offset_first_element_in_bytes,
size_t  total_size_in_bytes 
)

Initialize the metadata structure with the given parameters.

Parameters
[in]tensor_shapeSize for each dimension of the tensor in number of elements.
[in]num_channelsDesired number of channels for each tensor element.
[in]data_typeData type to use for each tensor element.
[in]strides_in_bytesStride in bytes for accessing each dimension of the tensor.
[in]offset_first_element_in_bytesOffset in bytes from the beginning of memory allocation to access the first element.
[in]total_size_in_bytesSize in bytes of the memory allocation (including the offset to the first element).

Definition at line 145 of file TensorInfo.cpp.

148 {
150 
151  _data_type = data_type;
152  _num_channels = num_channels;
153  _format = Format::UNKNOWN;
154  _tensor_shape = tensor_shape;
155  _offset_first_element_in_bytes = offset_first_element_in_bytes;
156  _strides_in_bytes = strides_in_bytes;
157  _total_size = total_size_in_bytes;
158 
159  _valid_region = ValidRegion{ Coordinates(), _tensor_shape };
160 }
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
Definition: Error.h:466
const Strides & strides_in_bytes() const override
The strides in bytes for accessing each dimension of the tensor.
Definition: TensorInfo.h:213
DataType data_type() const override
Data type used for each element of the tensor.
Definition: TensorInfo.h:242
Coordinates of an item.
Definition: Coordinates.h:37
size_t offset_first_element_in_bytes() const override
The offset from the beginning of the memory allocation to the first element of the tensor.
Definition: TensorInfo.h:217
Container for valid region of a window.
Definition: Types.h:182
const TensorShape & tensor_shape() const override
Size for each dimension of the tensor.
Definition: TensorInfo.h:234

References ARM_COMPUTE_ERROR_ON, TensorInfo::data_type(), TensorInfo::num_channels(), TensorInfo::offset_first_element_in_bytes(), TensorInfo::strides_in_bytes(), TensorInfo::tensor_shape(), and arm_compute::UNKNOWN.

◆ init_auto_padding() [1/2]

size_t init_auto_padding ( const TensorShape tensor_shape,
Format  format 
)

Initialize the metadata structure for the given tensor shape and single-plane format, (Padding is automatically calculated)

Note
The padding used by this method is really conservative so that the tensor can be used for most functions.
Parameters
[in]tensor_shapeIt specifies the size for each dimension of the tensor in number of elements
[in]formatSingle plane format of the image.
Returns
Total allocation size including padding in bytes.

Definition at line 162 of file TensorInfo.cpp.

163 {
167 
168  _format = format;
169 
170  return total_size;
171 }
size_t init_auto_padding(const TensorShape &tensor_shape, Format format)
Initialize the metadata structure for the given tensor shape and single-plane format,...
Definition: TensorInfo.cpp:162
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230
size_t num_channels_from_format(Format format)
Return the number of channels for a given single-planar pixel format.
Definition: Utils.h:486
decltype(strategy::transforms) typedef type
Format format() const override
Colour format of the image.
Definition: TensorInfo.h:246
size_t total_size() const override
Returns the total size of the tensor in bytes.
Definition: TensorInfo.h:250
DataType data_type_from_format(Format format)
Return the data type used by a given single-planar pixel format.
Definition: Utils.h:219
const TensorShape & tensor_shape() const override
Size for each dimension of the tensor.
Definition: TensorInfo.h:234
DataType
Available data types.
Definition: Types.h:77

References arm_compute::data_type_from_format(), TensorInfo::format(), TensorInfo::num_channels(), arm_compute::num_channels_from_format(), TensorInfo::tensor_shape(), TensorInfo::total_size(), and type.

◆ init_auto_padding() [2/2]

size_t init_auto_padding ( const TensorShape tensor_shape,
size_t  num_channels,
DataType  data_type 
)

Initialize the metadata structure for the given tensor shape, number of channels and data type.

(Padding is automatically calculated)

Note
The padding used by this method is really conservative so that the tensor can be used for most functions.
Parameters
[in]tensor_shapeIt specifies the size for each dimension of the tensor in number of elements
[in]num_channelsIt indicates the number of channels for each tensor element
[in]data_typeData type to use for each tensor element
Returns
Total allocation size including padding in bytes.

Definition at line 173 of file TensorInfo.cpp.

174 {
176 
177  _data_type = data_type;
178  _num_channels = num_channels;
179  _format = Format::UNKNOWN;
180  _tensor_shape = tensor_shape;
181 
182  _valid_region = ValidRegion{ Coordinates(), _tensor_shape };
183 
184  auto_padding();
185 
186  return _total_size;
187 }
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
Definition: Error.h:466
bool auto_padding() override
Update the offset to the first element and the strides to automatically computed values.
Definition: TensorInfo.cpp:189
DataType data_type() const override
Data type used for each element of the tensor.
Definition: TensorInfo.h:242
Coordinates of an item.
Definition: Coordinates.h:37
Container for valid region of a window.
Definition: Types.h:182
const TensorShape & tensor_shape() const override
Size for each dimension of the tensor.
Definition: TensorInfo.h:234

References ARM_COMPUTE_ERROR_ON, TensorInfo::auto_padding(), TensorInfo::data_type(), TensorInfo::num_channels(), TensorInfo::tensor_shape(), and arm_compute::UNKNOWN.

◆ is_dynamic()

bool is_dynamic ( ) const
inlineoverridevirtual

Flag indicating whether the shape of the tensor is dynamic, meaning that it can change on kernel/function execution.

Returns
True if its dynamic else false

Implements ITensorInfo.

Definition at line 266 of file TensorInfo.h.

267  {
268  return std::find(std::cbegin(_dims_state), std::cend(_dims_state), get_dynamic_state_value()) != std::cend(_dims_state);
269  }
static constexpr int32_t get_dynamic_state_value()
Get the value representing dynamic dimension state.
Definition: ITensorInfo.h:49

References ITensorInfo::get_dynamic_state_value().

◆ is_resizable()

bool is_resizable ( ) const
inlineoverridevirtual

Flag indicating whether the size of the tensor can be changed.

Returns
True if the tensor size can be changed.

Implements ITensorInfo.

Definition at line 262 of file TensorInfo.h.

263  {
264  return _is_resizable;
265  }

Referenced by TensorInfo::set_is_resizable(), and arm_compute::test::validation::TEST_CASE().

◆ num_channels()

size_t num_channels ( ) const
inlineoverridevirtual

The number of channels for each tensor element.

Returns
The number of channels for each tensor element

Implements ITensorInfo.

Definition at line 230 of file TensorInfo.h.

231  {
232  return _num_channels;
233  }

Referenced by ITensor::copy_from(), TensorInfo::init(), TensorInfo::init_auto_padding(), CLAccessor::num_channels(), TensorInfo::set_num_channels(), and TensorInfo::TensorInfo().

◆ num_dimensions()

size_t num_dimensions ( ) const
inlineoverridevirtual

The number of dimensions of the tensor (rank)

Returns
The number of dimensions of the tensor (rank)

Implements ITensorInfo.

Definition at line 226 of file TensorInfo.h.

227  {
228  return _tensor_shape.num_dimensions();
229  }
unsigned int num_dimensions() const
Returns the effective dimensionality of the tensor.
Definition: Dimensions.h:143

References Dimensions< T >::num_dimensions().

Referenced by ITensor::copy_from().

◆ offset_element_in_bytes()

int32_t offset_element_in_bytes ( const Coordinates pos) const
overridevirtual

The offset in bytes from the beginning of the memory allocation to access the element at position (x, y, z ...)

Parameters
[in]posVector with the coordinates of the element to access. The size of this vector must be equal to the number of dimensions of the tensor
Returns
Offset in bytes from the beginning of the memory allocation to access the element (x, y, z, ...)

Implements ITensorInfo.

Definition at line 367 of file TensorInfo.cpp.

368 {
370 
371  int32_t offset = _offset_first_element_in_bytes;
372 
373  for(size_t i = 0; i < _tensor_shape.num_dimensions(); ++i)
374  {
375  offset += pos[i] * _strides_in_bytes[i];
376  }
377 
378  return offset;
379 }
__global uchar * offset(const Image *img, int x, int y)
Get the pointer position of a Image.
Definition: helpers.h:861
unsigned int num_dimensions() const
Returns the effective dimensionality of the tensor.
Definition: Dimensions.h:143
#define ARM_COMPUTE_ERROR_ON_COORDINATES_DIMENSIONS_GTE(p, md)
Definition: Validate.h:240

References ARM_COMPUTE_ERROR_ON_COORDINATES_DIMENSIONS_GTE, Dimensions< T >::num_dimensions(), and offset().

Referenced by TensorAllocator::init().

◆ offset_first_element_in_bytes()

size_t offset_first_element_in_bytes ( ) const
inlineoverridevirtual

The offset from the beginning of the memory allocation to the first element of the tensor.

This can be used to access efficiently elements in a 2D tensor

Returns
The offset in bytes to access the first element of the tensor.

Implements ITensorInfo.

Definition at line 217 of file TensorInfo.h.

218  {
219  return _offset_first_element_in_bytes;
220  }

Referenced by TensorAllocator::init(), and TensorInfo::init().

◆ operator=() [1/2]

TensorInfo& operator= ( const TensorInfo )
default

Allow instances of this class to be copied.

◆ operator=() [2/2]

TensorInfo& operator= ( TensorInfo &&  )
default

Allow instances of this class to be moved.

◆ padding()

PaddingSize padding ( ) const
inlineoverridevirtual

Padding of tensor.

Returns
Padding.

Implements ITensorInfo.

Definition at line 254 of file TensorInfo.h.

255  {
256  return _padding;
257  }

Referenced by TensorInfo::extend_padding(), CLAccessor::padding(), and arm_compute::test::validation::TEST_CASE().

◆ quantization_info()

QuantizationInfo quantization_info ( ) const
inlineoverridevirtual

Get the quantization settings (scale and offset) of the tensor.

Returns
A QuantizationInfo containing the scale and offset.

Implements ITensorInfo.

Definition at line 283 of file TensorInfo.h.

284  {
285  return _quantization_info;
286  }

Referenced by CLQLSTMLayer::configure(), CLAccessor::quantization_info(), TensorInfo::set_quantization_info(), TensorInfo::TensorInfo(), and arm_compute::test::validation::TEST_CASE().

◆ reset_padding()

ITensorInfo & reset_padding ( )
overridevirtual

Resets the padding settings of the tensor.

Returns
Reference to this ITensorInfo object

Implements ITensorInfo.

Definition at line 357 of file TensorInfo.cpp.

358 {
359  _padding = PaddingSize();
360  if(((_format != Format::UNKNOWN) || (_data_type != DataType::UNKNOWN)) && _total_size != 0)
361  {
362  std::tie(_strides_in_bytes, _offset_first_element_in_bytes, _total_size) = calculate_padding_requirements(_padding);
363  }
364  return *this;
365 }
BorderSize PaddingSize
Container for 2D padding size.
Definition: Types.h:382

References arm_compute::UNKNOWN.

◆ set_data_layout()

ITensorInfo & set_data_layout ( const DataLayout data_layout)
overridevirtual

Set the data layout of the tensor.

Parameters
[in]data_layoutDataLayout containing the layout data information.
Returns
Reference to this ITensorInfo object

Implements ITensorInfo.

Definition at line 351 of file TensorInfo.cpp.

352 {
353  _data_layout = data_layout;
354  return *this;
355 }
DataLayout data_layout() const override
Get the data layout of the tensor.
Definition: TensorInfo.h:287

References TensorInfo::data_layout().

Referenced by NECropResize::configure(), CLCropResize::configure(), NEDeconvolutionLayer::configure(), CLFFTConvolutionLayer::configure(), and CLDirectDeconvolutionLayer::configure().

◆ set_data_type()

ITensorInfo & set_data_type ( DataType  data_type)
overridevirtual

Set the data type to the specified value.

Warning
This resets the format to UNKNOWN.
Parameters
[in]data_typeThe new data type.
Returns
Reference to this ITensorInfo object

Implements ITensorInfo.

Definition at line 286 of file TensorInfo.cpp.

287 {
288  _data_type = data_type;
289  _format = Format::UNKNOWN;
290  return set_tensor_shape(tensor_shape()); // Force total size and strides to update
291 }
DataType data_type() const override
Data type used for each element of the tensor.
Definition: TensorInfo.h:242
ITensorInfo & set_tensor_shape(const TensorShape &shape) override
Set the shape of an already initialized tensor.
Definition: TensorInfo.cpp:317
const TensorShape & tensor_shape() const override
Size for each dimension of the tensor.
Definition: TensorInfo.h:234

References TensorInfo::data_type(), TensorInfo::set_tensor_shape(), TensorInfo::tensor_shape(), and arm_compute::UNKNOWN.

Referenced by NEReduceMean::configure(), CLReduceMean::configure(), CpuLogits1DSoftmaxKernel< IS_LOG >::configure(), NEL2NormalizeLayer::validate(), NEReductionOperation::validate(), CLL2NormalizeLayer::validate(), CLArgMinMaxLayer::validate(), CLReductionOperation::validate(), NEGenerateProposalsLayer::validate(), CLGEMMDeconvolutionLayer::validate(), and CLGenerateProposalsLayer::validate().

◆ set_format()

ITensorInfo & set_format ( Format  format)
overridevirtual

Set the format of an already initialized tensor.

Note
If the data type has already been configured (i.e. not UNKNOWN) it must match the new format. If data type hasn't been configured it will be based on the format.
Parameters
[in]formatSingle-plane format of the tensor.
Returns
Reference to this ITensorInfo object

Implements ITensorInfo.

Definition at line 300 of file TensorInfo.cpp.

301 {
302  _format = format;
303 
304  if(_data_type == DataType::UNKNOWN)
305  {
306  _num_channels = num_channels_from_format(format);
307  _data_type = data_type_from_format(format);
308  }
309  else
310  {
313  }
314  return *this;
315 }
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
Definition: Error.h:466
size_t num_channels_from_format(Format format)
Return the number of channels for a given single-planar pixel format.
Definition: Utils.h:486
Format format() const override
Colour format of the image.
Definition: TensorInfo.h:246
DataType data_type_from_format(Format format)
Return the data type used by a given single-planar pixel format.
Definition: Utils.h:219

References ARM_COMPUTE_ERROR_ON, arm_compute::data_type_from_format(), TensorInfo::format(), arm_compute::num_channels_from_format(), and arm_compute::UNKNOWN.

◆ set_is_resizable()

ITensorInfo& set_is_resizable ( bool  is_resizable)
inlineoverridevirtual

Set the flag whether the tensor size can be changed.

Parameters
[in]is_resizableFlag that marks the tensor if it can be changed or not.
Returns
Reference to this ITensorInfo object

Implements ITensorInfo.

Definition at line 270 of file TensorInfo.h.

271  {
272  _is_resizable = is_resizable;
273  return *this;
274  }
bool is_resizable() const override
Flag indicating whether the size of the tensor can be changed.
Definition: TensorInfo.h:262

References TensorInfo::is_resizable().

Referenced by TensorAllocator::allocate(), CLTensorAllocator::allocate(), TensorAllocator::free(), CLTensorAllocator::free(), TensorAllocator::import_memory(), CLTensorAllocator::import_memory(), and TensorAllocator::~TensorAllocator().

◆ set_num_channels()

ITensorInfo & set_num_channels ( int  num_channels)
overridevirtual

Set the number of channels to the specified value.

Warning
This resets the format to UNKNOWN.
Parameters
[in]num_channelsNew number of channels.
Returns
Reference to this ITensorInfo object

Implements ITensorInfo.

Definition at line 293 of file TensorInfo.cpp.

294 {
295  _num_channels = num_channels;
296  _format = Format::UNKNOWN;
297  return *this;
298 }
size_t num_channels() const override
The number of channels for each tensor element.
Definition: TensorInfo.h:230

References TensorInfo::num_channels(), and arm_compute::UNKNOWN.

◆ set_quantization_info()

ITensorInfo & set_quantization_info ( const QuantizationInfo quantization_info)
overridevirtual

Set the quantization settings (scale and offset) of the tensor.

Parameters
[in]quantization_infoQuantizationInfo containing the scale and offset
Returns
Reference to this ITensorInfo object

Implements ITensorInfo.

Definition at line 345 of file TensorInfo.cpp.

346 {
347  _quantization_info = quantization_info;
348  return *this;
349 }
QuantizationInfo quantization_info() const override
Get the quantization settings (scale and offset) of the tensor.
Definition: TensorInfo.h:283

References TensorInfo::quantization_info().

Referenced by CpuLogits1DSoftmaxKernel< IS_LOG >::configure(), CLGEMMDeconvolutionLayer::configure(), CLLSTMLayerQuantized::configure(), NEGEMMConvolutionLayer::configure(), CLGEMMConvolutionLayer::configure(), NELSTMLayerQuantized::validate(), CLLSTMLayerQuantized::validate(), and NEGEMMConvolutionLayer::validate().

◆ set_tensor_dims_state()

ITensorInfo & set_tensor_dims_state ( const TensorDimsState state)
overridevirtual

Set the state for each dimension of the tensor.

This sets the state of each dimension of the shape in terms of dynamic behavior using -1 where appropriate. The index in the state is a 1 to 1 mapping with the shape dimension index. For example if you want to express [?, 3, 3] as a dynamic input then [-1, 3, 3] has to be set as a state

Parameters
[in]stateTensor dimensions state
Returns
Reference to this ITensorInfo object

Implements ITensorInfo.

Definition at line 339 of file TensorInfo.cpp.

340 {
341  _dims_state = state;
342  return *this;
343 }

◆ set_tensor_shape()

ITensorInfo & set_tensor_shape ( const TensorShape shape)
overridevirtual

Set the shape of an already initialized tensor.

Warning
Changing the shape requires to recompute the strides and is therefore only possible if the tensor hasn't been allocated yet.
Parameters
[in]shapeNew tensor shape.
Returns
Reference to this ITensorInfo object

Implements ITensorInfo.

Definition at line 317 of file TensorInfo.cpp.

318 {
319  _tensor_shape = shape;
320  _offset_first_element_in_bytes = 0;
321  _strides_in_bytes = compute_strides(*this);
322 
323  if(_tensor_shape.num_dimensions() == 0)
324  {
325  _total_size = _strides_in_bytes[0];
326  }
327  else
328  {
329  const unsigned int idx_last_dimension = _tensor_shape.num_dimensions() - 1;
330  _total_size = static_cast<size_t>(_tensor_shape[idx_last_dimension]) * _strides_in_bytes[idx_last_dimension];
331  }
332 
333  std::tie(_strides_in_bytes, _offset_first_element_in_bytes, _total_size) = calculate_padding_requirements(_padding);
334 
335  _valid_region = ValidRegion{ Coordinates(), _tensor_shape };
336  return *this;
337 }
Strides compute_strides(const ITensorInfo &info, T stride_x, Ts &&... fixed_strides)
Create a strides object based on the provided strides and the tensor dimensions.
Definition: Utils.h:41
Coordinates of an item.
Definition: Coordinates.h:37
unsigned int num_dimensions() const
Returns the effective dimensionality of the tensor.
Definition: Dimensions.h:143
Container for valid region of a window.
Definition: Types.h:182

References arm_compute::compute_strides(), Dimensions< T >::num_dimensions(), and arm_compute::test::validation::shape.

Referenced by NEQLSTMLayer::configure(), CLQLSTMLayer::configure(), TensorInfo::init(), TensorInfo::set_data_type(), NEQLSTMLayer::validate(), and CLQLSTMLayer::validate().

◆ set_valid_region()

void set_valid_region ( const ValidRegion valid_region)
inlineoverridevirtual

Set the valid region of the tensor.

Parameters
[in]valid_regionValid region to set.

Implements ITensorInfo.

Definition at line 279 of file TensorInfo.h.

280  {
281  _valid_region = valid_region;
282  }
ValidRegion valid_region() const override
Valid region of the tensor.
Definition: TensorInfo.h:275

References TensorInfo::valid_region().

◆ strides_in_bytes()

const Strides& strides_in_bytes ( ) const
inlineoverridevirtual

The strides in bytes for accessing each dimension of the tensor.

Returns
Strides in bytes for each tensor dimension

Implements ITensorInfo.

Definition at line 213 of file TensorInfo.h.

214  {
215  return _strides_in_bytes;
216  }

Referenced by TensorAllocator::init(), and TensorInfo::init().

◆ tensor_dims_state()

const TensorDimsState& tensor_dims_state ( ) const
inlineoverridevirtual

State of each dimension of the tensor shape.

Returns
A vector with the state for each dimension of the tensor, where -1 specifies dynamic dimension

Implements ITensorInfo.

Definition at line 238 of file TensorInfo.h.

239  {
240  return _dims_state;
241  }

◆ tensor_shape()

◆ total_size()

size_t total_size ( ) const
inlineoverridevirtual

Returns the total size of the tensor in bytes.

Returns
Total size of the tensor in bytes.

Implements ITensorInfo.

Definition at line 250 of file TensorInfo.h.

251  {
252  return _total_size;
253  }

Referenced by CLTensorAllocator::allocate(), TensorAllocator::init(), TensorInfo::init_auto_padding(), CLQLSTMLayer::prepare(), CLAccessor::size(), arm_compute::test::validation::TEST_CASE(), and ClSoftmax::workspace().

◆ valid_region()

ValidRegion valid_region ( ) const
inlineoverridevirtual

Valid region of the tensor.

All elements in the valid region have defined values, i.e. are not undefined.

Returns
The valid region.

Implements ITensorInfo.

Definition at line 275 of file TensorInfo.h.

276  {
277  return _valid_region;
278  }

Referenced by arm_compute::calculate_valid_region_scale(), ITensor::copy_from(), and TensorInfo::set_valid_region().


The documentation for this class was generated from the following files: