Struct re_types::datatypes::TensorData

source ·
pub struct TensorData {
    pub shape: Vec<TensorDimension>,
    pub buffer: TensorBuffer,
}
Expand description

Datatype: A multi-dimensional Tensor of data.

The number of dimensions and their respective lengths is specified by the shape field. The dimensions are ordered from outermost to innermost. For example, in the common case of a 2D RGB Image, the shape would be [height, width, channel].

These dimensions are combined with an index to look up values from the buffer field, which stores a contiguous array of typed values.

Note that the buffer may be encoded in a compressed format such as jpeg or in a format with downsampled chroma, such as NV12 or YUY2. For file formats, the shape is used as a hint, for chroma downsampled format the shape has to be the shape of the decoded image.

Fields§

§shape: Vec<TensorDimension>

The shape of the tensor, including optional names for each dimension.

§buffer: TensorBuffer

The content/data.

Implementations§

source§

impl TensorData

source

pub fn new(shape: Vec<TensorDimension>, buffer: TensorBuffer) -> Self

Create a new tensor.

source

pub fn shape(&self) -> &[TensorDimension]

The shape of the tensor, including optional dimension names.

source

pub fn shape_short(&self) -> &[TensorDimension]

Returns the shape of the tensor with all leading & trailing dimensions of size 1 ignored.

If all dimension sizes are one, this returns only the first dimension.

source

pub fn num_dim(&self) -> usize

The number of dimensions of the tensor.

An image tensor will usually have two (height, width) or three (height, width, channels) dimensions.

source

pub fn image_height_width_channels(&self) -> Option<[u64; 3]>

If the tensor can be interpreted as an image, return the height, width, and channels/depth of it.

source

pub fn is_shaped_like_an_image(&self) -> bool

Returns true if the tensor can be interpreted as an image.

source

pub fn is_vector(&self) -> bool

Returns true if either all dimensions have size 1 or only a single dimension has a size larger than 1.

Empty tensors return false.

source

pub fn get_with_image_coords( &self, x: u64, y: u64, channel: u64 ) -> Option<TensorElement>

Query with x, y, channel indices.

Allows to query values for any image-like tensor even if it has more or less dimensions than 3. (useful for sampling e.g. N x M x C x 1 tensor which is a valid image)

source

pub fn get(&self, index: &[u64]) -> Option<TensorElement>

Get the value of the element at the given index.

Return None if out-of-bounds, or if the tensor is encoded (e.g. TensorBuffer::Jpeg).

source

pub fn get_nv12_pixel(&self, x: u64, y: u64) -> Option<[u8; 3]>

Returns decoded RGB8 value at the given image coordinates if this tensor is a NV12 image.

If the tensor is not TensorBuffer::Nv12, None is returned.

It is undefined what happens if the coordinate is out-of-bounds.

source

pub fn get_yuy2_pixel(&self, x: u64, y: u64) -> Option<[u8; 3]>

Returns decoded RGB8 value at the given image coordinates if this tensor is a YUY2 image.

If the tensor is not TensorBuffer::Yuy2, None is returned.

It is undefined what happens if the coordinate is out-of-bounds.

source

pub fn dtype(&self) -> TensorDataType

The datatype of the tensor.

source

pub fn size_in_bytes(&self) -> usize

The size of the tensor data, in bytes.

Trait Implementations§

source§

impl AsRef<TensorData> for DecodedTensor

source§

fn as_ref(&self) -> &TensorData

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<TensorData> for DecodedTensor

source§

fn borrow(&self) -> &TensorData

Immutably borrows from an owned value. Read more
source§

impl Borrow<TensorData> for TensorData

source§

fn borrow(&self) -> &TensorData

Immutably borrows from an owned value. Read more
source§

impl Clone for TensorData

source§

fn clone(&self) -> TensorData

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 TensorData

source§

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

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

impl From<&[f16]> for TensorData

source§

fn from(slice: &[f16]) -> Self

Converts to this type from the input type.
source§

impl From<&[f32]> for TensorData

source§

fn from(slice: &[f32]) -> Self

Converts to this type from the input type.
source§

impl From<&[f64]> for TensorData

source§

fn from(slice: &[f64]) -> Self

Converts to this type from the input type.
source§

impl From<&[i16]> for TensorData

source§

fn from(slice: &[i16]) -> Self

Converts to this type from the input type.
source§

impl From<&[i32]> for TensorData

source§

fn from(slice: &[i32]) -> Self

Converts to this type from the input type.
source§

impl From<&[i64]> for TensorData

source§

fn from(slice: &[i64]) -> Self

Converts to this type from the input type.
source§

impl From<&[i8]> for TensorData

source§

fn from(slice: &[i8]) -> Self

Converts to this type from the input type.
source§

impl From<&[u16]> for TensorData

source§

fn from(slice: &[u16]) -> Self

Converts to this type from the input type.
source§

impl From<&[u32]> for TensorData

source§

fn from(slice: &[u32]) -> Self

Converts to this type from the input type.
source§

impl From<&[u64]> for TensorData

source§

fn from(slice: &[u64]) -> Self

Converts to this type from the input type.
source§

impl From<&[u8]> for TensorData

source§

fn from(slice: &[u8]) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a TensorData> for Cow<'a, TensorData>

source§

fn from(value: &'a TensorData) -> Self

Converts to this type from the input type.
source§

impl<'a> From<TensorData> for Cow<'a, TensorData>

source§

fn from(value: TensorData) -> Self

Converts to this type from the input type.
source§

impl From<Vec<f16>> for TensorData

source§

fn from(vec: Vec<f16>) -> Self

Converts to this type from the input type.
source§

impl From<Vec<f32>> for TensorData

source§

fn from(vec: Vec<f32>) -> Self

Converts to this type from the input type.
source§

impl From<Vec<f64>> for TensorData

source§

fn from(vec: Vec<f64>) -> Self

Converts to this type from the input type.
source§

impl From<Vec<i16>> for TensorData

source§

fn from(vec: Vec<i16>) -> Self

Converts to this type from the input type.
source§

impl From<Vec<i32>> for TensorData

source§

fn from(vec: Vec<i32>) -> Self

Converts to this type from the input type.
source§

impl From<Vec<i64>> for TensorData

source§

fn from(vec: Vec<i64>) -> Self

Converts to this type from the input type.
source§

impl From<Vec<i8>> for TensorData

source§

fn from(vec: Vec<i8>) -> Self

Converts to this type from the input type.
source§

impl From<Vec<u16>> for TensorData

source§

fn from(vec: Vec<u16>) -> Self

Converts to this type from the input type.
source§

impl From<Vec<u32>> for TensorData

source§

fn from(vec: Vec<u32>) -> Self

Converts to this type from the input type.
source§

impl From<Vec<u64>> for TensorData

source§

fn from(vec: Vec<u64>) -> Self

Converts to this type from the input type.
source§

impl From<Vec<u8>> for TensorData

source§

fn from(vec: Vec<u8>) -> Self

Converts to this type from the input type.
source§

impl Loggable for TensorData

§

type Name = DatatypeName

source§

fn name() -> Self::Name

The fully-qualified name of this loggable, e.g. rerun.datatypes.Vec2D.
source§

fn arrow_datatype() -> DataType

The underlying arrow2::datatypes::DataType, excluding datatype extensions.
source§

fn to_arrow_opt<'a>( data: impl IntoIterator<Item = Option<impl Into<Cow<'a, Self>>>> ) -> SerializationResult<Box<dyn Array>>
where Self: Clone + 'a,

Given an iterator of options of owned or reference values to the current Loggable, serializes them into an Arrow array. The Arrow array’s datatype will match Loggable::arrow_field. Read more
source§

fn from_arrow_opt( arrow_data: &dyn Array ) -> DeserializationResult<Vec<Option<Self>>>
where Self: Sized,

Given an Arrow array, deserializes it into a collection of optional Loggables. Read more
source§

fn extended_arrow_datatype() -> DataType

The underlying arrow2::datatypes::DataType, including datatype extensions. Read more
source§

fn arrow_field() -> Field

The underlying arrow2::datatypes::Field, including datatype extensions. Read more
source§

fn to_arrow<'a>( data: impl IntoIterator<Item = impl Into<Cow<'a, Self>>> ) -> Result<Box<dyn Array>, SerializationError>
where Self: 'a,

Given an iterator of owned or reference values to the current Loggable, serializes them into an Arrow array. The Arrow array’s datatype will match Loggable::arrow_field. Read more
source§

fn from_arrow( data: &(dyn Array + 'static) ) -> Result<Vec<Self>, DeserializationError>

Given an Arrow array, deserializes it into a collection of Loggables. Read more
source§

impl PartialEq for TensorData

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl SizeBytes for TensorData

source§

fn heap_size_bytes(&self) -> u64

Returns the total size of self on the heap, in bytes.
source§

fn is_pod() -> bool

Is Self just plain old data? Read more
source§

fn total_size_bytes(&self) -> u64

Returns the total size of self in bytes, accounting for both stack and heap space.
source§

fn stack_size_bytes(&self) -> u64

Returns the total size of self on the stack, in bytes. Read more
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, f16>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, f16>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, f32>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, f64>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, i16>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, i32>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, i64>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, i8>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, u16>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, u32>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, u64>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<&'a TensorData> for ArrayViewD<'a, u8>

§

type Error = TensorCastError

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

fn try_from(value: &'a TensorData) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<f16>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<f16, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<f16>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<f16, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<f32>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<f32, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<f64>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<f64, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<i16>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<i16, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<i32>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<i32, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<i64>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<i64, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<i8>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<i8, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<u16>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<u16, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<u32>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<u32, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<u64>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<u64, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<D: Dimension> TryFrom<ArrayBase<OwnedRepr<u8>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(value: Array<u8, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a f16>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, f16, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a f16>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, f16, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a f32>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, f32, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a f64>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, f64, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a i16>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, i16, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a i32>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, i32, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a i64>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, i64, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a i8>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, i8, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a u16>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, u16, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a u32>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, u32, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a u64>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, u64, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a, D: Dimension> TryFrom<ArrayBase<ViewRepr<&'a u8>, D>> for TensorData

§

type Error = TensorCastError

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

fn try_from(view: ArrayView<'a, u8, D>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<TensorData> for DecodedTensor

§

type Error = TensorData

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

fn try_from(tensor: TensorData) -> Result<Self, TensorData>

Performs the conversion.
source§

impl StructuralPartialEq for TensorData

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> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<L> LoggableBatch for L
where L: Clone + Loggable,

§

type Name = <L as Loggable>::Name

source§

fn name(&self) -> <L as LoggableBatch>::Name

The fully-qualified name of this batch, e.g. rerun.datatypes.Vec2D.
source§

fn num_instances(&self) -> usize

The number of component instances stored into this batch.
source§

fn arrow_field(&self) -> Field

The underlying arrow2::datatypes::Field, including datatype extensions.
source§

fn to_arrow(&self) -> Result<Box<dyn Array>, SerializationError>

Serializes the batch into an Arrow array.
source§

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

§

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>,

§

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>,

§

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.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<L> Datatype for L
where L: Loggable<Name = DatatypeName>,

source§

impl<D> DatatypeBatch for D
where D: Datatype,