12 #ifndef MLPACK_METHODS_ANN_LAYER_ISRLU_IMPL_HPP 13 #define MLPACK_METHODS_ANN_LAYER_ISRLU_IMPL_HPP 21 template<
typename InputDataType,
typename OutputDataType>
26 template<
typename InputDataType,
typename OutputDataType>
27 template<
typename InputType,
typename OutputType>
29 const InputType& input, OutputType& output)
31 output = arma::ones<OutputDataType>(arma::size(input));
32 for (
size_t i = 0; i < input.n_elem; ++i)
34 output(i) = (input(i) >= 0) ? input(i) : input(i) *
35 (1 / std::sqrt(1 + alpha * (input(i) * input(i))));
39 template<
typename InputDataType,
typename OutputDataType>
40 template<
typename DataType>
42 const DataType& input,
const DataType& gy, DataType& g)
44 derivative.set_size(arma::size(input));
45 for (
size_t i = 0; i < input.n_elem; ++i)
47 derivative(i) = (input(i) >= 0) ? 1 :
48 std::pow(1 / std::sqrt(1 + alpha * input(i) * input(i)), 3);
53 template<
typename InputDataType,
typename OutputDataType>
54 template<
typename Archive>
59 ar(CEREAL_NVP(alpha));
void serialize(Archive &ar, const uint32_t)
Serialize the layer.
Definition: isrlu_impl.hpp:55
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
void Backward(const DataType &input, const DataType &gy, DataType &g)
Ordinary feed backward pass of a neural network, calculating the function f(x) by propagating x backw...
Definition: isrlu_impl.hpp:41
ISRLU(const double alpha=1.0)
Create the ISRLU object using the specified parameter.
Definition: isrlu_impl.hpp:22
void Forward(const InputType &input, OutputType &output)
Ordinary feed forward pass of a neural network, evaluating the function f(x) by propagating the activ...
Definition: isrlu_impl.hpp:28