Struct tract_core::internal::Tensor

source ·
pub struct Tensor { /* private fields */ }
Expand description

Tensor is a concrete tensor in tract.

Implementations§

source§

impl Tensor

source

pub unsafe fn uninitialized<T>(shape: &[usize]) -> Result<Tensor, Error>
where T: Datum,

Create an uninitialized tensor (dt as type paramater).

source

pub unsafe fn uninitialized_dt( dt: DatumType, shape: &[usize] ) -> Result<Tensor, Error>

Create an uninitialized tensor (dt as regular parameter).

source

pub unsafe fn uninitialized_aligned<T>( shape: &[usize], alignment: usize ) -> Result<Tensor, Error>
where T: Datum,

Create an uninitialized tensor with a given alignment (in bytes).

source

pub unsafe fn uninitialized_aligned_dt( dt: DatumType, shape: &[usize], alignment: usize ) -> Result<Tensor, Error>

Create an uninitialized tensor with a given alignment (in bytes).

source

pub fn stack_tensors( axis: usize, tensors: &[impl Borrow<Tensor>] ) -> Result<Tensor, Error>

source

pub fn clear<T>(&mut self) -> Result<(), Error>
where T: Datum + Zero + Clone,

source

pub fn zero<T>(shape: &[usize]) -> Result<Tensor, Error>
where T: Datum + Zero,

source

pub fn zero_scalar<T>() -> Result<Tensor, Error>
where T: Datum + Zero,

source

pub fn zero_scalar_dt(dt: DatumType) -> Result<Tensor, Error>

source

pub fn zero_dt(dt: DatumType, shape: &[usize]) -> Result<Tensor, Error>

source

pub fn fill_t<T>(&mut self, value: T) -> Result<(), Error>
where T: Datum + Clone,

source

pub fn zero_aligned_dt( dt: DatumType, shape: &[usize], alignment: usize ) -> Result<Tensor, Error>

source

pub fn zero_aligned<T>( shape: &[usize], alignment: usize ) -> Result<Tensor, Error>
where T: Datum + Zero,

source

pub fn from_shape<T>(shape: &[usize], data: &[T]) -> Result<Tensor, Error>
where T: Datum + Copy,

Create a tensor with a given shape and a slice of elements. The data is copied and aligned to size of T.

source

pub fn from_shape_align<T>( shape: &[usize], data: &[T], align: usize ) -> Result<Tensor, Error>
where T: Datum + Copy,

Create a tensor with a given shape and a slice of elements. The data is copied and aligned to given alignment.

source

pub unsafe fn from_raw<T>( shape: &[usize], content: &[u8] ) -> Result<Tensor, Error>
where T: Datum,

Create a tensor from raw data.

It copies the data, aligning it to the size of T.

source

pub unsafe fn from_raw_aligned<T>( shape: &[usize], content: &[u8], align: usize ) -> Result<Tensor, Error>
where T: Datum,

source

pub unsafe fn from_raw_dt( dt: DatumType, shape: &[usize], content: &[u8] ) -> Result<Tensor, Error>

source

pub unsafe fn from_raw_dt_align( dt: DatumType, shape: &[usize], content: &[u8], align: usize ) -> Result<Tensor, Error>

source

pub unsafe fn from_slice_align<T>( content: &[T], align: usize ) -> Result<Tensor, Error>
where T: Datum,

source

pub fn rank(&self) -> usize

Get the number of dimensions (or axes) of the tensor.

source

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

Get the shape of the tensor.

source

pub fn len(&self) -> usize

Get the number of valeus in the tensor.

source

pub fn strides(&self) -> &[isize]

Get the shape of the tensor.

source

pub unsafe fn set_shape_unchecked(&mut self, shape: &[usize])

Force the tensor shape, no consistency check.

source

pub fn set_shape(&mut self, shape: &[usize]) -> Result<(), Error>

Force the tensor shape.

source

pub fn permute_axes(self, axes: &[usize]) -> Result<Tensor, Error>

source

pub fn move_axis(self, from: usize, to: usize) -> Result<Tensor, Error>

source

pub fn collapse_axis_with_next(self, axis: usize) -> Tensor

source

pub fn split_axis(self, axis: usize, outer_dim: usize) -> Result<Tensor, Error>

source

pub fn into_shape(self, shape: &[usize]) -> Result<Tensor, Error>

Reshape the tensor to shape.

source

pub fn insert_axis(&mut self, axis: usize) -> Result<(), Error>

source

pub fn remove_axis(&mut self, axis: usize) -> Result<(), Error>

source

pub fn broadcast_into_rank(self, rank: usize) -> Result<Tensor, Error>

source

pub fn broadcast_to_rank(&mut self, rank: usize) -> Result<(), Error>

source

pub fn broadcast_scalar_to_shape( &self, shape: &[usize] ) -> Result<Tensor, Error>

source

pub fn broadcast_to_shape(&self, shape: &[usize]) -> Result<Tensor, Error>

source

pub fn broadcast_vector_to_shape( &self, shape: &[usize], axis: usize ) -> Result<Tensor, Error>

source

pub fn assign_slice( &mut self, range: impl RangeBounds<usize>, src: &Tensor, src_range: impl RangeBounds<usize>, axis: usize ) -> Result<(), Error>

source

pub unsafe fn assign_slice_unchecked( &mut self, range: impl RangeBounds<usize>, src: &Tensor, src_range: impl RangeBounds<usize>, axis: usize )

source

pub fn datum_type(&self) -> DatumType

Get the datum type of the tensor.

source

pub unsafe fn set_datum_type(&mut self, dt: DatumType)

Set the datum type of the tensor.

source

pub fn dump(&self, force_full: bool) -> Result<String, Error>

Dump the tensor in a human readable form.

force_full will force the tensor to be dump in full even if it is big.

source

pub fn close_enough( &self, other: &Tensor, approx: impl Into<Approximation> + Debug ) -> Result<(), Error>

Compare two tensors, allowing for rounding errors.

source

pub fn into_array<D>( self ) -> Result<ArrayBase<OwnedRepr<D>, Dim<IxDynImpl>>, Error>
where D: Datum,

Transform the tensor into a ndarray::Array.

source

pub unsafe fn into_array_unchecked<D>( self ) -> ArrayBase<OwnedRepr<D>, Dim<IxDynImpl>>
where D: Datum,

Transform the tensor into a ndarray::Array.

source

pub fn to_array_view<D>( &self ) -> Result<ArrayBase<ViewRepr<&D>, Dim<IxDynImpl>>, Error>
where D: Datum,

Transform the data as a ndarray::Array.

source

pub fn to_array_view_mut<D>( &mut self ) -> Result<ArrayBase<ViewRepr<&mut D>, Dim<IxDynImpl>>, Error>
where D: Datum,

Transform the data as a mutable ndarray::Array.

source

pub unsafe fn to_array_view_unchecked<D>( &self ) -> ArrayBase<ViewRepr<&D>, Dim<IxDynImpl>>
where D: Datum,

Transform the data as a ndarray::Array.

source

pub unsafe fn to_array_view_mut_unchecked<D>( &mut self ) -> ArrayBase<ViewRepr<&mut D>, Dim<IxDynImpl>>
where D: Datum,

Transform the data as a mutable ndarray::Array.

source

pub fn as_ptr<D>(&self) -> Result<*const D, Error>
where D: Datum,

Access the data as a pointer.

source

pub unsafe fn as_ptr_unchecked<D>(&self) -> *const D
where D: Datum,

Access the data as a pointer.

source

pub unsafe fn as_ptr_mut_unchecked<D>(&mut self) -> *mut D
where D: Datum,

Access the data as a pointer.

source

pub fn as_ptr_mut<D>(&mut self) -> Result<*mut D, Error>
where D: Datum,

Access the data as a mutable pointer.

source

pub fn as_slice<D>(&self) -> Result<&[D], Error>
where D: Datum,

Access the data as a slice.

source

pub fn as_slice_mut<D>(&mut self) -> Result<&mut [D], Error>
where D: Datum,

Access the data as a mutable slice.

source

pub unsafe fn as_slice_unchecked<D>(&self) -> &[D]
where D: Datum,

Access the data as a slice.

source

pub unsafe fn as_slice_mut_unchecked<D>(&mut self) -> &mut [D]
where D: Datum,

Access the data as a mutable slice.

source

pub fn to_scalar<D>(&self) -> Result<&D, Error>
where D: Datum,

Access the data as a scalar.

source

pub fn to_scalar_tensor(&self) -> Result<Tensor, Error>

Make the tensor a scalar tensor (assumes it contains a single value).

source

pub unsafe fn to_scalar_unchecked<D>(&self) -> &D
where D: Datum,

Access the data as a scalar.

source

pub fn to_scalar_mut<D>(&mut self) -> Result<&mut D, Error>
where D: Datum,

Mutable access the data as a scalar.

source

pub unsafe fn to_scalar_mut_unchecked<D>(&mut self) -> &mut D
where D: Datum,

Mutable access the data as a scalar.

source

pub fn as_bytes(&self) -> &[u8]

source

pub fn as_bytes_mut(&mut self) -> &mut [u8]

source

pub fn is_uniform(&self) -> bool

source

pub fn as_uniform(&self) -> Option<Tensor>

source

pub fn is_zero(&self) -> Result<bool, Error>

source

pub fn cast_to<D>(&self) -> Result<Cow<'_, Tensor>, Error>
where D: Datum,

Optionnaly convert data to a tensor for a new DatumType.

source

pub fn cast_to_dt(&self, dst_dt: DatumType) -> Result<Cow<'_, Tensor>, Error>

Optionnaly convert data to a tensor for a new DatumType.

source

pub fn cast_to_scalar<D>(&self) -> Result<D, Error>
where D: Datum + Copy,

Access the data as a scalar, after a cast.

source

pub fn nth(&self, nth: usize) -> Result<Tensor, Error>

Access the nth element of the tensor, returned as a 0-rank Tensor

source

pub fn deep_clone(&self) -> Tensor

source

pub fn slice( &self, axis: usize, start: usize, end: usize ) -> Result<Tensor, Error>

source

pub fn view(&self) -> TensorView<'_>

source

pub fn view_at_prefix(&self, prefix: &[usize]) -> Result<TensorView<'_>, Error>

source

pub fn view_offsetting(&self, coords: &[usize]) -> Result<TensorView<'_>, Error>

source

pub unsafe fn view_offsetting_unchecked( &self, coords: &[usize] ) -> TensorView<'_>

source

pub fn view_mut(&mut self) -> TensorView<'_>

source

pub fn view_at_prefix_mut( &mut self, prefix: &[usize] ) -> Result<TensorView<'_>, Error>

source

pub fn view_offsetting_mut( &mut self, coords: &[usize] ) -> Result<TensorView<'_>, Error>

source

pub fn offset_u8_as_i8(self: &Arc<Tensor>) -> Arc<Tensor>

Offsets the tensor as an i8 type if it’s an u8 type, otherwise passes it unchanged.

source

pub fn offset_i8_as_u8(self: &Arc<Tensor>) -> Arc<Tensor>

Offsets the tensor as an u8 type if it’s an i8 type, otherwise passes it unchanged.

source

pub fn to_aligned_default(&self) -> Result<Tensor, Error>

Trait Implementations§

source§

impl Borrow<Tensor> for TValue

source§

fn borrow(&self) -> &Tensor

Immutably borrows from an owned value. Read more
source§

impl Clone for Tensor

source§

fn clone(&self) -> Tensor

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 Tensor

source§

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

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

impl Default for Tensor

source§

fn default() -> Tensor

Returns the “default value” for a type. Read more
source§

impl Drop for Tensor

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<D, T> From<ArrayBase<OwnedRepr<T>, D>> for Tensor
where D: Dimension, T: Datum,

source§

fn from(it: ArrayBase<OwnedRepr<T>, D>) -> Tensor

Converts to this type from the input type.
source§

impl From<Blob> for Tensor

source§

fn from(it: Blob) -> Tensor

Converts to this type from the input type.
source§

impl From<Opaque> for Tensor

source§

fn from(it: Opaque) -> Tensor

Converts to this type from the input type.
source§

impl From<String> for Tensor

source§

fn from(it: String) -> Tensor

Converts to this type from the input type.
source§

impl From<TDim> for Tensor

source§

fn from(it: TDim) -> Tensor

Converts to this type from the input type.
source§

impl From<Tensor> for TValue

source§

fn from(t: Tensor) -> Self

Converts to this type from the input type.
source§

impl From<Tensor> for TypedFact

source§

fn from(t: Tensor) -> TypedFact

Converts to this type from the input type.
source§

impl From<bool> for Tensor

source§

fn from(it: bool) -> Tensor

Converts to this type from the input type.
source§

impl From<f16> for Tensor

source§

fn from(it: f16) -> Tensor

Converts to this type from the input type.
source§

impl From<f32> for Tensor

source§

fn from(it: f32) -> Tensor

Converts to this type from the input type.
source§

impl From<f64> for Tensor

source§

fn from(it: f64) -> Tensor

Converts to this type from the input type.
source§

impl From<i16> for Tensor

source§

fn from(it: i16) -> Tensor

Converts to this type from the input type.
source§

impl From<i32> for Tensor

source§

fn from(it: i32) -> Tensor

Converts to this type from the input type.
source§

impl From<i64> for Tensor

source§

fn from(it: i64) -> Tensor

Converts to this type from the input type.
source§

impl From<i8> for Tensor

source§

fn from(it: i8) -> Tensor

Converts to this type from the input type.
source§

impl From<u16> for Tensor

source§

fn from(it: u16) -> Tensor

Converts to this type from the input type.
source§

impl From<u32> for Tensor

source§

fn from(it: u32) -> Tensor

Converts to this type from the input type.
source§

impl From<u64> for Tensor

source§

fn from(it: u64) -> Tensor

Converts to this type from the input type.
source§

impl From<u8> for Tensor

source§

fn from(it: u8) -> Tensor

Converts to this type from the input type.
source§

impl Hash for Tensor

source§

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl IntoArcTensor for Tensor

source§

fn into_arc_tensor(self) -> Arc<Tensor>

Convert Self to a Arc. Read more
source§

impl IntoTValue for Tensor

source§

impl IntoTensor for Tensor

source§

fn into_tensor(self) -> Tensor

Convert Self to a Tensor. Read more
source§

impl PartialEq for Tensor

source§

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

source§

impl Send for Tensor

source§

impl Sync for Tensor

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> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

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

source§

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

source§

impl<T> DynHash for T
where T: Hash + ?Sized,

source§

fn dyn_hash(&self, state: &mut dyn Hasher)

source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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> 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<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.