27 #ifndef MLPACK_METHODS_ANN_INIT_RULES_OIVS_INIT_HPP 28 #define MLPACK_METHODS_ANN_INIT_RULES_OIVS_INIT_HPP 56 template<
class ActivationFunction = LogisticFunction>
69 const double gamma = 0.9) :
71 b(
std::abs(ActivationFunction::Inv(1 - epsilon) -
72 ActivationFunction::Inv(epsilon)))
84 void Initialize(arma::Mat<eT>& W,
const size_t rows,
const size_t cols)
89 W = (b / (k * rows)) * arma::sqrt(W + 1);
103 W = (b / (k * W.n_rows)) * arma::sqrt(W + 1);
115 template<
typename eT>
122 W.set_size(rows, cols, slices);
124 for (
size_t i = 0; i < slices; ++i)
134 template<
typename eT>
138 Log::Fatal <<
"Cannot initialize an empty cube." << std::endl;
140 for (
size_t i = 0; i < W.n_slices; ++i)
Linear algebra utility functions, generally performed on matrices or vectors.
This class is used to initialize randomly the weight matrix.
The core includes that mlpack expects; standard C++ includes and Armadillo.
This class is used to initialize the weight matrix with the oivs method.
void Initialize(arma::Mat< eT > &W, const size_t rows, const size_t cols)
Initialize the elements of the specified weight matrix with the oivs method.
void Initialize(arma::Cube< eT > &W)
Initialize the elements of the specified weight 3rd order tensor with the oivs method.
void Initialize(arma::Mat< eT > &W, const size_t rows, const size_t cols)
Initialize randomly the elements of the specified weight matrix.
static MLPACK_EXPORT util::PrefixedOutStream Fatal
Prints fatal messages prefixed with [FATAL], then terminates the program.
void Initialize(arma::Mat< eT > &W)
Initialize the elements of the specified weight matrix with the oivs method.
void Initialize(arma::Cube< eT > &W, const size_t rows, const size_t cols, const size_t slices)
Initialize the elements of the specified weight 3rd order tensor with the oivs method.
OivsInitialization(const double epsilon=0.1, const int k=5, const double gamma=0.9)
Initialize the random initialization rule with the given values.