Skip to main content

adadelta_step

Function adadelta_step 

Source
pub fn adadelta_step<T: Triton, const BLOCK_SIZE: i32>(
    params_ptr: T::Pointer<f32>,
    grad_ptr: T::Pointer<f32>,
    square_avg_ptr: T::Pointer<f32>,
    acc_delta_ptr: T::Pointer<f32>,
    n_elements: i32,
    lr: f32,
    rho: f32,
    eps: f32,
    weight_decay: f32,
)
where T::I32Tensor: Tensor<i32, 1> + Comparison<i32, BoolTensor = T::BoolTensor>, T::Pointer<f32>: AddOffsets<i32, 1, T::I32Tensor, Output = T::Tensor<T::Pointer<f32>>>,
Expand description

Adadelta step.

square_avg = rho * square_avg + (1 - rho) * g²
delta      = sqrt(acc_delta + eps) / sqrt(square_avg + eps) * g
p          = p - lr * delta
acc_delta  = rho * acc_delta + (1 - rho) * delta²

Grid: [ceil(n_elements / BLOCK_SIZE), 1, 1].