Struct VariableShapeTensor

Source
pub struct VariableShapeTensor {
    value_type: DataType,
    dimensions: usize,
    metadata: VariableShapeTensorMetadata,
}
Expand description

The extension type for VariableShapeTensor.

Extension name: arrow.variable_shape_tensor.

The storage type of the extension is: StructArray where struct is composed of data and shape fields describing a single tensor per row:

  • data is a List holding tensor elements (each list element is a single tensor). The List’s value type is the value type of the tensor, such as an integer or floating-point type.
  • shape is a FixedSizeList<int32>[ndim] of the tensor shape where the size of the list ndim is equal to the number of dimensions of the tensor.

Extension type parameters: value_type: the Arrow data type of individual tensor elements.

Optional parameters describing the logical layout:

  • dim_names: explicit names to tensor dimensions as an array. The length of it should be equal to the shape length and equal to the number of dimensions. dim_names can be used if the dimensions have well-known names and they map to the physical layout (row-major).
  • permutation: indices of the desired ordering of the original dimensions, defined as an array. The indices contain a permutation of the values [0, 1, .., N-1] where N is the number of dimensions. The permutation indicates which dimension of the logical layout corresponds to which dimension of the physical tensor (the i-th dimension of the logical view corresponds to the dimension with number permutations[i] of the physical tensor). Permutation can be useful in case the logical order of the tensor is a permutation of the physical order (row-major). When logical and physical layout are equal, the permutation will always be ([0, 1, .., N-1]) and can therefore be left out.
  • uniform_shape: sizes of individual tensor’s dimensions which are guaranteed to stay constant in uniform dimensions and can vary in non- uniform dimensions. This holds over all tensors in the array. Sizes in uniform dimensions are represented with int32 values, while sizes of the non-uniform dimensions are not known in advance and are represented with null. If uniform_shape is not provided it is assumed that all dimensions are non-uniform. An array containing a tensor with shape (2, 3, 4) and whose first and last dimensions are uniform would have uniform_shape (2, null, 4). This allows for interpreting the tensor correctly without accounting for uniform dimensions while still permitting optional optimizations that take advantage of the uniformity.

https://arrow.apache.org/docs/format/CanonicalExtensions.html#variable-shape-tensor

Fields§

§value_type: DataType

The data type of individual tensor elements.

§dimensions: usize

The number of dimensions of the tensor.

§metadata: VariableShapeTensorMetadata

The metadata of this extension type.

Implementations§

Source§

impl VariableShapeTensor

Source

pub fn try_new( value_type: DataType, dimensions: usize, dimension_names: Option<Vec<String>>, permutations: Option<Vec<usize>>, uniform_shapes: Option<Vec<Option<i32>>>, ) -> Result<Self, ArrowError>

Returns a new variable shape tensor extension type.

§Error

Return an error if the provided dimension names, permutations or uniform shapes are invalid.

Source

pub fn value_type(&self) -> &DataType

Returns the value type of the individual tensor elements.

Source

pub fn dimensions(&self) -> usize

Returns the number of dimensions in this variable shape tensor.

Source

pub fn dimension_names(&self) -> Option<&[String]>

Returns the names of the dimensions in this variable shape tensor, if set.

Source

pub fn permutations(&self) -> Option<&[usize]>

Returns the indices of the desired ordering of the original dimensions, if set.

Source

pub fn uniform_shapes(&self) -> Option<&[Option<i32>]>

Returns sizes of individual tensor’s dimensions which are guaranteed to stay constant in uniform dimensions and can vary in non-uniform dimensions.

Trait Implementations§

Source§

impl Clone for VariableShapeTensor

Source§

fn clone(&self) -> VariableShapeTensor

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for VariableShapeTensor

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl ExtensionType for VariableShapeTensor

Source§

const NAME: &'static str = "arrow.variable_shape_tensor"

The name identifying this extension type. Read more
Source§

type Metadata = VariableShapeTensorMetadata

The metadata type of this extension type. Read more
Source§

fn metadata(&self) -> &Self::Metadata

Returns a reference to the metadata of this extension type, or &() if if this extension type defines no metadata (Self::Metadata=()).
Source§

fn serialize_metadata(&self) -> Option<String>

Returns the serialized representation of the metadata of this extension type, or None if this extension type defines no metadata (Self::Metadata=()). Read more
Source§

fn deserialize_metadata( metadata: Option<&str>, ) -> Result<Self::Metadata, ArrowError>

Deserialize the metadata of this extension type from the serialized representation of the metadata. An extension type that defines no metadata should expect None for the serialized metadata and return Ok(()). Read more
Source§

fn supports_data_type(&self, data_type: &DataType) -> Result<(), ArrowError>

Returns OK()) iff the given data type is supported by this extension type.
Source§

fn try_new( data_type: &DataType, metadata: Self::Metadata, ) -> Result<Self, ArrowError>

Construct this extension type for a field with the given data type and metadata. Read more
Source§

impl From<VariableShapeTensor> for CanonicalExtensionType

Source§

fn from(value: VariableShapeTensor) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for VariableShapeTensor

Source§

fn eq(&self, other: &VariableShapeTensor) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for VariableShapeTensor

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.