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]
whereN
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 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: DataType
The data type of individual tensor elements.
metadata: FixedShapeTensorMetadata
The 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§fn clone(&self) -> FixedShapeTensor
fn clone(&self) -> FixedShapeTensor
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§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.