Skip to main content

Tensor

Struct Tensor 

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

A tensor: shared storage viewed through a layout.

Cloning a tensor is cheap — it clones the layout and bumps the storage refcount, never the data. View operations (reshape, permute, narrow, …) produce new tensors over the same storage whenever the layout arithmetic allows it.

Implementations§

Source§

impl Tensor

Source

pub fn from_storage(storage: Arc<Storage>, layout: Layout) -> Result<Self>

A tensor over existing storage with an explicit layout.

Errors when the layout addresses elements outside the storage.

Source

pub fn from_vec_f32(data: Vec<f32>, shape: Shape) -> Result<Self>

A contiguous CPU tensor holding data with shape shape.

Errors when data.len() does not equal shape.numel().

Source

pub fn shape(&self) -> &Shape

The shape of this view.

Source

pub fn layout(&self) -> &Layout

The full layout of this view.

Source

pub fn dtype(&self) -> DType

The element type.

Source

pub fn device(&self) -> Device

The device the storage lives on.

Source

pub fn storage(&self) -> &Arc<Storage> ⓘ

The shared storage behind this view.

Source

pub fn reshape(&self, shape: Shape) -> Result<Self>

A view with the same elements in a new shape.

Succeeds without copying only when the current layout permits it; errors on element-count mismatch. Never copies — contiguous is the explicit spelling for that.

Source

pub fn permute(&self, perm: &[usize]) -> Result<Self>

A view with dimensions reordered by perm (a permutation of 0..ndim).

Source

pub fn narrow(&self, dim: usize, start: usize, len: usize) -> Result<Self>

A view of len elements of dimension dim starting at start.

Source

pub fn contiguous(&self) -> Result<Self>

This tensor’s elements, in logical order, in fresh contiguous storage on the same device. A no-op clone when already contiguous.

Source

pub fn get_f32(&self, index: &[usize]) -> Result<f32>

The element at a logical index, as f32, for tests and debugging.

Errors on rank mismatch, out-of-bounds, non-float dtype, or non-CPU storage.

Trait Implementations§

Source§

impl Clone for Tensor

Source§

fn clone(&self) -> Tensor

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Tensor

Source§

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

Formats the value using the given formatter. Read more

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