Struct tract_core::internal::Tensor
source · pub struct Tensor { /* private fields */ }
Expand description
Tensor is a concrete tensor in tract.
Implementations§
source§impl Tensor
impl Tensor
sourcepub unsafe fn uninitialized<T>(shape: &[usize]) -> Result<Tensor, Error>where
T: Datum,
pub unsafe fn uninitialized<T>(shape: &[usize]) -> Result<Tensor, Error>where
T: Datum,
Create an uninitialized tensor (dt as type paramater).
sourcepub unsafe fn uninitialized_dt(
dt: DatumType,
shape: &[usize]
) -> Result<Tensor, Error>
pub unsafe fn uninitialized_dt( dt: DatumType, shape: &[usize] ) -> Result<Tensor, Error>
Create an uninitialized tensor (dt as regular parameter).
sourcepub unsafe fn uninitialized_aligned<T>(
shape: &[usize],
alignment: usize
) -> Result<Tensor, Error>where
T: Datum,
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).
sourcepub unsafe fn uninitialized_aligned_dt(
dt: DatumType,
shape: &[usize],
alignment: usize
) -> Result<Tensor, Error>
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).
pub fn stack_tensors( axis: usize, tensors: &[impl Borrow<Tensor>] ) -> Result<Tensor, Error>
pub fn clear<T>(&mut self) -> Result<(), Error>
pub fn zero<T>(shape: &[usize]) -> Result<Tensor, Error>
pub fn zero_scalar<T>() -> Result<Tensor, Error>
pub fn zero_scalar_dt(dt: DatumType) -> Result<Tensor, Error>
pub fn zero_dt(dt: DatumType, shape: &[usize]) -> Result<Tensor, Error>
pub fn fill_t<T>(&mut self, value: T) -> Result<(), Error>
pub fn zero_aligned_dt( dt: DatumType, shape: &[usize], alignment: usize ) -> Result<Tensor, Error>
pub fn zero_aligned<T>( shape: &[usize], alignment: usize ) -> Result<Tensor, Error>
sourcepub fn from_shape<T>(shape: &[usize], data: &[T]) -> Result<Tensor, Error>
pub fn from_shape<T>(shape: &[usize], data: &[T]) -> Result<Tensor, Error>
Create a tensor with a given shape and a slice of elements. The data is copied and aligned to size of T.
sourcepub fn from_shape_align<T>(
shape: &[usize],
data: &[T],
align: usize
) -> Result<Tensor, Error>
pub fn from_shape_align<T>( shape: &[usize], data: &[T], align: usize ) -> Result<Tensor, Error>
Create a tensor with a given shape and a slice of elements. The data is copied and aligned to given alignment.
sourcepub unsafe fn from_raw<T>(
shape: &[usize],
content: &[u8]
) -> Result<Tensor, Error>where
T: Datum,
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.
pub unsafe fn from_raw_aligned<T>(
shape: &[usize],
content: &[u8],
align: usize
) -> Result<Tensor, Error>where
T: Datum,
pub unsafe fn from_raw_dt( dt: DatumType, shape: &[usize], content: &[u8] ) -> Result<Tensor, Error>
pub unsafe fn from_raw_dt_align( dt: DatumType, shape: &[usize], content: &[u8], align: usize ) -> Result<Tensor, Error>
pub unsafe fn from_slice_align<T>(
content: &[T],
align: usize
) -> Result<Tensor, Error>where
T: Datum,
sourcepub unsafe fn set_shape_unchecked(&mut self, shape: &[usize])
pub unsafe fn set_shape_unchecked(&mut self, shape: &[usize])
Force the tensor shape, no consistency check.
pub fn permute_axes(self, axes: &[usize]) -> Result<Tensor, Error>
pub fn move_axis(self, from: usize, to: usize) -> Result<Tensor, Error>
pub fn collapse_axis_with_next(self, axis: usize) -> Tensor
pub fn split_axis(self, axis: usize, outer_dim: usize) -> Result<Tensor, Error>
pub fn insert_axis(&mut self, axis: usize) -> Result<(), Error>
pub fn remove_axis(&mut self, axis: usize) -> Result<(), Error>
pub fn broadcast_into_rank(self, rank: usize) -> Result<Tensor, Error>
pub fn broadcast_to_rank(&mut self, rank: usize) -> Result<(), Error>
pub fn broadcast_scalar_to_shape( &self, shape: &[usize] ) -> Result<Tensor, Error>
pub fn broadcast_to_shape(&self, shape: &[usize]) -> Result<Tensor, Error>
pub fn broadcast_vector_to_shape( &self, shape: &[usize], axis: usize ) -> Result<Tensor, Error>
pub fn assign_slice( &mut self, range: impl RangeBounds<usize>, src: &Tensor, src_range: impl RangeBounds<usize>, axis: usize ) -> Result<(), Error>
pub unsafe fn assign_slice_unchecked( &mut self, range: impl RangeBounds<usize>, src: &Tensor, src_range: impl RangeBounds<usize>, axis: usize )
sourcepub fn datum_type(&self) -> DatumType
pub fn datum_type(&self) -> DatumType
Get the datum type of the tensor.
sourcepub unsafe fn set_datum_type(&mut self, dt: DatumType)
pub unsafe fn set_datum_type(&mut self, dt: DatumType)
Set the datum type of the tensor.
sourcepub fn dump(&self, force_full: bool) -> Result<String, Error>
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.
sourcepub fn close_enough(
&self,
other: &Tensor,
approx: impl Into<Approximation> + Debug
) -> Result<(), Error>
pub fn close_enough( &self, other: &Tensor, approx: impl Into<Approximation> + Debug ) -> Result<(), Error>
Compare two tensors, allowing for rounding errors.
sourcepub fn into_array<D>(
self
) -> Result<ArrayBase<OwnedRepr<D>, Dim<IxDynImpl>>, Error>where
D: Datum,
pub fn into_array<D>(
self
) -> Result<ArrayBase<OwnedRepr<D>, Dim<IxDynImpl>>, Error>where
D: Datum,
Transform the tensor into a ndarray::Array
.
sourcepub unsafe fn into_array_unchecked<D>(
self
) -> ArrayBase<OwnedRepr<D>, Dim<IxDynImpl>>where
D: Datum,
pub unsafe fn into_array_unchecked<D>(
self
) -> ArrayBase<OwnedRepr<D>, Dim<IxDynImpl>>where
D: Datum,
Transform the tensor into a ndarray::Array
.
sourcepub fn to_array_view<D>(
&self
) -> Result<ArrayBase<ViewRepr<&D>, Dim<IxDynImpl>>, Error>where
D: Datum,
pub fn to_array_view<D>(
&self
) -> Result<ArrayBase<ViewRepr<&D>, Dim<IxDynImpl>>, Error>where
D: Datum,
Transform the data as a ndarray::Array
.
sourcepub fn to_array_view_mut<D>(
&mut self
) -> Result<ArrayBase<ViewRepr<&mut D>, Dim<IxDynImpl>>, Error>where
D: Datum,
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
.
sourcepub unsafe fn to_array_view_unchecked<D>(
&self
) -> ArrayBase<ViewRepr<&D>, Dim<IxDynImpl>>where
D: Datum,
pub unsafe fn to_array_view_unchecked<D>(
&self
) -> ArrayBase<ViewRepr<&D>, Dim<IxDynImpl>>where
D: Datum,
Transform the data as a ndarray::Array
.
sourcepub unsafe fn to_array_view_mut_unchecked<D>(
&mut self
) -> ArrayBase<ViewRepr<&mut D>, Dim<IxDynImpl>>where
D: Datum,
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
.
sourcepub fn as_ptr<D>(&self) -> Result<*const D, Error>where
D: Datum,
pub fn as_ptr<D>(&self) -> Result<*const D, Error>where
D: Datum,
Access the data as a pointer.
sourcepub unsafe fn as_ptr_unchecked<D>(&self) -> *const Dwhere
D: Datum,
pub unsafe fn as_ptr_unchecked<D>(&self) -> *const Dwhere
D: Datum,
Access the data as a pointer.
sourcepub unsafe fn as_ptr_mut_unchecked<D>(&mut self) -> *mut Dwhere
D: Datum,
pub unsafe fn as_ptr_mut_unchecked<D>(&mut self) -> *mut Dwhere
D: Datum,
Access the data as a pointer.
sourcepub fn as_ptr_mut<D>(&mut self) -> Result<*mut D, Error>where
D: Datum,
pub fn as_ptr_mut<D>(&mut self) -> Result<*mut D, Error>where
D: Datum,
Access the data as a mutable pointer.
sourcepub fn as_slice_mut<D>(&mut self) -> Result<&mut [D], Error>where
D: Datum,
pub fn as_slice_mut<D>(&mut self) -> Result<&mut [D], Error>where
D: Datum,
Access the data as a mutable slice.
sourcepub unsafe fn as_slice_unchecked<D>(&self) -> &[D]where
D: Datum,
pub unsafe fn as_slice_unchecked<D>(&self) -> &[D]where
D: Datum,
Access the data as a slice.
sourcepub unsafe fn as_slice_mut_unchecked<D>(&mut self) -> &mut [D]where
D: Datum,
pub unsafe fn as_slice_mut_unchecked<D>(&mut self) -> &mut [D]where
D: Datum,
Access the data as a mutable slice.
sourcepub fn to_scalar_tensor(&self) -> Result<Tensor, Error>
pub fn to_scalar_tensor(&self) -> Result<Tensor, Error>
Make the tensor a scalar tensor (assumes it contains a single value).
sourcepub unsafe fn to_scalar_unchecked<D>(&self) -> &Dwhere
D: Datum,
pub unsafe fn to_scalar_unchecked<D>(&self) -> &Dwhere
D: Datum,
Access the data as a scalar.
sourcepub fn to_scalar_mut<D>(&mut self) -> Result<&mut D, Error>where
D: Datum,
pub fn to_scalar_mut<D>(&mut self) -> Result<&mut D, Error>where
D: Datum,
Mutable access the data as a scalar.
sourcepub unsafe fn to_scalar_mut_unchecked<D>(&mut self) -> &mut Dwhere
D: Datum,
pub unsafe fn to_scalar_mut_unchecked<D>(&mut self) -> &mut Dwhere
D: Datum,
Mutable access the data as a scalar.
pub fn as_bytes(&self) -> &[u8] ⓘ
pub fn as_bytes_mut(&mut self) -> &mut [u8] ⓘ
pub fn is_uniform(&self) -> bool
pub fn as_uniform(&self) -> Option<Tensor>
pub fn is_zero(&self) -> Result<bool, Error>
sourcepub fn cast_to<D>(&self) -> Result<Cow<'_, Tensor>, Error>where
D: Datum,
pub fn cast_to<D>(&self) -> Result<Cow<'_, Tensor>, Error>where
D: Datum,
Optionnaly convert data to a tensor for a new DatumType.
sourcepub fn cast_to_dt(&self, dst_dt: DatumType) -> Result<Cow<'_, Tensor>, Error>
pub fn cast_to_dt(&self, dst_dt: DatumType) -> Result<Cow<'_, Tensor>, Error>
Optionnaly convert data to a tensor for a new DatumType.
sourcepub fn cast_to_scalar<D>(&self) -> Result<D, Error>
pub fn cast_to_scalar<D>(&self) -> Result<D, Error>
Access the data as a scalar, after a cast.
sourcepub fn nth(&self, nth: usize) -> Result<Tensor, Error>
pub fn nth(&self, nth: usize) -> Result<Tensor, Error>
Access the nth element of the tensor, returned as a 0-rank Tensor
pub fn deep_clone(&self) -> Tensor
pub fn slice( &self, axis: usize, start: usize, end: usize ) -> Result<Tensor, Error>
pub fn view(&self) -> TensorView<'_>
pub fn view_at_prefix(&self, prefix: &[usize]) -> Result<TensorView<'_>, Error>
pub fn view_offsetting(&self, coords: &[usize]) -> Result<TensorView<'_>, Error>
pub unsafe fn view_offsetting_unchecked( &self, coords: &[usize] ) -> TensorView<'_>
pub fn view_mut(&mut self) -> TensorView<'_>
pub fn view_at_prefix_mut( &mut self, prefix: &[usize] ) -> Result<TensorView<'_>, Error>
pub fn view_offsetting_mut( &mut self, coords: &[usize] ) -> Result<TensorView<'_>, Error>
sourcepub fn offset_u8_as_i8(self: &Arc<Tensor>) -> Arc<Tensor>
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.
sourcepub fn offset_i8_as_u8(self: &Arc<Tensor>) -> Arc<Tensor>
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.
pub fn to_aligned_default(&self) -> Result<Tensor, Error>
Trait Implementations§
source§impl IntoArcTensor for Tensor
impl IntoArcTensor for Tensor
source§impl IntoTValue for Tensor
impl IntoTValue for Tensor
fn into_tvalue(self) -> TValue
source§impl IntoTensor for Tensor
impl IntoTensor for Tensor
source§fn into_tensor(self) -> Tensor
fn into_tensor(self) -> Tensor
source§impl PartialEq for Tensor
impl PartialEq for Tensor
impl Eq for Tensor
impl Send for Tensor
impl Sync for Tensor
Auto Trait Implementations§
impl Freeze for Tensor
impl RefUnwindSafe for Tensor
impl Unpin for Tensor
impl UnwindSafe for Tensor
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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
impl<T> DowncastSync for T
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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