26 return Z.unaryExpr([alpha](
double x) {
return x > 0.0 ? x : alpha * x; });
36 const Eigen::MatrixXd& Z,
37 const Eigen::MatrixXd& ,
39 return dA.array() * (Z.array() > 0.0).cast<double>() +
40 dA.array() * (Z.array() <= 0.0).cast<double>() * alpha;
Definition Activation.hpp:81
Eigen::MatrixXd leaky_relu_backward(const Eigen::MatrixXd &dA, const Eigen::MatrixXd &Z, const Eigen::MatrixXd &, double alpha=kLeakyAlpha) noexcept
LeakyReLU backward: dZ = dA * (Z>0 ? 1 : alpha).
Definition LeakyReLU.hpp:35
Eigen::MatrixXd leaky_relu_forward(const Eigen::MatrixXd &Z, double alpha=kLeakyAlpha)
LeakyReLU forward: A = Z>0 ? Z : alpha*Z.
Definition LeakyReLU.hpp:24
constexpr double kLeakyAlpha
Definition LeakyReLU.hpp:17