31 namespace neural_nets {
32 namespace optimization {
38 template <
typename eT=
float>
48 v = MAKE_MATRIX_PTR(eT, rows_, cols_);
59 mic::types::MatrixPtr<eT>
calculateUpdate(mic::types::MatrixPtr<eT> x_, mic::types::MatrixPtr<eT> dx_, eT learning_rate_ = 0.001) {
60 assert(x_->size() == dx_->size());
61 assert(x_->size() ==
v->size());
64 for (
size_t i=0; i<(size_t)x_->size(); i++)
65 (*
v)[i] =
momentum * (*v)[i] + learning_rate_ * (*dx_)[i];
73 mic::types::MatrixPtr<eT>
v;
mic::types::MatrixPtr< eT > v
Update vector.
Abstract class representing interface to optimization function.
eT momentum
Momentum rate.
mic::types::MatrixPtr< eT > calculateUpdate(mic::types::MatrixPtr< eT > x_, mic::types::MatrixPtr< eT > dx_, eT learning_rate_=0.001)
Momentum(size_t rows_, size_t cols_, eT momentum_=0.9)
Update in the direction of gradient descent - with momentum.