Tensor

Struct Tensor 

Source
pub struct Tensor { /* private fields */ }
Expand description

ABI stable owned Shape for ffi

Implementations§

Source§

impl Tensor

Source

pub fn data_ptr(&self) -> *const c_void

Get the data pointer of the Tensor

§Returns
  • *mut core::ffi::c_void - The data pointer of the Tensor
Source

pub fn data_ptr_mut(&mut self) -> *mut c_void

Get the data pointer of the Tensor

§Returns
  • *mut core::ffi::c_void - The data pointer of the Tensor
Source

pub fn is_contiguous(&self) -> bool

Check if the Tensor is contiguous

§Returns
  • bool - True if the Tensor is contiguous, false otherwise
Source

pub fn data_as_slice<T: AsDLDataType>(&self) -> Result<&[T]>

Source

pub fn data_as_slice_mut<T: AsDLDataType>(&self) -> Result<&mut [T]>

Returns the tensor data as a mutable slice.

This method takes &self rather than &mut self by design: like std::fs::File::write, the metadata of a Tensor (shape, dtype, device) is governed by Rust’s ownership rules, but writing to the underlying data buffer (CPU memory or a GPU pointer) is a side-effect outside Rust’s aliasing model. Most C/CUDA kernel APIs accept a non-mut Tensor and mutate its data content, so requiring &mut self here would force artificial mutability annotations throughout the deep-learning stack with no real safety benefit.

§Safety contract (caller responsibility)

If the Tensor has been cloned (via ObjectArc), the caller must ensure no other clone is concurrently reading the data.

Source

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

Source

pub fn ndim(&self) -> usize

Source

pub fn numel(&self) -> usize

Source

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

Source

pub fn dtype(&self) -> DLDataType

Source

pub fn device(&self) -> DLDevice

Source§

impl Tensor

Source

pub fn from_nd_alloc<TNDAlloc>( alloc: TNDAlloc, shape: &[i64], dtype: DLDataType, device: DLDevice, ) -> Self
where TNDAlloc: NDAllocator,

§Arguments
  • alloc - The NDAllocator
  • shape - The shape of the Tensor
  • dtype - The data type of the Tensor
  • device - The device of the Tensor
§Returns
  • Tensor - The created Tensor
Source

pub fn from_slice<T: AsDLDataType>(slice: &[T], shape: &[i64]) -> Result<Self>

Create a Tensor from a slice

§Arguments
  • slice - The slice to create the Tensor from
  • shape - The shape of the Tensor
§Returns
  • Tensor - The created Tensor

Trait Implementations§

Source§

impl AnyCompatible for Tensor

Source§

fn type_str() -> String

the type string of the type
Source§

unsafe fn copy_to_any_view(src: &Self, data: &mut TVMFFIAny)

the value to copy to TVMFFIAny
Source§

unsafe fn check_any_strict(data: &TVMFFIAny) -> bool

Source§

unsafe fn copy_from_any_view_after_check(data: &TVMFFIAny) -> Self

Copy value from TVMFFIAny after checking caller must ensure that the value is compatible with the type
Source§

unsafe fn move_to_any(src: Self, data: &mut TVMFFIAny)

consume the value to move to Any
Source§

unsafe fn move_from_any_after_check(data: &mut TVMFFIAny) -> Self

the value to move from TVMFFIAny NOTE: pay very careful attention to avoid memory leak! Read more
Source§

unsafe fn try_cast_from_any_view(data: &TVMFFIAny) -> Result<Self, ()>

try to cast the value from AnyView
Source§

fn get_mismatch_type_info(data: &TVMFFIAny) -> String

Get the type key of a type when TryCastFromAnyView fails.
Source§

impl<'a> ArgIntoRef for &'a Tensor

Source§

type Target = Tensor

Source§

fn to_ref(&self) -> &Self::Target

Source§

impl ArgIntoRef for Tensor

Source§

type Target = Tensor

Source§

fn to_ref(&self) -> &Self::Target

Source§

impl Clone for Tensor

Source§

fn clone(&self) -> Tensor

Returns a duplicate 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<'a> IntoArgHolder for &'a Tensor

Source§

impl IntoArgHolder for Tensor

Source§

impl ObjectRefCore for Tensor

Source§

impl TryFrom<Any> for Tensor

Source§

type Error = Error

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

fn try_from(value: Any) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<AnyView<'a>> for Tensor

Source§

type Error = Error

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

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

Performs the conversion.

Auto Trait Implementations§

§

impl Freeze for Tensor

§

impl RefUnwindSafe for Tensor

§

impl !Send for Tensor

§

impl !Sync for Tensor

§

impl Unpin for Tensor

§

impl UnwindSafe for Tensor

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

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

Source§

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

Source§

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.