26 #ifndef MLPACK_METHODS_ANN_ACTIVATION_FUNCTIONS_SOFTPLUS_FUNCTION_HPP 27 #define MLPACK_METHODS_ANN_ACTIVATION_FUNCTIONS_SOFTPLUS_FUNCTION_HPP 53 static double Fn(
const double x)
56 return x > -DBL_MAX ? std::log(1 + std::exp(x)) : 0;
66 template<
typename InputVecType,
typename OutputVecType>
67 static void Fn(
const InputVecType& x, OutputVecType& y)
71 for (
size_t i = 0; i < x.n_elem; i++)
81 static double Deriv(
const double y)
83 return 1.0 / (1 + std::exp(-y));
92 template<
typename InputVecType,
typename OutputVecType>
93 static void Deriv(
const InputVecType& y, OutputVecType& x)
95 x = 1.0 / (1 + arma::exp(-y));
104 static double Inv(
const double y)
106 return y > 0 ? arma::trunc_log(arma::trunc_exp(y) - 1) : 0;
115 template<
typename InputVecType,
typename OutputVecType>
116 static void Inv(
const InputVecType& y, OutputVecType& x)
120 for (
size_t i = 0; i < y.n_elem; i++)
static double Deriv(const double y)
Computes the first derivative of the softplus function.
Linear algebra utility functions, generally performed on matrices or vectors.
static double Inv(const double y)
Computes the inverse of the softplus function.
The core includes that mlpack expects; standard C++ includes and Armadillo.
static double Fn(const double x)
Computes the softplus function.
static void Inv(const InputVecType &y, OutputVecType &x)
Computes the inverse of the softplus function.
static void Deriv(const InputVecType &y, OutputVecType &x)
Computes the first derivatives of the softplus function.
static void Fn(const InputVecType &x, OutputVecType &y)
Computes the softplus function.
The softplus function, defined by.