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_typeis the data type of individual tensor elements.list_sizeis 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_namescan 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]whereNis 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 numberpermutations[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: DataTypeThe data type of individual tensor elements.
metadata: FixedShapeTensorMetadataThe metadata of this extension type.
Implementations§
Source§impl FixedShapeTensor
impl FixedShapeTensor
Sourcepub fn try_new(
value_type: DataType,
shape: impl IntoIterator<Item = usize>,
dimension_names: Option<Vec<String>>,
permutations: Option<Vec<usize>>,
) -> Result<Self, ArrowError>
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.
Sourcepub fn value_type(&self) -> &DataType
pub fn value_type(&self) -> &DataType
Returns the value type of the individual tensor elements.
Sourcepub fn dimensions(&self) -> usize
pub fn dimensions(&self) -> usize
Returns the number of dimensions in this fixed shape tensor.
Sourcepub fn dimension_names(&self) -> Option<&[String]>
pub fn dimension_names(&self) -> Option<&[String]>
Returns the names of the dimensions in this fixed shape tensor, if set.
Sourcepub fn permutations(&self) -> Option<&[usize]>
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
impl Clone for FixedShapeTensor
Source§impl Debug for FixedShapeTensor
impl Debug for FixedShapeTensor
Source§impl ExtensionType for FixedShapeTensor
impl ExtensionType for FixedShapeTensor
Source§const NAME: &'static str = "arrow.fixed_shape_tensor"
const NAME: &'static str = "arrow.fixed_shape_tensor"
Source§type Metadata = FixedShapeTensorMetadata
type Metadata = FixedShapeTensorMetadata
Source§fn metadata(&self) -> &Self::Metadata
fn metadata(&self) -> &Self::Metadata
&() if
if this extension type defines no metadata (Self::Metadata=()).Source§fn serialize_metadata(&self) -> Option<String>
fn serialize_metadata(&self) -> Option<String>
None if this extension type defines no metadata
(Self::Metadata=()). Read moreSource§fn deserialize_metadata(
metadata: Option<&str>,
) -> Result<Self::Metadata, ArrowError>
fn deserialize_metadata( metadata: Option<&str>, ) -> Result<Self::Metadata, ArrowError>
None for the serialized metadata and return
Ok(()). Read moreSource§fn supports_data_type(&self, data_type: &DataType) -> Result<(), ArrowError>
fn supports_data_type(&self, data_type: &DataType) -> Result<(), ArrowError>
Ok(()) iff the given data type is supported by this extension
type.