52 Layer(
int inputSize,
int outputSize,
const std::string &activationFunction =
"relu")
53 : inputSize(inputSize), outputSize(outputSize), activationFunction(activationFunction)
56 W = Eigen::MatrixXd::Random(outputSize, inputSize) * 0.5;
57 b = Eigen::VectorXd::Random(outputSize) * 0.5;
105 void updateWeights(
const Eigen::MatrixXd &dW,
const Eigen::VectorXd &db,
double learningRate)
107 W -= learningRate * dW;
108 b -= learningRate * db;
120 std::pair<Eigen::MatrixXd, Eigen::MatrixXd>
forward(
const Eigen::MatrixXd &input);
133 Eigen::MatrixXd
backward(
const Eigen::MatrixXd &nextW,
const Eigen::MatrixXd &nextdZ,
const Eigen::MatrixXd &currZ);
149 std::string activationFunction;
Represents a single layer in a neural network.
Definition Layer.h:39
std::pair< Eigen::MatrixXd, Eigen::MatrixXd > forward(const Eigen::MatrixXd &input)
Forward pass through the layer.
Definition Layer.cpp:25
Eigen::MatrixXd backward(const Eigen::MatrixXd &nextW, const Eigen::MatrixXd &nextdZ, const Eigen::MatrixXd &currZ)
Backward pass through the layer.
Definition Layer.cpp:64
void updateWeights(const Eigen::MatrixXd &dW, const Eigen::VectorXd &db, double learningRate)
Update weights and biases.
Definition Layer.h:105
std::string getActivationFunction() const
Get activation string (for deprecated conversion to Layers::Dense).
Definition Layer.h:93
Eigen::MatrixXd getWeights() const
Getters for weights.
Definition Layer.h:67
Layer(int inputSize, int outputSize, const std::string &activationFunction="relu")
Constructor for the Layer class.
Definition Layer.h:52
Eigen::VectorXd getBiases() const
Getters for biases.
Definition Layer.h:79
Namespace for the FlexNN neural network library.
Definition Activation.hpp:31