44 Dense(
int in,
int out,
61 [[deprecated(
"use Activations::Activation enum")]]
62 Dense(
int in,
int out,
const std::string& actStr);
69 const Eigen::MatrixXd&
weights() const noexcept {
return W_; }
70 const Eigen::VectorXd&
biases() const noexcept {
return b_; }
74 void setBiases(
const Eigen::VectorXd& b) { b_ = b; }
83 std::pair<Eigen::MatrixXd, Eigen::MatrixXd>
forward(
84 const Eigen::MatrixXd& input)
const;
99 Eigen::MatrixXd
backward(
const Eigen::MatrixXd& nextW,
100 const Eigen::MatrixXd& nextdZ,
101 const Eigen::MatrixXd& currZ)
const;
114 Eigen::MatrixXd
backward(
const Eigen::MatrixXd& upstream,
115 const Eigen::MatrixXd& currZ)
const;
123 Eigen::MatrixXd
propagate(
const Eigen::MatrixXd& dZ)
const;
128 void update(
const Eigen::MatrixXd& dW,
const Eigen::VectorXd& db,
Per-activation hyperparameters for FlexNN::Activations.
Public activation enum and helpers for FlexNN.
Shared PODs for FlexNN::Layers — LayerType, DType, and per-type Params.
Fully-connected layer: Z = W*X + b, A = act(Z).
Definition Dense.hpp:31
LayerType type() const noexcept
Definition Dense.hpp:65
Activations::Activation activation() const noexcept
Definition Dense.hpp:66
void setActivationParameters(const Activations::ActivationParameters &p)
Definition Dense.hpp:75
const DenseParams & params() const noexcept
Definition Dense.hpp:68
const Eigen::VectorXd & biases() const noexcept
Definition Dense.hpp:70
const Activations::ActivationParameters & activationParams() const noexcept
Definition Dense.hpp:67
void setBiases(const Eigen::VectorXd &b)
Definition Dense.hpp:74
void update(const Eigen::MatrixXd &dW, const Eigen::VectorXd &db, double lr) noexcept
SGD update: W -= lr*dW, b -= lr*db.
Definition Dense.cpp:73
Eigen::MatrixXd propagate(const Eigen::MatrixXd &dZ) const
Propagate gradient to previous layer: dX = W^T * dZ.
Definition Dense.cpp:69
const Eigen::MatrixXd & weights() const noexcept
Definition Dense.hpp:69
std::pair< Eigen::MatrixXd, Eigen::MatrixXd > forward(const Eigen::MatrixXd &input) const
Forward pass: Z = W*X + b, A = act(Z).
Definition Dense.cpp:42
void setWeights(const Eigen::MatrixXd &W)
Definition Dense.hpp:73
Eigen::MatrixXd backward(const Eigen::MatrixXd &nextW, const Eigen::MatrixXd &nextdZ, const Eigen::MatrixXd &currZ) const
Backward: ‘dZ = f’(Z) ⊙ (W_next^T * dZ_next)ordZ = W_next^T*dZ_next` if None.
Definition Dense.cpp:51
Activation
Activation function identifier.
Definition Activation.hpp:41
Definition BatchNorm1D.hpp:24
LayerType
Layer kind, stable on-wire (uint8_t).
Definition LayerTypes.hpp:22
@ Dense
Fully-connected: W[out×in], b[out].
Hyperparameters for activations.
Definition ActivationParameters.hpp:30
Parameters for a Dense layer.
Definition LayerTypes.hpp:49