18#include "../activations/Activation.hpp"
31 std::pair<Eigen::MatrixXd, Eigen::MatrixXd>
forward(
32 const Eigen::MatrixXd& input)
const;
33 Eigen::MatrixXd
backward(
const Eigen::MatrixXd& upstream,
34 const Eigen::MatrixXd& currZ)
const;
35 Eigen::MatrixXd
backward(
const Eigen::MatrixXd& nextW,
36 const Eigen::MatrixXd& nextdZ,
37 const Eigen::MatrixXd& currZ)
const;
38 Eigen::MatrixXd
propagate(
const Eigen::MatrixXd& dZ)
const;
39 std::pair<Eigen::MatrixXd, Eigen::VectorXd>
grad(
40 const Eigen::MatrixXd& dZ,
const Eigen::MatrixXd& input)
const;
41 void update(
const Eigen::MatrixXd& dW,
const Eigen::VectorXd& db,
43 void updateWeights(
const Eigen::MatrixXd& dW,
const Eigen::VectorXd& db,
49 int l_out(
int L_in)
const noexcept;
53 mutable std::vector<std::vector<int>> argmax_cache_;
54 mutable int last_L_in_ = 0;
55 mutable int last_batch_ = 0;
67 std::pair<Eigen::MatrixXd, Eigen::MatrixXd>
forward(
68 const Eigen::MatrixXd& input)
const;
69 Eigen::MatrixXd
backward(
const Eigen::MatrixXd& upstream,
70 const Eigen::MatrixXd& currZ)
const;
71 Eigen::MatrixXd
backward(
const Eigen::MatrixXd& nextW,
72 const Eigen::MatrixXd& nextdZ,
73 const Eigen::MatrixXd& currZ)
const;
74 Eigen::MatrixXd
propagate(
const Eigen::MatrixXd& dZ)
const;
75 std::pair<Eigen::MatrixXd, Eigen::VectorXd>
grad(
76 const Eigen::MatrixXd& dZ,
const Eigen::MatrixXd& input)
const;
77 void update(
const Eigen::MatrixXd& dW,
const Eigen::VectorXd& db,
79 void updateWeights(
const Eigen::MatrixXd& dW,
const Eigen::VectorXd& db,
85 int l_out(
int L_in)
const noexcept;
Shared PODs for FlexNN::Layers — LayerType, DType, and per-type Params.
const Pool1DParams & params() const noexcept
Definition Pool1D.hpp:65
std::pair< Eigen::MatrixXd, Eigen::VectorXd > grad(const Eigen::MatrixXd &dZ, const Eigen::MatrixXd &input) const
Definition Pool1D.cpp:233
Eigen::MatrixXd propagate(const Eigen::MatrixXd &dZ) const
Definition Pool1D.cpp:203
void update(const Eigen::MatrixXd &dW, const Eigen::VectorXd &db, double lr) noexcept
Definition Pool1D.cpp:238
void updateWeights(const Eigen::MatrixXd &dW, const Eigen::VectorXd &db, double lr) noexcept
Definition Pool1D.hpp:79
LayerType type() const noexcept
Definition Pool1D.hpp:63
Activations::Activation activation() const noexcept
Definition Pool1D.hpp:64
std::pair< Eigen::MatrixXd, Eigen::MatrixXd > forward(const Eigen::MatrixXd &input) const
Definition Pool1D.cpp:156
Eigen::MatrixXd backward(const Eigen::MatrixXd &upstream, const Eigen::MatrixXd &currZ) const
Definition Pool1D.cpp:188
const Pool1DParams & params() const noexcept
Definition Pool1D.hpp:29
LayerType type() const noexcept
Definition Pool1D.hpp:27
void update(const Eigen::MatrixXd &dW, const Eigen::VectorXd &db, double lr) noexcept
Definition Pool1D.cpp:140
Eigen::MatrixXd propagate(const Eigen::MatrixXd &dZ) const
Definition Pool1D.cpp:100
std::pair< Eigen::MatrixXd, Eigen::MatrixXd > forward(const Eigen::MatrixXd &input) const
Definition Pool1D.cpp:36
Eigen::MatrixXd backward(const Eigen::MatrixXd &upstream, const Eigen::MatrixXd &currZ) const
Definition Pool1D.cpp:85
Activations::Activation activation() const noexcept
Definition Pool1D.hpp:28
std::pair< Eigen::MatrixXd, Eigen::VectorXd > grad(const Eigen::MatrixXd &dZ, const Eigen::MatrixXd &input) const
Definition Pool1D.cpp:134
void updateWeights(const Eigen::MatrixXd &dW, const Eigen::VectorXd &db, double lr) noexcept
Definition Pool1D.hpp:43
Activation
Activation function identifier.
Definition Activation.hpp:41
@ None
Linear, no activation.
Definition BatchNorm1D.hpp:24
LayerType
Layer kind, stable on-wire (uint8_t).
Definition LayerTypes.hpp:22
@ MaxPool1D
Max pooling, weightless.
@ AvgPool1D
Average pooling, weightless.
Parameters for pooling layers (Max and Avg share this POD).
Definition LayerTypes.hpp:78