Add header files to include /Update CmakeLists

This commit is contained in:
sosokker 2023-08-23 23:53:06 +07:00
parent bc9a84e3e9
commit c168208b49
3 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,16 @@
#include <functional>
#include <Eigen/Dense>
#include <Layers/Layers.hpp>
class Activation : public Layer {
public:
Activation(std::function<Eigen::VectorXd(const Eigen::VectorXd&)> activation,
std::function<Eigen::VectorXd(const Eigen::VectorXd&)> activation_prime);
void forward(const Eigen::VectorXd& input) override;
void backward(const Eigen::VectorXd& output_gradient, double learning_rate) override;
private:
std::function<Eigen::VectorXd(const Eigen::VectorXd&)> activation;
std::function<Eigen::VectorXd(const Eigen::VectorXd&)> activation_prime;
};

22
include/Layers/Layers.hpp Normal file
View File

@ -0,0 +1,22 @@
#ifndef LAYERS_HPP
#define LAYERS_HPP
#include <Eigen/Dense>
class Layer {
public:
Layer();
virtual void forward(const Eigen::VectorXd& input_data);
virtual void backward(const Eigen::VectorXd& output_gradient, double learning_rate);
const Eigen::VectorXd& getOutput() const;
const Eigen::VectorXd& getInputGradient() const;
protected:
Eigen::VectorXd input;
Eigen::VectorXd output;
Eigen::VectorXd input_gradient;
};
#endif // LAYERS_HPP

View File

@ -9,6 +9,8 @@ set(CMAKE_CXX_STANDARD 11)
include_directories(include)
include_directories(${CMAKE_SOURCE_DIR}/include)
include_directories(${CMAKE_SOURCE_DIR}/Eigen)
include_directories(${CMAKE_SOURCE_DIR}/include/Activation)
include_directories(${CMAKE_SOURCE_DIR}/include/Layers)
# Add source files to the project
file(GLOB_RECURSE SOURCES "src/*.cpp")