enum DType
Source: tensor.joule:14
enum DTypeSource: tensor.joule:14
fn size_bytes(self) -> usizeSize in bytes
Source: tensor.joule:41
fn is_float(self) -> boolCheck if floating point
Source: tensor.joule:52
fn is_int(self) -> boolCheck if integer
Source: tensor.joule:60
enum DeviceSource: tensor.joule:71
fn default() -> SelfGet the default device (CPU)
Source: tensor.joule:80
fn best_available() -> SelfGet the best available accelerator
Source: tensor.joule:85
fn is_available(self) -> boolCheck if device is available
Source: tensor.joule:103
struct TensorN-dimensional tensor
Source: tensor.joule:123
enum TensorStorageInternal storage for tensor data
Source: tensor.joule:145
trait GradFnGradient function trait for autograd
Source: tensor.joule:152
fn backward(&self, grad: &Tensor) -> Vec<Tensor>;Source: tensor.joule:153
fn zeros(shape: &[usize]) -> SelfCreate a new tensor filled with zeros
Source: tensor.joule:162
fn zeros_with_dtype(shape: &[usize], dtype: DType) -> SelfCreate a new tensor filled with zeros of specified dtype
Source: tensor.joule:167
fn ones(shape: &[usize]) -> SelfCreate a new tensor filled with ones
Source: tensor.joule:185
fn empty(shape: &[usize]) -> SelfCreate a new tensor with uninitialized values
Source: tensor.joule:192
fn from_slice<T: TensorElement>(data: &[T], shape: &[usize]) -> SelfCreate a new tensor from a slice
Source: tensor.joule:197
fn from_vec<T: TensorElement>(data: Vec<T>) -> SelfCreate a 1D tensor from a Vec
Source: tensor.joule:223
fn eye(n: usize) -> SelfCreate an identity matrix
Source: tensor.joule:229
fn arange(start: f64, end: f64, step: f64) -> SelfCreate a tensor with values from start to end
Source: tensor.joule:238
fn linspace(start: f64, end: f64, steps: usize) -> SelfCreate a tensor with evenly spaced values
Source: tensor.joule:250
fn rand(shape: &[usize]) -> SelfCreate a tensor with random values from uniform distribution [0, 1)
Source: tensor.joule:259
fn randn(shape: &[usize]) -> SelfCreate a tensor with random values from normal distribution
Source: tensor.joule:269
fn shape(&self) -> &[usize]Get shape
Source: tensor.joule:282
fn ndim(&self) -> usizeGet number of dimensions
Source: tensor.joule:287
fn numel(&self) -> usizeGet total number of elements
Source: tensor.joule:292
fn dtype(&self) -> DTypeGet data type
Source: tensor.joule:297
fn device(&self) -> DeviceGet device
Source: tensor.joule:302
fn requires_grad(&self) -> boolCheck if tensor requires gradient
Source: tensor.joule:307
fn set_requires_grad(&mut self, requires_grad: bool)Set requires_grad
Source: tensor.joule:312
fn grad(&self) -> Option<&Tensor>Get gradient if available
Source: tensor.joule:317
fn is_contiguous(&self) -> boolCheck if tensor is contiguous in memory
Source: tensor.joule:322
fn to(&self, device: Device) -> SelfSource: tensor.joule:333
fn to_gpu(&self, device_idx: u32) -> SelfSource: tensor.joule:355
fn to_cpu(&self) -> SelfSource: tensor.joule:377
fn as_cpu_slice(&self) -> &[u8]Source: tensor.joule:399
fn get_flat(&self, idx: usize) -> f32Get element at flat index (as f32)
Source: tensor.joule:411
fn set_flat(&mut self, idx: usize, value: f32)Set element at flat index
Source: tensor.joule:432
fn get_2d(&self, i: usize, j: usize) -> f32Get element at 2D index
Source: tensor.joule:453
fn set_2d(&mut self, i: usize, j: usize, value: f32)Set element at 2D index
Source: tensor.joule:459
fn fill_(&mut self, value: f32)Fill tensor with value
Source: tensor.joule:465
fn reshape(&self, new_shape: &[usize]) -> SelfReshape tensor (returns a view if possible)
Source: tensor.joule:476
fn contiguous(&self) -> SelfMake tensor contiguous in memory
Source: tensor.joule:500
fn transpose(&self) -> SelfTranspose (swap last two dimensions)
Source: tensor.joule:513
fn permute(&self, dims: &[usize]) -> SelfPermute dimensions
Source: tensor.joule:537
fn squeeze(&self) -> SelfSqueeze dimensions of size 1
Source: tensor.joule:557
fn unsqueeze(&self, dim: usize) -> SelfUnsqueeze - add dimension of size 1 at position
Source: tensor.joule:566
fn add(&self, other: &Tensor) -> TensorSource: tensor.joule:578
fn sub(&self, other: &Tensor) -> TensorSource: tensor.joule:584
fn mul(&self, other: &Tensor) -> TensorSource: tensor.joule:590
fn div(&self, other: &Tensor) -> TensorSource: tensor.joule:596
fn matmul(&self, other: &Tensor) -> TensorSource: tensor.joule:602
fn sum(&self) -> TensorSum all elements
Source: tensor.joule:647
fn mean(&self) -> TensorMean of all elements
Source: tensor.joule:656
fn max(&self) -> TensorMaximum element
Source: tensor.joule:662
fn min(&self) -> TensorMinimum element
Source: tensor.joule:672
fn exp(&self) -> TensorElement-wise exponential
Source: tensor.joule:682
fn log(&self) -> TensorElement-wise natural logarithm
Source: tensor.joule:687
fn sqrt(&self) -> TensorElement-wise square root
Source: tensor.joule:692
fn pow(&self, exp: f32) -> TensorElement-wise power
Source: tensor.joule:697
fn abs(&self) -> TensorElement-wise absolute value
Source: tensor.joule:702
fn neg(&self) -> TensorElement-wise negation
Source: tensor.joule:707
fn clamp(&self, min: f32, max: f32) -> TensorClamp values to range
Source: tensor.joule:712
fn relu(&self) -> TensorReLU activation
Source: tensor.joule:721
fn sigmoid(&self) -> TensorSigmoid activation
Source: tensor.joule:726
fn tanh(&self) -> TensorTanh activation
Source: tensor.joule:731
fn gelu(&self) -> TensorGELU activation
Source: tensor.joule:736
fn softmax(&self, dim: i32) -> TensorSoftmax along last dimension
Source: tensor.joule:744
fn compute_strides(shape: &[usize]) -> Vec<usize>Source: tensor.joule:760
fn binary_op(a: &Tensor, b: &Tensor, f: fn(f32, f32) -> f32, _name: &str) -> TensorSource: tensor.joule:768
fn unary_op(a: &Tensor, f: fn(f32) -> f32, _name: &str) -> TensorSource: tensor.joule:779
trait TensorElement: CopySource: tensor.joule:791
fn dtype() -> DType;Source: tensor.joule:792
fn clone(&self) -> SelfSource: tensor.joule:807
fn clone(&self) -> SelfSource: tensor.joule:824
fn add(self, other: &Tensor) -> TensorSource: tensor.joule:845
fn sub(self, other: &Tensor) -> TensorSource: tensor.joule:852
fn mul(self, other: &Tensor) -> TensorSource: tensor.joule:859
fn div(self, other: &Tensor) -> TensorSource: tensor.joule:866
fn neg(self) -> TensorSource: tensor.joule:873