pub struct Tensor { /* private fields */ }Implementations§
Source§impl Tensor
impl Tensor
pub fn new(data: &[f32], shape: &[usize]) -> Self
pub fn new_with_storage(storage: Storage, shape: &[usize]) -> Self
pub fn zeros(shape: &[usize]) -> Self
pub fn full(shape: &[usize], value: f32) -> Self
pub fn ones(shape: &[usize]) -> Self
pub fn storage(&self) -> &Storage
pub fn to_wgpu(&self) -> Self
pub fn to_cpu(&self) -> Self
pub fn shape(&self) -> &[usize]
pub fn strides(&self) -> &[usize]
pub fn set_requires_grad(self, requires_grad: bool) -> Self
pub fn set_requires_grad_mut(&mut self, requires_grad: bool)
pub fn requires_grad(&self) -> bool
pub fn data(&self) -> RwLockReadGuard<'_, Vec<f32>>
pub fn data_mut(&self) -> RwLockWriteGuard<'_, Vec<f32>>
pub fn grad(&self) -> Option<Tensor>
pub fn zero_grad(&self)
pub fn accumulate_grad(&self, grad: &Tensor)
pub fn backward(&self)
pub fn backward_step(&self)
Sourcepub fn detach(&self) -> Tensor
pub fn detach(&self) -> Tensor
Returns a new Tensor, detached from the current graph. The result will never require gradient.
pub fn set_op(&mut self, op: Arc<dyn BackwardOp>)
pub fn matmul(&self, rhs: &Tensor) -> Tensor
pub fn t(&self) -> Tensor
pub fn sub(&self, rhs: &Tensor) -> Tensor
pub fn add(&self, rhs: &Tensor) -> Tensor
pub fn neg(&self) -> Tensor
pub fn relu(&self) -> Tensor
pub fn sigmoid(&self) -> Tensor
pub fn tanh(&self) -> Tensor
pub fn softmax(&self, dim: i64) -> Tensor
pub fn conv2d( &self, weight: &Tensor, stride: (usize, usize), padding: (usize, usize), ) -> Tensor
pub fn max_pool2d( &self, kernel_size: (usize, usize), stride: (usize, usize), padding: (usize, usize), ) -> Tensor
pub fn batch_norm2d( &self, gamma: Option<&Tensor>, beta: Option<&Tensor>, running_mean: &Tensor, running_var: &Tensor, training: bool, momentum: f32, eps: f32, ) -> Tensor
pub fn layer_norm( &self, normalized_shape: &[usize], weight: Option<&Tensor>, bias: Option<&Tensor>, eps: f32, ) -> Tensor
pub fn permute(&self, dims: &[usize]) -> Tensor
pub fn transpose(&self, dim0: usize, dim1: usize) -> Tensor
pub fn contiguous(&self) -> Tensor
pub fn is_contiguous(&self) -> bool
pub fn normal_(&self, mean: f32, std: f32)
pub fn uniform_(&self, low: f32, high: f32)
pub fn fill_(&self, value: f32)
pub fn reshape(&self, new_shape: &[usize]) -> Tensor
pub fn mul(&self, rhs: &Tensor) -> Tensor
pub fn div(&self, rhs: &Tensor) -> Tensor
pub fn matmul_relu(&self, rhs: &Tensor) -> Tensor
pub fn sgd_step(&self, grad: &Tensor, lr: f32) -> Tensor
pub fn copy_(&self, src: &Tensor)
pub fn copy_from_slice(&self, src: &[f32])
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Tensor
impl !RefUnwindSafe for Tensor
impl Send for Tensor
impl Sync for Tensor
impl Unpin for Tensor
impl UnsafeUnpin 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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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 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>
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