Function dfdx::tensor_ops::prelu

source ·
pub fn prelu<S: Shape, E: Dtype, D: Device<E>, T: Tape<E, D> + Merge<R>, R: Default>(
    lhs: Tensor<S, E, D, T>,
    rhs: Tensor<S, E, D, R>
) -> Tensor<S, E, D, T>
Expand description

Parametric Rectified Linear Unit (PReLU). max(0, lhs) + rhs*min(0, lhs)

In other words, for each element i:

  • if lhs[i] < 0, use lhs[i] * rhs[i]
  • if lhs[i] >= 0, use lhs[i]

Examples:

let t = dev.tensor([-1.0, 0.0, 1.0, 2.0]);
let a = dev.tensor([0.05,0.05,0.05,0.05]);
let r = t.prelu(a);
assert_eq!(r.array(), [-0.05, 0.0, 1.0, 2.0]);