pub trait TensorOps<B>where
B: Backend,{
Show 78 methods
// Required methods
fn from_data<const D: usize>(
data: Data<<B as Backend>::FloatElem, D>,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D>;
fn random<const D: usize>(
shape: Shape<D>,
distribution: Distribution,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D>;
fn shape<const D: usize>(
tensor: &<B as Backend>::TensorPrimitive<D>
) -> Shape<D>;
fn into_data<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> Reader<Data<<B as Backend>::FloatElem, D>>;
fn device<const D: usize>(
tensor: &<B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::Device;
fn to_device<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D>;
fn into_int<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::IntTensorPrimitive<D>;
fn empty<const D: usize>(
shape: Shape<D>,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D>;
fn add<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn add_scalar<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>;
fn sub<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn sub_scalar<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>;
fn mul<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn mul_scalar<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>;
fn div<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn div_scalar<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>;
fn matmul<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn recip<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn swap_dims<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim1: usize,
dim2: usize
) -> <B as Backend>::TensorPrimitive<D>;
fn reshape<const D1: usize, const D2: usize>(
tensor: <B as Backend>::TensorPrimitive<D1>,
shape: Shape<D2>
) -> <B as Backend>::TensorPrimitive<D2>;
fn gather<const D: usize>(
dim: usize,
tensor: <B as Backend>::TensorPrimitive<D>,
indices: <B as Backend>::IntTensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn scatter<const D: usize>(
dim: usize,
tensor: <B as Backend>::TensorPrimitive<D>,
indices: <B as Backend>::IntTensorPrimitive<D>,
value: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn select<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize,
indices: <B as Backend>::IntTensorPrimitive<1>
) -> <B as Backend>::TensorPrimitive<D>;
fn select_assign<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize,
indices: <B as Backend>::IntTensorPrimitive<1>,
value: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn slice<const D1: usize, const D2: usize>(
tensor: <B as Backend>::TensorPrimitive<D1>,
ranges: [Range<usize>; D2]
) -> <B as Backend>::TensorPrimitive<D1>;
fn slice_assign<const D1: usize, const D2: usize>(
tensor: <B as Backend>::TensorPrimitive<D1>,
ranges: [Range<usize>; D2],
value: <B as Backend>::TensorPrimitive<D1>
) -> <B as Backend>::TensorPrimitive<D1>;
fn mask_where<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
mask: <B as Backend>::BoolTensorPrimitive<D>,
value: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn mask_fill<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
mask: <B as Backend>::BoolTensorPrimitive<D>,
value: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>;
fn equal<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::BoolTensorPrimitive<D>;
fn equal_elem<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::BoolTensorPrimitive<D>;
fn greater<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::BoolTensorPrimitive<D>;
fn greater_elem<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::BoolTensorPrimitive<D>;
fn greater_equal<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::BoolTensorPrimitive<D>;
fn greater_equal_elem<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::BoolTensorPrimitive<D>;
fn lower<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::BoolTensorPrimitive<D>;
fn lower_elem<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::BoolTensorPrimitive<D>;
fn lower_equal<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::BoolTensorPrimitive<D>;
fn lower_equal_elem<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::BoolTensorPrimitive<D>;
fn sum<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<1>;
fn sum_dim<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::TensorPrimitive<D>;
fn mean_dim<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::TensorPrimitive<D>;
fn to_full_precision<const D: usize>(
tensor: &<B as Backend>::TensorPrimitive<D>
) -> <<B as Backend>::FullPrecisionBackend as Backend>::TensorPrimitive<D>;
fn from_full_precision<const D: usize>(
tensor: <<B as Backend>::FullPrecisionBackend as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn exp<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn log<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn log1p<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn powf<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
value: f32
) -> <B as Backend>::TensorPrimitive<D>;
fn sqrt<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn abs<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn cos<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn sin<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn tanh<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn erf<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>;
fn cat<const D: usize>(
tensors: Vec<<B as Backend>::TensorPrimitive<D>>,
dim: usize
) -> <B as Backend>::TensorPrimitive<D>;
fn argmax<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::IntTensorPrimitive<D>;
fn argmin<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::IntTensorPrimitive<D>;
// Provided methods
fn zeros<const D: usize>(
shape: Shape<D>,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn ones<const D: usize>(
shape: Shape<D>,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn full<const D: usize>(
shape: Shape<D>,
fill_value: <B as Backend>::FloatElem,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn to_data<const D: usize>(
tensor: &<B as Backend>::TensorPrimitive<D>
) -> Reader<Data<<B as Backend>::FloatElem, D>> { ... }
fn arange(
range: Range<usize>,
device: &<B as Backend>::Device
) -> <B as Backend>::IntTensorPrimitive<1> { ... }
fn arange_step(
range: Range<usize>,
step: usize,
device: &<B as Backend>::Device
) -> <B as Backend>::IntTensorPrimitive<1> { ... }
fn repeat<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize,
times: usize
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn clamp_min<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
min: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn clamp_max<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
max: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn clamp<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
min: <B as Backend>::FloatElem,
max: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn neg<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn transpose<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn detach<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn set_require_grad<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
_require_grad: bool
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn is_require_grad<const D: usize>(
_tensor: &<B as Backend>::TensorPrimitive<D>
) -> bool { ... }
fn mean<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<1> { ... }
fn max<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<1> { ... }
fn max_dim<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn max_dim_with_indices<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> (<B as Backend>::TensorPrimitive<D>, <B as Backend>::IntTensorPrimitive<D>) { ... }
fn min<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<1> { ... }
fn min_dim<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::TensorPrimitive<D> { ... }
fn min_dim_with_indices<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> (<B as Backend>::TensorPrimitive<D>, <B as Backend>::IntTensorPrimitive<D>) { ... }
}Expand description
Operations on float tensors.
Required Methods§
sourcefn from_data<const D: usize>(
data: Data<<B as Backend>::FloatElem, D>,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D>
fn from_data<const D: usize>( data: Data<<B as Backend>::FloatElem, D>, device: &<B as Backend>::Device ) -> <B as Backend>::TensorPrimitive<D>
sourcefn random<const D: usize>(
shape: Shape<D>,
distribution: Distribution,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D>
fn random<const D: usize>( shape: Shape<D>, distribution: Distribution, device: &<B as Backend>::Device ) -> <B as Backend>::TensorPrimitive<D>
sourcefn into_data<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> Reader<Data<<B as Backend>::FloatElem, D>>
fn into_data<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> Reader<Data<<B as Backend>::FloatElem, D>>
sourcefn device<const D: usize>(
tensor: &<B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::Device
fn device<const D: usize>( tensor: &<B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::Device
sourcefn to_device<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D>
fn to_device<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, device: &<B as Backend>::Device ) -> <B as Backend>::TensorPrimitive<D>
sourcefn into_int<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::IntTensorPrimitive<D>
fn into_int<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::IntTensorPrimitive<D>
sourcefn empty<const D: usize>(
shape: Shape<D>,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D>
fn empty<const D: usize>( shape: Shape<D>, device: &<B as Backend>::Device ) -> <B as Backend>::TensorPrimitive<D>
sourcefn add<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn add<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn add_scalar<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>
fn add_scalar<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::FloatElem ) -> <B as Backend>::TensorPrimitive<D>
sourcefn sub<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn sub<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn sub_scalar<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>
fn sub_scalar<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::FloatElem ) -> <B as Backend>::TensorPrimitive<D>
sourcefn mul<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn mul<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
Multiplies two tensors together element-wise.
sourcefn mul_scalar<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>
fn mul_scalar<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::FloatElem ) -> <B as Backend>::TensorPrimitive<D>
sourcefn div<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn div<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn div_scalar<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>
fn div_scalar<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::FloatElem ) -> <B as Backend>::TensorPrimitive<D>
sourcefn matmul<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn matmul<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn recip<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn recip<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
Calculates the reciprocals elementwise
sourcefn swap_dims<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim1: usize,
dim2: usize
) -> <B as Backend>::TensorPrimitive<D>
fn swap_dims<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim1: usize, dim2: usize ) -> <B as Backend>::TensorPrimitive<D>
sourcefn reshape<const D1: usize, const D2: usize>(
tensor: <B as Backend>::TensorPrimitive<D1>,
shape: Shape<D2>
) -> <B as Backend>::TensorPrimitive<D2>
fn reshape<const D1: usize, const D2: usize>( tensor: <B as Backend>::TensorPrimitive<D1>, shape: Shape<D2> ) -> <B as Backend>::TensorPrimitive<D2>
sourcefn gather<const D: usize>(
dim: usize,
tensor: <B as Backend>::TensorPrimitive<D>,
indices: <B as Backend>::IntTensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn gather<const D: usize>( dim: usize, tensor: <B as Backend>::TensorPrimitive<D>, indices: <B as Backend>::IntTensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn scatter<const D: usize>(
dim: usize,
tensor: <B as Backend>::TensorPrimitive<D>,
indices: <B as Backend>::IntTensorPrimitive<D>,
value: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn scatter<const D: usize>( dim: usize, tensor: <B as Backend>::TensorPrimitive<D>, indices: <B as Backend>::IntTensorPrimitive<D>, value: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn select<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize,
indices: <B as Backend>::IntTensorPrimitive<1>
) -> <B as Backend>::TensorPrimitive<D>
fn select<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize, indices: <B as Backend>::IntTensorPrimitive<1> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn select_assign<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize,
indices: <B as Backend>::IntTensorPrimitive<1>,
value: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn select_assign<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize, indices: <B as Backend>::IntTensorPrimitive<1>, value: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
Assign the selected elements along the given dimension corresponding for the given indices to the given value.
Arguments
tensor- The tensor to select from.dim- The dimension to select from.indices- The indices to select.value- The value to assign.
Returns
The tensor with the selected elements assigned to the given value.
sourcefn slice<const D1: usize, const D2: usize>(
tensor: <B as Backend>::TensorPrimitive<D1>,
ranges: [Range<usize>; D2]
) -> <B as Backend>::TensorPrimitive<D1>
fn slice<const D1: usize, const D2: usize>( tensor: <B as Backend>::TensorPrimitive<D1>, ranges: [Range<usize>; D2] ) -> <B as Backend>::TensorPrimitive<D1>
sourcefn slice_assign<const D1: usize, const D2: usize>(
tensor: <B as Backend>::TensorPrimitive<D1>,
ranges: [Range<usize>; D2],
value: <B as Backend>::TensorPrimitive<D1>
) -> <B as Backend>::TensorPrimitive<D1>
fn slice_assign<const D1: usize, const D2: usize>( tensor: <B as Backend>::TensorPrimitive<D1>, ranges: [Range<usize>; D2], value: <B as Backend>::TensorPrimitive<D1> ) -> <B as Backend>::TensorPrimitive<D1>
sourcefn mask_where<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
mask: <B as Backend>::BoolTensorPrimitive<D>,
value: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn mask_where<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, mask: <B as Backend>::BoolTensorPrimitive<D>, value: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
Update the given tensor with the value tensor where the mask is true.
Arguments
tensor- The tensor to select from.mask- The boolean mask to select with.value- The value to assign to the selected elements from the value tensor.
Returns
The tensor with the selected elements assigned to the given value.
sourcefn mask_fill<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
mask: <B as Backend>::BoolTensorPrimitive<D>,
value: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>
fn mask_fill<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, mask: <B as Backend>::BoolTensorPrimitive<D>, value: <B as Backend>::FloatElem ) -> <B as Backend>::TensorPrimitive<D>
sourcefn equal<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::BoolTensorPrimitive<D>
fn equal<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::BoolTensorPrimitive<D>
sourcefn equal_elem<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::BoolTensorPrimitive<D>
fn equal_elem<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::FloatElem ) -> <B as Backend>::BoolTensorPrimitive<D>
sourcefn greater<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::BoolTensorPrimitive<D>
fn greater<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::BoolTensorPrimitive<D>
sourcefn greater_elem<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::BoolTensorPrimitive<D>
fn greater_elem<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::FloatElem ) -> <B as Backend>::BoolTensorPrimitive<D>
sourcefn greater_equal<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::BoolTensorPrimitive<D>
fn greater_equal<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::BoolTensorPrimitive<D>
sourcefn greater_equal_elem<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::BoolTensorPrimitive<D>
fn greater_equal_elem<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::FloatElem ) -> <B as Backend>::BoolTensorPrimitive<D>
sourcefn lower<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::BoolTensorPrimitive<D>
fn lower<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::BoolTensorPrimitive<D>
sourcefn lower_elem<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::BoolTensorPrimitive<D>
fn lower_elem<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::FloatElem ) -> <B as Backend>::BoolTensorPrimitive<D>
sourcefn lower_equal<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::BoolTensorPrimitive<D>
fn lower_equal<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::BoolTensorPrimitive<D>
sourcefn lower_equal_elem<const D: usize>(
lhs: <B as Backend>::TensorPrimitive<D>,
rhs: <B as Backend>::FloatElem
) -> <B as Backend>::BoolTensorPrimitive<D>
fn lower_equal_elem<const D: usize>( lhs: <B as Backend>::TensorPrimitive<D>, rhs: <B as Backend>::FloatElem ) -> <B as Backend>::BoolTensorPrimitive<D>
sourcefn sum<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<1>
fn sum<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<1>
sourcefn sum_dim<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::TensorPrimitive<D>
fn sum_dim<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize ) -> <B as Backend>::TensorPrimitive<D>
sourcefn mean_dim<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::TensorPrimitive<D>
fn mean_dim<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize ) -> <B as Backend>::TensorPrimitive<D>
sourcefn to_full_precision<const D: usize>(
tensor: &<B as Backend>::TensorPrimitive<D>
) -> <<B as Backend>::FullPrecisionBackend as Backend>::TensorPrimitive<D>
fn to_full_precision<const D: usize>( tensor: &<B as Backend>::TensorPrimitive<D> ) -> <<B as Backend>::FullPrecisionBackend as Backend>::TensorPrimitive<D>
sourcefn from_full_precision<const D: usize>(
tensor: <<B as Backend>::FullPrecisionBackend as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn from_full_precision<const D: usize>( tensor: <<B as Backend>::FullPrecisionBackend as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn exp<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn exp<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn log<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn log<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn log1p<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn log1p<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn powf<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
value: f32
) -> <B as Backend>::TensorPrimitive<D>
fn powf<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, value: f32 ) -> <B as Backend>::TensorPrimitive<D>
sourcefn sqrt<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn sqrt<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn abs<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn abs<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn cos<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn cos<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn sin<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn sin<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn tanh<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn tanh<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn erf<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn erf<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn cat<const D: usize>(
tensors: Vec<<B as Backend>::TensorPrimitive<D>>,
dim: usize
) -> <B as Backend>::TensorPrimitive<D>
fn cat<const D: usize>( tensors: Vec<<B as Backend>::TensorPrimitive<D>>, dim: usize ) -> <B as Backend>::TensorPrimitive<D>
sourcefn argmax<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::IntTensorPrimitive<D>
fn argmax<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize ) -> <B as Backend>::IntTensorPrimitive<D>
sourcefn argmin<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::IntTensorPrimitive<D>
fn argmin<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize ) -> <B as Backend>::IntTensorPrimitive<D>
Provided Methods§
sourcefn zeros<const D: usize>(
shape: Shape<D>,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D>
fn zeros<const D: usize>( shape: Shape<D>, device: &<B as Backend>::Device ) -> <B as Backend>::TensorPrimitive<D>
sourcefn ones<const D: usize>(
shape: Shape<D>,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D>
fn ones<const D: usize>( shape: Shape<D>, device: &<B as Backend>::Device ) -> <B as Backend>::TensorPrimitive<D>
sourcefn full<const D: usize>(
shape: Shape<D>,
fill_value: <B as Backend>::FloatElem,
device: &<B as Backend>::Device
) -> <B as Backend>::TensorPrimitive<D>
fn full<const D: usize>( shape: Shape<D>, fill_value: <B as Backend>::FloatElem, device: &<B as Backend>::Device ) -> <B as Backend>::TensorPrimitive<D>
sourcefn to_data<const D: usize>(
tensor: &<B as Backend>::TensorPrimitive<D>
) -> Reader<Data<<B as Backend>::FloatElem, D>>
fn to_data<const D: usize>( tensor: &<B as Backend>::TensorPrimitive<D> ) -> Reader<Data<<B as Backend>::FloatElem, D>>
sourcefn arange(
range: Range<usize>,
device: &<B as Backend>::Device
) -> <B as Backend>::IntTensorPrimitive<1>
fn arange( range: Range<usize>, device: &<B as Backend>::Device ) -> <B as Backend>::IntTensorPrimitive<1>
sourcefn arange_step(
range: Range<usize>,
step: usize,
device: &<B as Backend>::Device
) -> <B as Backend>::IntTensorPrimitive<1>
fn arange_step( range: Range<usize>, step: usize, device: &<B as Backend>::Device ) -> <B as Backend>::IntTensorPrimitive<1>
sourcefn repeat<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize,
times: usize
) -> <B as Backend>::TensorPrimitive<D>
fn repeat<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize, times: usize ) -> <B as Backend>::TensorPrimitive<D>
sourcefn clamp_min<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
min: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>
fn clamp_min<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, min: <B as Backend>::FloatElem ) -> <B as Backend>::TensorPrimitive<D>
sourcefn clamp_max<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
max: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>
fn clamp_max<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, max: <B as Backend>::FloatElem ) -> <B as Backend>::TensorPrimitive<D>
sourcefn clamp<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
min: <B as Backend>::FloatElem,
max: <B as Backend>::FloatElem
) -> <B as Backend>::TensorPrimitive<D>
fn clamp<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, min: <B as Backend>::FloatElem, max: <B as Backend>::FloatElem ) -> <B as Backend>::TensorPrimitive<D>
sourcefn neg<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn neg<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
Negates a tensor element-wise.
sourcefn transpose<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn transpose<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
sourcefn detach<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<D>
fn detach<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>
Detaches a tensor from the computation graph.
sourcefn set_require_grad<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
_require_grad: bool
) -> <B as Backend>::TensorPrimitive<D>
fn set_require_grad<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, _require_grad: bool ) -> <B as Backend>::TensorPrimitive<D>
Sets the require_grad flag of a tensor.
sourcefn is_require_grad<const D: usize>(
_tensor: &<B as Backend>::TensorPrimitive<D>
) -> bool
fn is_require_grad<const D: usize>( _tensor: &<B as Backend>::TensorPrimitive<D> ) -> bool
Returns the require_grad flag of a tensor.
sourcefn mean<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<1>
fn mean<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<1>
sourcefn max<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<1>
fn max<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<1>
sourcefn max_dim<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::TensorPrimitive<D>
fn max_dim<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize ) -> <B as Backend>::TensorPrimitive<D>
sourcefn max_dim_with_indices<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> (<B as Backend>::TensorPrimitive<D>, <B as Backend>::IntTensorPrimitive<D>)
fn max_dim_with_indices<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize ) -> (<B as Backend>::TensorPrimitive<D>, <B as Backend>::IntTensorPrimitive<D>)
sourcefn min<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>
) -> <B as Backend>::TensorPrimitive<1>
fn min<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<1>
sourcefn min_dim<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> <B as Backend>::TensorPrimitive<D>
fn min_dim<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize ) -> <B as Backend>::TensorPrimitive<D>
sourcefn min_dim_with_indices<const D: usize>(
tensor: <B as Backend>::TensorPrimitive<D>,
dim: usize
) -> (<B as Backend>::TensorPrimitive<D>, <B as Backend>::IntTensorPrimitive<D>)
fn min_dim_with_indices<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize ) -> (<B as Backend>::TensorPrimitive<D>, <B as Backend>::IntTensorPrimitive<D>)
Object Safety§
This trait is not object safe.