Skip to main content

Tensor

Struct Tensor 

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

A multi-dimensional tensor with typed storage

Implementations§

Source§

impl Tensor

Source

pub fn new( data: Vec<u8>, shape: Vec<usize>, dtype: DType, ) -> Result<Self, TensorError>

Create a new tensor from raw data bytes with the given shape and dtype

Source

pub unsafe fn from_storage( storage: TensorStorage, shape: Vec<usize>, dtype: DType, offset: usize, ) -> Result<Self, TensorError>

Create a tensor from existing storage

§Safety

The storage must contain valid data for the given shape and dtype. The offset + size must not exceed the storage length.

Source

pub fn zeros(shape: Vec<usize>, dtype: DType) -> Self

Create a tensor filled with zeros

Source

pub fn from_f32(data: &[f32], shape: Vec<usize>) -> Result<Self, TensorError>

Create a tensor from f32 data

Source

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

Get the shape of the tensor

Source

pub fn ndim(&self) -> usize

Get the number of dimensions

Source

pub fn numel(&self) -> usize

Get the total number of elements

Source

pub fn dtype(&self) -> DType

Get the data type

Source

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

Get the strides

Source

pub fn name(&self) -> Option<&str>

Get the tensor name (for GPU weight lookup)

Source

pub fn set_name(&mut self, name: impl Into<String>)

Set the tensor name (for GPU weight lookup)

Source

pub fn with_name(self, name: impl Into<String>) -> Self

Create a named tensor (builder pattern)

Source

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

Get the raw byte data

Source

pub fn data_mut(&mut self) -> Option<&mut [u8]>

Get mutable access to the raw byte data

Source

pub fn as_f32(&self) -> Result<&[f32], TensorError>

Get the data as f32 slice (only valid for F32 dtype)

Source

pub fn as_f32_mut(&mut self) -> Result<&mut [f32], TensorError>

Get mutable access to data as f32 slice (only valid for F32 dtype)

Source

pub fn is_contiguous(&self) -> bool

Check if the tensor is contiguous in memory

Source

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

Return a contiguous copy of this tensor if not already contiguous

Source

pub fn reshape(&self, new_shape: Vec<usize>) -> Result<Self, TensorError>

Reshape the tensor to a new shape

Returns a new tensor with the same data but different shape. The new tensor has its own copy of the data to allow mutation.

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

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

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<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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.
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