Go to the documentation of this file.
27 #ifndef MLPACK_METHODS_ANN_INIT_RULES_OIVS_INIT_HPP
28 #define MLPACK_METHODS_ANN_INIT_RULES_OIVS_INIT_HPP
57 class ActivationFunction = LogisticFunction
71 const double gamma = 0.9) :
73 b(
std::abs(ActivationFunction::Inv(1 - epsilon) -
74 ActivationFunction::Inv(epsilon)))
86 void Initialize(arma::Mat<eT>& W,
const size_t rows,
const size_t cols)
91 W = (b / (k * rows)) * arma::sqrt(W + 1);
105 W = (b / (k * W.n_rows)) * arma::sqrt(W + 1);
117 template<
typename eT>
124 W.set_size(rows, cols, slices);
126 for (
size_t i = 0; i < slices; ++i)
136 template<
typename eT>
140 Log::Fatal <<
"Cannot initialize an empty cube." << std::endl;
142 for (
size_t i = 0; i < W.n_slices; ++i)
The core includes that mlpack expects; standard C++ includes and Armadillo.
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::Mat< eT > &W)
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.
Linear algebra utility functions, generally performed on matrices or vectors.
This class is used to initialize the weight matrix with the oivs method.
This class is used to initialize randomly the weight matrix.
static MLPACK_EXPORT util::PrefixedOutStream Fatal
Prints fatal messages prefixed with [FATAL], then terminates the program.
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.
void Initialize(arma::Mat< eT > &W, const size_t rows, const size_t cols)
Initialize randomly the elements of the specified weight matrix.
OivsInitialization(const double epsilon=0.1, const int k=5, const double gamma=0.9)
Initialize the random initialization rule with the given values.