Compute Library
 23.05
TensorShape Class Reference

Shape of a tensor. More...

#include <TensorShape.h>

Collaboration diagram for TensorShape:
[legend]

Public Member Functions

template<typename... Ts>
 TensorShape (Ts... dims)
 Constructor to initialize the tensor shape. More...
 
 TensorShape (const TensorShape &)=default
 Allow instances of this class to be copy constructed. More...
 
TensorShapeoperator= (const TensorShape &)=default
 Allow instances of this class to be copied. More...
 
 TensorShape (TensorShape &&)=default
 Allow instances of this class to be move constructed. More...
 
TensorShapeoperator= (TensorShape &&)=default
 Allow instances of this class to be moved. More...
 
 ~TensorShape ()=default
 Default destructor. More...
 
TensorShapeset (size_t dimension, size_t value, bool apply_dim_correction=true, bool increase_dim_unit=true)
 Accessor to set the value of one of the dimensions. More...
 
void remove_dimension (size_t n)
 Accessor to remove the dimension n from the tensor shape. More...
 
void collapse (size_t n, size_t first=0)
 Collapse the first n dimensions. More...
 
void shift_right (size_t step)
 Shifts right the tensor shape increasing its dimensions. More...
 
TensorShape collapsed_from (size_t start) const
 Return a copy with collapsed dimensions starting from a given point. More...
 
size_t total_size () const
 Collapses all dimensions to a single linear total size. More...
 
size_t total_size_upper (size_t dimension) const
 Collapses given dimension and above. More...
 
size_t total_size_lower (size_t dimension) const
 Compute size of dimensions lower than the given one. More...
 
- Public Member Functions inherited from Dimensions< size_t >
 Dimensions (Ts... dims)
 Constructor to initialize the tensor shape. More...
 
 Dimensions (const Dimensions &)=default
 Allow instances of this class to be copy constructed. More...
 
 Dimensions (Dimensions &&)=default
 Allow instances of this class to be move constructed. More...
 
Dimensionsoperator= (const Dimensions &)=default
 Allow instances of this class to be copied. More...
 
Dimensionsoperator= (Dimensions &&)=default
 Allow instances of this class to be moved. More...
 
void set (size_t dimension, size_t value, bool increase_dim_unit=true)
 Accessor to set the value of one of the dimensions. More...
 
size_t x () const
 Alias to access the size of the first dimension. More...
 
size_t y () const
 Alias to access the size of the second dimension. More...
 
size_t z () const
 Alias to access the size of the third dimension. More...
 
void increment (size_t dim, size_t step=1)
 Increments the given dimension by a step size, avoiding overflows. More...
 
const size_t & operator[] (size_t dimension) const
 Generic accessor to get the size of any dimension. More...
 
size_t & operator[] (size_t dimension)
 Generic accessor to get the size of any dimension. More...
 
unsigned int num_dimensions () const
 Returns the effective dimensionality of the tensor. More...
 
void set_num_dimensions (size_t num_dimensions)
 Set number of dimensions. More...
 
void collapse (const size_t n, const size_t first=0)
 Collapse dimensions. More...
 
void collapse_from (size_t start)
 Collapse dimensions starting from a given point. More...
 
void remove (size_t idx)
 Remove dimension of a given index. More...
 
std::array< size_t, num_max_dimensions >::iterator begin ()
 Returns a read/write iterator that points to the first element in the dimension array. More...
 
std::array< size_t, num_max_dimensions >::const_iterator begin () const
 Returns a read-only (constant) iterator that points to the first element in the dimension array. More...
 
std::array< size_t, num_max_dimensions >::const_iterator cbegin () const
 Returns a read-only (constant) iterator that points to the first element in the dimension array. More...
 
std::array< size_t, num_max_dimensions >::iterator end ()
 Returns a read/write iterator that points one past the last element in the dimension array. More...
 
std::array< size_t, num_max_dimensions >::const_iterator end () const
 Returns a read-only (constant) iterator that points one past the last element in the dimension array. More...
 
std::array< size_t, num_max_dimensions >::const_iterator cend () const
 Returns a read-only (constant) iterator that points one past the last element in the dimension array. More...
 

Static Public Member Functions

template<typename... Shapes>
static TensorShape broadcast_shape (const Shapes &... shapes)
 If shapes are broadcast compatible, return the broadcasted shape. More...
 

Additional Inherited Members

- Static Public Attributes inherited from Dimensions< size_t >
static constexpr size_t num_max_dimensions
 Number of dimensions the tensor has. More...
 

Detailed Description

Shape of a tensor.

Definition at line 39 of file TensorShape.h.

Constructor & Destructor Documentation

◆ TensorShape() [1/3]

TensorShape ( Ts...  dims)
inline

Constructor to initialize the tensor shape.

Parameters
[in]dimsValues to initialize the dimensions.

Definition at line 47 of file TensorShape.h.

References arm_compute::test::validation::fill(), TensorShape::operator=(), and TensorShape::~TensorShape().

48  : Dimensions{ dims... }
49  {
50  // Initialize unspecified dimensions to 1
51  if(_num_dimensions > 0)
52  {
53  std::fill(_id.begin() + _num_dimensions, _id.end(), 1);
54  }
55 
56  // Correct number dimensions to ignore trailing dimensions of size 1
57  apply_dimension_correction();
58  }
library fill(src, distribution, 0)
Dimensions(Ts... dims)
Constructor to initialize the tensor shape.
Definition: Dimensions.h:53

◆ TensorShape() [2/3]

TensorShape ( const TensorShape )
default

Allow instances of this class to be copy constructed.

◆ TensorShape() [3/3]

TensorShape ( TensorShape &&  )
default

Allow instances of this class to be move constructed.

◆ ~TensorShape()

~TensorShape ( )
default

Default destructor.

Referenced by TensorShape::TensorShape().

Member Function Documentation

◆ broadcast_shape()

static TensorShape broadcast_shape ( const Shapes &...  shapes)
inlinestatic

If shapes are broadcast compatible, return the broadcasted shape.

Two tensor shapes are broadcast compatible if for each dimension, they're equal or one of them is 1.

If two shapes are compatible, each dimension in the broadcasted shape is the max of the original dimensions.

Parameters
[in]shapesTensor shapes.
Returns
The broadcasted shape or an empty shape if the shapes are not broadcast compatible.

Definition at line 211 of file TensorShape.h.

References arm_compute::utility::for_each(), Dimensions< T >::num_dimensions(), Dimensions< size_t >::num_max_dimensions, TensorShape::set(), and arm_compute::U.

Referenced by PostOpCLKernelUtils::are_post_op_shapes_compliant(), arm_compute::test::validation::reference::arithmetic_division(), arm_compute::test::validation::reference::arithmetic_operation(), ITensorInfo::broadcast_shape_and_valid_region(), arm_compute::test::validation::reference::compare(), NELogicalKernel::configure(), CpuSubKernel::configure(), CpuMulKernel::configure(), CpuAddKernel::configure(), ClMulKernel::configure(), ClComplexMulKernel::configure(), CpuComplexMulKernel::configure(), EltwiseLayerNode::configure_output(), CpuComparisonKernel::get_available_kernels(), arm_compute::intersect_valid_regions(), arm_compute::test::validation::reference::logical_and(), arm_compute::test::validation::reference::logical_or(), CpuMulKernel::name(), arm_compute::test::validation::reference::pixel_wise_multiplication(), ClMulKernel::run_op(), NELogicalKernel::validate(), and ClComponentElementwiseBinary::validate().

212  {
213  TensorShape bc_shape;
214 
215  auto broadcast = [&bc_shape](const TensorShape & other)
216  {
217  if(bc_shape.num_dimensions() == 0)
218  {
219  bc_shape = other;
220  }
221  else if(other.num_dimensions() != 0)
222  {
223  for(size_t d = 0; d < TensorShape::num_max_dimensions; ++d)
224  {
225  const size_t dim_min = std::min(bc_shape[d], other[d]);
226  const size_t dim_max = std::max(bc_shape[d], other[d]);
227 
228  if((dim_min != 1) && (dim_min != dim_max))
229  {
230  bc_shape = TensorShape{ 0U };
231  break;
232  }
233 
234  bc_shape.set(d, dim_max);
235  }
236  }
237  };
238 
239  utility::for_each(broadcast, shapes...);
240 
241  return bc_shape;
242  }
TensorShape(Ts... dims)
Constructor to initialize the tensor shape.
Definition: TensorShape.h:47
void for_each(F &&)
Base case of for_each.
Definition: Utility.h:111
static constexpr size_t num_max_dimensions
Number of dimensions the tensor has.
Definition: Dimensions.h:46

◆ collapse()

void collapse ( size_t  n,
size_t  first = 0 
)
inline

Collapse the first n dimensions.

Parameters
[in]nNumber of dimensions to collapse into first
[in]firstDimensions into which the following n are collapsed.

Definition at line 133 of file TensorShape.h.

References Dimensions< T >::collapse(), and arm_compute::test::validation::fill().

Referenced by TensorShape::collapsed_from(), arm_compute::misc::shape_calculator::compute_softmax_shape(), arm_compute::misc::shape_calculator::compute_weights_reshaped_shape(), ClTransposedConvolutionKernel::configure(), CpuGemmLowpMatrixMultiplyKernel::configure(), ClIndirectConv2dKernel::configure(), ClDirectConv2dKernel::configure(), FlattenLayerNode::configure_output(), and ClTemplateElementwiseBinary::get_window().

134  {
135  Dimensions::collapse(n, first);
136 
137  // Make sure all empty dimensions are filled with 1
138  std::fill(_id.begin() + _num_dimensions, _id.end(), 1);
139  }
void collapse(const size_t n, const size_t first=0)
Collapse dimensions.
Definition: Dimensions.h:159
library fill(src, distribution, 0)

◆ collapsed_from()

TensorShape collapsed_from ( size_t  start) const
inline

Return a copy with collapsed dimensions starting from a given point.

Parameters
[in]startStarting point of collapsing dimensions.
Returns
A copy with collapse dimensions starting from start.

Definition at line 161 of file TensorShape.h.

References TensorShape::collapse(), arm_compute::test::validation::reference::copy(), and Dimensions< size_t >::num_dimensions().

Referenced by CpuMatMul::configure(), CpuMatMul::run(), CLComparisonKernel::run(), ClElementwiseKernel::run_op(), ClMulKernel::run_op(), and ClComplexMulKernel::run_op().

162  {
163  TensorShape copy(*this);
164  copy.collapse(num_dimensions() - start, start);
165  return copy;
166  }
SimpleTensor< T > copy(const SimpleTensor< T > &src, const TensorShape &output_shape)
Definition: Copy.cpp:37
TensorShape(Ts... dims)
Constructor to initialize the tensor shape.
Definition: TensorShape.h:47
unsigned int num_dimensions() const
Returns the effective dimensionality of the tensor.
Definition: Dimensions.h:143

◆ operator=() [1/2]

TensorShape& operator= ( const TensorShape )
default

Allow instances of this class to be copied.

Referenced by TensorShape::TensorShape().

◆ operator=() [2/2]

TensorShape& operator= ( TensorShape &&  )
default

Allow instances of this class to be moved.

◆ remove_dimension()

void remove_dimension ( size_t  n)
inline

Accessor to remove the dimension n from the tensor shape.

Note
The upper dimensions of the tensor shape will be shifted down by 1
Parameters
[in]nDimension to remove

Definition at line 111 of file TensorShape.h.

References ARM_COMPUTE_ERROR_ON, arm_compute::test::validation::reference::copy(), arm_compute::test::validation::fill(), and arm_compute::test::validation::n.

Referenced by arm_compute::misc::shape_calculator::calculate_reduce_mean_shape(), arm_compute::misc::shape_calculator::calculate_unstack_shape(), arm_compute::misc::shape_calculator::compute_lhs_reshaped_shape(), arm_compute::misc::shape_calculator::compute_reductionA_shape(), arm_compute::misc::shape_calculator::compute_reductionB_shape(), NEReduceMean::configure(), CLReduceMean::configure(), NEFFTConvolutionLayer::configure(), and CLFFTConvolutionLayer::configure().

112  {
113  ARM_COMPUTE_ERROR_ON(_num_dimensions < 1);
114  ARM_COMPUTE_ERROR_ON(n >= _num_dimensions);
115 
116  std::copy(_id.begin() + n + 1, _id.end(), _id.begin() + n);
117 
118  // Reduce number of dimensions
119  _num_dimensions--;
120 
121  // Make sure all empty dimensions are filled with 1
122  std::fill(_id.begin() + _num_dimensions, _id.end(), 1);
123 
124  // Correct number dimensions to ignore trailing dimensions of size 1
125  apply_dimension_correction();
126  }
#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
SimpleTensor< T > copy(const SimpleTensor< T > &src, const TensorShape &output_shape)
Definition: Copy.cpp:37
library fill(src, distribution, 0)

◆ set()

TensorShape& set ( size_t  dimension,
size_t  value,
bool  apply_dim_correction = true,
bool  increase_dim_unit = true 
)
inline

Accessor to set the value of one of the dimensions.

Parameters
[in]dimensionDimension for which the value is set.
[in]valueValue to be set for the dimension.
[in]apply_dim_correction(Optional) Flag to state whether apply dimension correction after setting one dimension. E.g. when permuting NCHW -> NHWC, 1x1x2 would become 2x1x1, but _num_dimensions should be 3 rather than 1.
[in]increase_dim_unit(Optional) Set to true if new unit dimensions increase the number of dimensions of the shape.
Returns
*this.

Definition at line 79 of file TensorShape.h.

References arm_compute::test::validation::fill(), and Dimensions< T >::set().

Referenced by GraphBuilder::add_convolution_node(), GraphBuilder::add_deconvolution_node(), GraphBuilder::add_depthwise_convolution_node(), GraphBuilder::add_scale_layer(), arm_compute::adjust_odd_shape(), TensorShape::broadcast_shape(), ITensorInfo::broadcast_shape_and_valid_region(), arm_compute::misc::shape_calculator::calculate_concatenate_shape(), arm_compute::misc::shape_calculator::calculate_reduce_mean_shape(), arm_compute::calculate_subsampled_shape(), arm_compute::calculate_valid_region_scale(), arm_compute::misc::shape_calculator::compute_deconvolution_upsampled_shape(), arm_compute::misc::shape_calculator::compute_gather_shape(), arm_compute::misc::shape_calculator::compute_interleaved_shape(), arm_compute::misc::shape_calculator::compute_lhs_reshaped_shape(), ReorgLayerNode::compute_output_descriptor(), DetectionOutputLayerNode::compute_output_descriptor(), PoolingLayerNode::compute_output_descriptor(), PriorBoxLayerNode::compute_output_descriptor(), DeconvolutionLayerNode::compute_output_descriptor(), SplitLayerNode::compute_output_descriptor(), FusedConvolutionBatchNormalizationWithPostOpsNode::compute_output_descriptor(), FusedConvolutionBatchNormalizationNode::compute_output_descriptor(), FusedDepthwiseConvolutionBatchNormalizationNode::compute_output_descriptor(), DepthwiseConvolutionLayerNode::compute_output_descriptor(), ConvolutionLayerNode::compute_output_descriptor(), FusedConvolutionWithPostOpNode::compute_output_descriptor(), arm_compute::misc::shape_calculator::compute_padded_shape(), arm_compute::misc::shape_calculator::compute_reductionB_shape(), arm_compute::misc::shape_calculator::compute_rhs_reshaped_shape(), arm_compute::misc::shape_calculator::compute_split_shape(), arm_compute::misc::shape_calculator::compute_stack_shape(), arm_compute::helpers::tensor_transform::compute_strided_slice_output_shape(), arm_compute::misc::shape_calculator::compute_tiled_shape(), arm_compute::misc::shape_calculator::compute_transpose1xW_shape(), arm_compute::misc::shape_calculator::compute_transpose1xW_with_element_size_shape(), arm_compute::misc::shape_calculator::compute_transposed_shape(), arm_compute::misc::shape_calculator::compute_unpool_shape(), AccessWindowTranspose::compute_valid_region(), AccessWindowStatic::compute_valid_region(), AccessWindowRectangle::compute_valid_region(), arm_compute::misc::shape_calculator::compute_vector_to_tensor_output_shape(), arm_compute::misc::shape_calculator::compute_weights_reshaped_shape(), CpuGemmMatrixMultiplyKernel::configure(), CpuSoftmaxGeneric< IS_LOG >::configure(), NEReduceMean::configure(), CLReduceMean::configure(), ClGemmConv2d::configure(), CpuGemmConv2d::configure(), ResizeLayerNode::configure_output(), PadLayerNode::configure_output(), ROIAlignLayerNode::configure_output(), SplitLayerNode::configure_output(), GpuSoftmax::create_op(), arm_compute::test::validation::DATA_TEST_CASE(), arm_compute::test::validation::reference::deconvolution_layer(), NPYLoader::fill_tensor(), arm_compute::test::index2coord(), arm_compute::index2coords(), NPYLoader::init_tensor(), arm_compute::intersect_valid_regions(), GpuSoftmax::is_supported_op(), arm_compute::permute(), arm_compute::test::validation::reference::scale_core(), GraphEdsr::setup(), Window::shape(), arm_compute::test::shape_to_valid_region(), arm_compute::test::validation::transpose(), ClSoftmax::validate(), CpuSoftmaxGeneric< IS_LOG >::validate(), NEReductionOperation::validate(), CLArgMinMaxLayer::validate(), ClGemmConv2d::validate(), CpuGemmConv2d::validate(), and CpuGemmLowpMatrixMultiplyCore::validate().

80  {
81  // Clear entire shape if one dimension is zero
82  if(value == 0)
83  {
84  _num_dimensions = 0;
85  std::fill(_id.begin(), _id.end(), 0);
86  }
87  else
88  {
89  // Make sure all empty dimensions are filled with 1
90  std::fill(_id.begin() + _num_dimensions, _id.end(), 1);
91 
92  // Set the specified dimension and increase the number of dimensions if
93  // necessary
94  Dimensions::set(dimension, value, increase_dim_unit);
95 
96  // Correct number dimensions to ignore trailing dimensions of size 1
97  if(apply_dim_correction)
98  {
99  apply_dimension_correction();
100  }
101  }
102  return *this;
103  }
void set(size_t dimension, T value, bool increase_dim_unit=true)
Accessor to set the value of one of the dimensions.
Definition: Dimensions.h:76
library fill(src, distribution, 0)

◆ shift_right()

void shift_right ( size_t  step)
inline

Shifts right the tensor shape increasing its dimensions.

Parameters
[in]stepRotation step

Definition at line 144 of file TensorShape.h.

References ARM_COMPUTE_ERROR_ON, Dimensions< size_t >::begin(), Dimensions< size_t >::end(), Dimensions< size_t >::num_dimensions(), Dimensions< size_t >::num_max_dimensions, and arm_compute::cpu::step.

Referenced by arm_compute::misc::shape_calculator::compute_col2im_shape(), arm_compute::misc::shape_calculator::compute_output_stage_shape(), and arm_compute::misc::shape_calculator::compute_softmax_shape().

145  {
147 
148  std::rotate(begin(), begin() + TensorShape::num_max_dimensions - step, end());
149  _num_dimensions += step;
150 
151  // Correct number dimensions to ignore trailing dimensions of size 1
152  apply_dimension_correction();
153  }
#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
std::array< size_t, num_max_dimensions >::iterator begin()
Returns a read/write iterator that points to the first element in the dimension array.
Definition: Dimensions.h:215
std::array< size_t, num_max_dimensions >::iterator end()
Returns a read/write iterator that points one past the last element in the dimension array...
Definition: Dimensions.h:239
constexpr int step
Definition: fp32.cpp:35
unsigned int num_dimensions() const
Returns the effective dimensionality of the tensor.
Definition: Dimensions.h:143
static constexpr size_t num_max_dimensions
Number of dimensions the tensor has.
Definition: Dimensions.h:46

◆ total_size()

size_t total_size ( ) const
inline

Collapses all dimensions to a single linear total size.

Returns
The total tensor size in terms of elements.

Definition at line 172 of file TensorShape.h.

References arm_compute::test::validation::reference::accumulate().

Referenced by arm_compute::auto_init_if_empty(), TensorInfo::auto_padding(), arm_compute::test::validation::reference::col2im(), arm_compute::misc::shape_calculator::compute_gather_shape(), ClMatMulLowpNativeKernel::configure(), CLSelectKernel::configure(), NESpaceToBatchLayer::configure(), CLSpaceToBatchLayer::configure(), GenerateProposalsLayerNode::configure_output(), EltwiseLayerNode::configure_output(), arm_compute::test::coord2index(), arm_compute::coords2index(), arm_compute::test::validation::DATA_TEST_CASE(), arm_compute::export_to_cl_image(), CpuComparisonKernel::get_available_kernels(), ClTemplateCast::get_window(), ClTemplateLogits1DMaxShiftExpSum::get_window(), ClTemplateLogits1DNorm::get_window(), ClTemplateReshape::get_window(), ClTemplateDepthwiseConv2d::get_window(), ClTemplateDirectConv2d::get_window(), ClTemplateElementwiseBinary::get_window(), ClTemplateResize::get_window(), ClTemplateActivation::get_window(), ClTemplatePool2d::get_window(), arm_compute::test::index2coord(), arm_compute::index2coords(), CpuMulKernel::name(), Accessor::num_elements(), CLAccessor::num_elements(), NumPyAccessor::NumPyAccessor(), arm_compute::test::validation::reference::reshape_layer(), CLComparisonKernel::run(), ClElementwiseKernel::run_op(), ClMulKernel::run_op(), ClComplexMulKernel::run_op(), arm_compute::set_shape_if_empty(), SubTensorInfo::set_tensor_shape(), SubTensorInfo::set_valid_region(), arm_compute::test::validation::TEST_CASE(), CPPSplit< CLSlice, ICLTensor >::validate(), NELogicalKernel::validate(), CpuConcatenate::validate(), ClConcatenate::validate(), ClComponentActivation::validate(), ClComponentResize::validate(), ClComponentElementwiseBinary::validate(), ClComponentLogits1DNorm::validate(), ClComponentLogits1DMaxShiftExpSum::validate(), and NEDeconvolutionLayer::validate().

173  {
174  return std::accumulate(_id.begin(), _id.end(), 1, std::multiplies<size_t>());
175  }
SimpleTensor< T2 > accumulate(const SimpleTensor< T1 > &src, DataType output_data_type)
Definition: Accumulate.cpp:38

◆ total_size_lower()

size_t total_size_lower ( size_t  dimension) const
inline

Compute size of dimensions lower than the given one.

Parameters
[in]dimensionUpper boundary.
Returns
The linear size of the collapsed dimensions.

Definition at line 194 of file TensorShape.h.

References arm_compute::test::validation::reference::accumulate(), ARM_COMPUTE_ERROR_ON, and Dimensions< size_t >::num_max_dimensions.

Referenced by ClPool2dKernel::configure(), CpuConvertFullyConnectedWeightsKernel::validate(), and ClConvertFullyConnectedWeightsKernel::validate().

195  {
197  return std::accumulate(_id.begin(), _id.begin() + dimension, 1, std::multiplies<size_t>());
198  }
#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
SimpleTensor< T2 > accumulate(const SimpleTensor< T1 > &src, DataType output_data_type)
Definition: Accumulate.cpp:38
static constexpr size_t num_max_dimensions
Number of dimensions the tensor has.
Definition: Dimensions.h:46

◆ total_size_upper()

size_t total_size_upper ( size_t  dimension) const
inline

Collapses given dimension and above.

Parameters
[in]dimensionSize of the wanted dimension
Returns
The linear size of the collapsed dimensions

Definition at line 182 of file TensorShape.h.

References arm_compute::test::validation::reference::accumulate(), ARM_COMPUTE_ERROR_ON, and Dimensions< size_t >::num_max_dimensions.

Referenced by ClKernelRuntime::configure(), ClWinogradInputTransformKernel::configure(), ClWinogradOutputTransformKernel::configure(), ITensor::copy_from(), arm_compute::test::validation::reference::fully_connected_layer(), and ClWinogradInputTransformKernel::run_op().

183  {
185  return std::accumulate(_id.begin() + dimension, _id.end(), 1, std::multiplies<size_t>());
186  }
#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
SimpleTensor< T2 > accumulate(const SimpleTensor< T1 > &src, DataType output_data_type)
Definition: Accumulate.cpp:38
static constexpr size_t num_max_dimensions
Number of dimensions the tensor has.
Definition: Dimensions.h:46

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