13 #ifndef MLPACK_METHODS_ANN_LAYER_DROPOUT_IMPL_HPP 14 #define MLPACK_METHODS_ANN_LAYER_DROPOUT_IMPL_HPP 22 template<
typename InputDataType,
typename OutputDataType>
26 scale(1.0 / (1.0 - ratio)),
32 template<
typename InputDataType,
typename OutputDataType>
37 deterministic(layer.deterministic)
42 template<
typename InputDataType,
typename OutputDataType>
45 ratio(
std::move(layer.ratio)),
46 scale(
std::move(scale)),
47 deterministic(
std::move(deterministic))
52 template<
typename InputDataType,
typename OutputDataType>
61 deterministic = layer.deterministic;
66 template<
typename InputDataType,
typename OutputDataType>
73 ratio = std::move(layer.ratio);
74 scale = std::move(layer.scale);
75 deterministic = std::move(layer.deterministic);
80 template<
typename InputDataType,
typename OutputDataType>
83 const arma::Mat<eT>& input,
84 arma::Mat<eT>& output)
96 mask = arma::randu<arma::Mat<eT> >(input.n_rows, input.n_cols);
97 mask.transform([&](
double val) {
return (val > ratio); });
98 output = input % mask * scale;
102 template<
typename InputDataType,
typename OutputDataType>
103 template<
typename eT>
105 const arma::Mat<eT>& ,
106 const arma::Mat<eT>& gy,
109 g = gy % mask * scale;
112 template<
typename InputDataType,
typename OutputDataType>
113 template<
typename Archive>
118 ar(CEREAL_NVP(ratio));
121 scale = 1.0 / (1.0 - ratio);
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
Definition: pointer_wrapper.hpp:23
Dropout(const double ratio=0.5)
Create the Dropout object using the specified ratio parameter.
Definition: dropout_impl.hpp:23
void serialize(Archive &ar, const uint32_t)
Serialize the layer.
Definition: dropout_impl.hpp:114
void Forward(const arma::Mat< eT > &input, arma::Mat< eT > &output)
Ordinary feed forward pass of the dropout layer.
Definition: dropout_impl.hpp:82
The dropout layer is a regularizer that randomly with probability 'ratio' sets input values to zero a...
Definition: dropout.hpp:53
void Backward(const arma::Mat< eT > &, const arma::Mat< eT > &gy, arma::Mat< eT > &g)
Ordinary feed backward pass of the dropout layer.
Definition: dropout_impl.hpp:104
Dropout & operator=(const Dropout &layer)
Copy assignment operator.
Definition: dropout_impl.hpp:55