26 #ifndef MLPACK_METHODS_ANN_ACTIVATION_FUNCTIONS_SOFTPLUS_FUNCTION_HPP 27 #define MLPACK_METHODS_ANN_ACTIVATION_FUNCTIONS_SOFTPLUS_FUNCTION_HPP 52 static double Fn(
const double x)
54 const double val = std::log(1 + std::exp(x));
55 if (std::isfinite(val))
66 template<
typename InputType,
typename OutputType>
67 static void Fn(
const InputType& x, OutputType& 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 InputType,
typename OutputType>
93 static void Deriv(
const InputType& y, OutputType& x)
95 x = 1.0 / (1 + arma::exp(-y));
104 static double Inv(
const double y)
106 const double val = std::log(std::exp(y) - 1);
107 if (std::isfinite(val))
118 template<
typename InputType,
typename OutputType>
119 static void Inv(
const InputType& y, OutputType& x)
123 for (
size_t i = 0; i < y.n_elem; ++i)
static void Deriv(const InputType &y, OutputType &x)
Computes the first derivatives of the softplus function.
static void Fn(const InputType &x, OutputType &y)
Computes the softplus function.
static void Inv(const InputType &y, OutputType &x)
Computes the inverse of the softplus function.
constexpr auto size(Container const &container) noexcept -> decltype(container.size())
Linear algebra utility functions, generally performed on matrices or vectors.
static double Deriv(const double y)
Computes the first derivative 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.
The softplus function, defined by.
static double Inv(const double y)
Computes the inverse of the softplus function.