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)
69 y.set_size(arma::size(x));
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)
121 x.set_size(arma::size(y));
123 for (
size_t i = 0; i < y.n_elem; ++i)
static double Deriv(const double y)
Computes the first derivative of the softplus function.
Definition: softplus_function.hpp:81
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
static void Inv(const InputType &y, OutputType &x)
Computes the inverse of the softplus function.
Definition: softplus_function.hpp:119
static double Inv(const double y)
Computes the inverse of the softplus function.
Definition: softplus_function.hpp:104
The core includes that mlpack expects; standard C++ includes and Armadillo.
static void Deriv(const InputType &y, OutputType &x)
Computes the first derivatives of the softplus function.
Definition: softplus_function.hpp:93
static double Fn(const double x)
Computes the softplus function.
Definition: softplus_function.hpp:52
static void Fn(const InputType &x, OutputType &y)
Computes the softplus function.
Definition: softplus_function.hpp:67
The softplus function, defined by.
Definition: softplus_function.hpp:43