From abe878ee722271277b01e6cb53b1000c935d12ba Mon Sep 17 00:00:00 2001 From: Relintai Date: Sat, 4 Feb 2023 15:59:27 +0100 Subject: [PATCH] Renamed MLPPMLP to MLPPMLPOld. --- mlpp/mlp/mlp.cpp | 28 ++++++++++++++-------------- mlpp/mlp/mlp.h | 7 ++----- test/mlpp_tests.cpp | 2 +- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/mlpp/mlp/mlp.cpp b/mlpp/mlp/mlp.cpp index 2b84cf9..598ac67 100644 --- a/mlpp/mlp/mlp.cpp +++ b/mlpp/mlp/mlp.cpp @@ -16,7 +16,7 @@ #include -MLPPMLP::MLPPMLP(std::vector> inputSet, std::vector outputSet, int n_hidden, std::string reg, real_t lambda, real_t alpha) : +MLPPMLPOld::MLPPMLPOld(std::vector> inputSet, std::vector outputSet, int n_hidden, std::string reg, real_t lambda, real_t alpha) : inputSet(inputSet), outputSet(outputSet), n_hidden(n_hidden), n(inputSet.size()), k(inputSet[0].size()), reg(reg), lambda(lambda), alpha(alpha) { MLPPActivation avn; y_hat.resize(n); @@ -27,15 +27,15 @@ MLPPMLP::MLPPMLP(std::vector> inputSet, std::vector bias2 = MLPPUtilities::biasInitialization(); } -std::vector MLPPMLP::modelSetTest(std::vector> X) { +std::vector MLPPMLPOld::modelSetTest(std::vector> X) { return Evaluate(X); } -real_t MLPPMLP::modelTest(std::vector x) { +real_t MLPPMLPOld::modelTest(std::vector x) { return Evaluate(x); } -void MLPPMLP::gradientDescent(real_t learning_rate, int max_epoch, bool UI) { +void MLPPMLPOld::gradientDescent(real_t learning_rate, int max_epoch, bool UI) { MLPPActivation avn; MLPPLinAlg alg; MLPPReg regularization; @@ -94,7 +94,7 @@ void MLPPMLP::gradientDescent(real_t learning_rate, int max_epoch, bool UI) { } } -void MLPPMLP::SGD(real_t learning_rate, int max_epoch, bool UI) { +void MLPPMLPOld::SGD(real_t learning_rate, int max_epoch, bool UI) { MLPPActivation avn; MLPPLinAlg alg; MLPPReg regularization; @@ -148,7 +148,7 @@ void MLPPMLP::SGD(real_t learning_rate, int max_epoch, bool UI) { forwardPass(); } -void MLPPMLP::MBGD(real_t learning_rate, int max_epoch, int mini_batch_size, bool UI) { +void MLPPMLPOld::MBGD(real_t learning_rate, int max_epoch, int mini_batch_size, bool UI) { MLPPActivation avn; MLPPLinAlg alg; MLPPReg regularization; @@ -214,24 +214,24 @@ void MLPPMLP::MBGD(real_t learning_rate, int max_epoch, int mini_batch_size, boo forwardPass(); } -real_t MLPPMLP::score() { +real_t MLPPMLPOld::score() { MLPPUtilities util; return util.performance(y_hat, outputSet); } -void MLPPMLP::save(std::string fileName) { +void MLPPMLPOld::save(std::string fileName) { MLPPUtilities util; util.saveParameters(fileName, weights1, bias1, 0, 1); util.saveParameters(fileName, weights2, bias2, 1, 2); } -real_t MLPPMLP::Cost(std::vector y_hat, std::vector y) { +real_t MLPPMLPOld::Cost(std::vector y_hat, std::vector y) { MLPPReg regularization; class MLPPCost cost; return cost.LogLoss(y_hat, y) + regularization.regTerm(weights2, lambda, alpha, reg) + regularization.regTerm(weights1, lambda, alpha, reg); } -std::vector MLPPMLP::Evaluate(std::vector> X) { +std::vector MLPPMLPOld::Evaluate(std::vector> X) { MLPPLinAlg alg; MLPPActivation avn; std::vector> z2 = alg.mat_vec_add(alg.matmult(X, weights1), bias1); @@ -239,7 +239,7 @@ std::vector MLPPMLP::Evaluate(std::vector> X) { return avn.sigmoid(alg.scalarAdd(bias2, alg.mat_vec_mult(a2, weights2))); } -std::tuple>, std::vector>> MLPPMLP::propagate(std::vector> X) { +std::tuple>, std::vector>> MLPPMLPOld::propagate(std::vector> X) { MLPPLinAlg alg; MLPPActivation avn; std::vector> z2 = alg.mat_vec_add(alg.matmult(X, weights1), bias1); @@ -247,7 +247,7 @@ std::tuple>, std::vector>> M return { z2, a2 }; } -real_t MLPPMLP::Evaluate(std::vector x) { +real_t MLPPMLPOld::Evaluate(std::vector x) { MLPPLinAlg alg; MLPPActivation avn; std::vector z2 = alg.addition(alg.mat_vec_mult(alg.transpose(weights1), x), bias1); @@ -255,7 +255,7 @@ real_t MLPPMLP::Evaluate(std::vector x) { return avn.sigmoid(alg.dot(weights2, a2) + bias2); } -std::tuple, std::vector> MLPPMLP::propagate(std::vector x) { +std::tuple, std::vector> MLPPMLPOld::propagate(std::vector x) { MLPPLinAlg alg; MLPPActivation avn; std::vector z2 = alg.addition(alg.mat_vec_mult(alg.transpose(weights1), x), bias1); @@ -263,7 +263,7 @@ std::tuple, std::vector> MLPPMLP::propagate(std::vec return { z2, a2 }; } -void MLPPMLP::forwardPass() { +void MLPPMLPOld::forwardPass() { MLPPLinAlg alg; MLPPActivation avn; z2 = alg.mat_vec_add(alg.matmult(inputSet, weights1), bias1); diff --git a/mlpp/mlp/mlp.h b/mlpp/mlp/mlp.h index ea2cd6b..8271a75 100644 --- a/mlpp/mlp/mlp.h +++ b/mlpp/mlp/mlp.h @@ -14,11 +14,9 @@ #include #include - - -class MLPPMLP { +class MLPPMLPOld { public: - MLPPMLP(std::vector> inputSet, std::vector outputSet, int n_hidden, std::string reg = "None", real_t lambda = 0.5, real_t alpha = 0.5); + MLPPMLPOld(std::vector> inputSet, std::vector outputSet, int n_hidden, std::string reg = "None", real_t lambda = 0.5, real_t alpha = 0.5); std::vector modelSetTest(std::vector> X); real_t modelTest(std::vector x); void gradientDescent(real_t learning_rate, int max_epoch, bool UI = false); @@ -59,5 +57,4 @@ private: real_t alpha; /* This is the controlling param for Elastic Net*/ }; - #endif /* MLP_hpp */ diff --git a/test/mlpp_tests.cpp b/test/mlpp_tests.cpp index a1962bf..1528d46 100644 --- a/test/mlpp_tests.cpp +++ b/test/mlpp_tests.cpp @@ -393,7 +393,7 @@ void MLPPTests::test_mlp(bool ui) { inputSet = alg.transpose(inputSet); std::vector outputSet = { 0, 1, 1, 0 }; - MLPPMLP model(inputSet, outputSet, 2); + MLPPMLPOld model(inputSet, outputSet, 2); model.gradientDescent(0.1, 10000, ui); alg.printVector(model.modelSetTest(inputSet)); std::cout << "ACCURACY: " << 100 * model.score() << "%" << std::endl;