Struct FixedShapeTensor

Source
pub struct FixedShapeTensor {
    value_type: DataType,
    metadata: FixedShapeTensorMetadata,
}
Expand description

The extension type for fixed shape tensor.

Extension name: arrow.fixed_shape_tensor.

The storage type of the extension: FixedSizeList where:

  • value_type is the data type of individual tensor elements.
  • list_size is the product of all the elements in tensor shape.

Extension type parameters:

  • value_type: the Arrow data type of individual tensor elements.
  • shape: the physical shape of the contained tensors as an array.

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.

Description of the serialization: The metadata must be a valid JSON object including shape of the contained tensors as an array with key shape plus optional dimension names with keys dim_names and ordering of the dimensions with key permutation. Example: { "shape": [2, 5]} Example with dim_names metadata for NCHW ordered data: { "shape": [100, 200, 500], "dim_names": ["C", "H", "W"]} Example of permuted 3-dimensional tensor: { "shape": [100, 200, 500], "permutation": [2, 0, 1]}

This is the physical layout shape and the shape of the logical layout would in this case be [500, 100, 200].

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

Fields§

§value_type: DataType

The data type of individual tensor elements.

§metadata: FixedShapeTensorMetadata

The metadata of this extension type.

Implementations§

Source§

impl FixedShapeTensor

Source

pub fn try_new( value_type: DataType, shape: impl IntoIterator<Item = usize>, dimension_names: Option<Vec<String>>, permutations: Option<Vec<usize>>, ) -> Result<Self, ArrowError>

Returns a new fixed shape tensor extension type.

§Error

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

Source

pub fn value_type(&self) -> &DataType

Returns the value type of the individual tensor elements.

Source

pub fn list_size(&self) -> usize

Returns the product of all the elements in tensor shape.

Source

pub fn dimensions(&self) -> usize

Returns the number of dimensions in this fixed shape tensor.

Source

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

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

Source

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

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

Trait Implementations§

Source§

impl Clone for FixedShapeTensor

Source§

fn clone(&self) -> FixedShapeTensor

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 FixedShapeTensor

Source§

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

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

impl ExtensionType for FixedShapeTensor

Source§

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

The name identifying this extension type. Read more
Source§

type Metadata = FixedShapeTensorMetadata

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<FixedShapeTensor> for CanonicalExtensionType

Source§

fn from(value: FixedShapeTensor) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for FixedShapeTensor

Source§

fn eq(&self, other: &FixedShapeTensor) -> 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 FixedShapeTensor

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.