From 336855ccde784104f1648010d2b610c454c448f6 Mon Sep 17 00:00:00 2001 From: Konstantin Sidorov Date: Sat, 22 Jul 2017 11:06:47 +0300 Subject: [PATCH] Fixed cppcheck issues + removing legacy code --- .../minibatch_sgd/minibatch_sgd.hpp | 4 +-- .../minibatch_sgd/minibatch_sgd_impl.hpp | 2 +- src/mlpack/core/optimizers/sgd/sgd.hpp | 32 ++----------------- src/mlpack/core/optimizers/sgd/sgd_impl.hpp | 24 ++------------ .../sgd/update_policies/gradient_clipping.hpp | 10 ++---- 5 files changed, 11 insertions(+), 61 deletions(-) diff --git a/src/mlpack/core/optimizers/minibatch_sgd/minibatch_sgd.hpp b/src/mlpack/core/optimizers/minibatch_sgd/minibatch_sgd.hpp index 3bcaf038d6..0a7276d5ac 100644 --- a/src/mlpack/core/optimizers/minibatch_sgd/minibatch_sgd.hpp +++ b/src/mlpack/core/optimizers/minibatch_sgd/minibatch_sgd.hpp @@ -163,7 +163,7 @@ class MiniBatchSGDType bool ResetPolicy() const { return resetPolicy; } //! Modify whether or not the update policy parameters //! are reset before Optimize call. - bool& ResetPolicy() { return resetPolicy; } + bool& ResetPolicy() { return resetPolicy; } //! Get the update policy. UpdatePolicyType UpdatePolicy() const { return updatePolicy; } @@ -211,4 +211,4 @@ using MiniBatchSGD = MiniBatchSGDType; // Include implementation. #include "minibatch_sgd_impl.hpp" -#endif \ No newline at end of file +#endif diff --git a/src/mlpack/core/optimizers/minibatch_sgd/minibatch_sgd_impl.hpp b/src/mlpack/core/optimizers/minibatch_sgd/minibatch_sgd_impl.hpp index 59de823128..16be3ec035 100644 --- a/src/mlpack/core/optimizers/minibatch_sgd/minibatch_sgd_impl.hpp +++ b/src/mlpack/core/optimizers/minibatch_sgd/minibatch_sgd_impl.hpp @@ -182,4 +182,4 @@ double MiniBatchSGDType< } // namespace optimization } // namespace mlpack -#endif \ No newline at end of file +#endif diff --git a/src/mlpack/core/optimizers/sgd/sgd.hpp b/src/mlpack/core/optimizers/sgd/sgd.hpp index bc2ce88481..7bfa7825cb 100644 --- a/src/mlpack/core/optimizers/sgd/sgd.hpp +++ b/src/mlpack/core/optimizers/sgd/sgd.hpp @@ -108,10 +108,7 @@ class SGD const double tolerance = 1e-5, const bool shuffle = true, const UpdatePolicyType updatePolicy = UpdatePolicyType(), - const bool resetPolicy = true, - const bool clipGradient = false, - const double minGradient = 0.0, - const double maxGradient = 0.0); + const bool resetPolicy = true); /** * Optimize the given function using stochastic gradient descent. The given @@ -154,21 +151,6 @@ class SGD //! are reset before Optimize call. bool& ResetPolicy() { return resetPolicy; } - //! Get whether or not the gradient is clipped. - bool ClipGradient() const { return clipGradient; } - //! Modify whether or not the gradient is clipped. - bool& ClipGradient() { return clipGradient; } - - //! Get minimum gradient value. - double MinGradient() const { return minGradient; } - //! Modify minimum gradient value. - double& MinGradient() { return minGradient; } - - //! Get maximum gradient value. - double MaxGradient() const { return maxGradient; } - //! Modify maximum gradient value. - double& MaxGradient() { return maxGradient; } - //! Get the update policy. UpdatePolicyType UpdatePolicy() const { return updatePolicy; } //! Modify the update policy. @@ -194,16 +176,6 @@ class SGD //! Flag indicating whether update policy //! should be reset before running optimization. bool resetPolicy; - - //! Flag that determines whether gradient should be clipped - //! to some range before every SGD step. - bool clipGradient; - - //! Minimum gradient value. - double minGradient; - - //! Maximum gradient value. - double maxGradient; }; using StandardSGD = SGD; @@ -216,4 +188,4 @@ using MomentumSGD = SGD; // Include implementation. #include "sgd_impl.hpp" -#endif \ No newline at end of file +#endif diff --git a/src/mlpack/core/optimizers/sgd/sgd_impl.hpp b/src/mlpack/core/optimizers/sgd/sgd_impl.hpp index 5486f47081..4bfa4b6481 100644 --- a/src/mlpack/core/optimizers/sgd/sgd_impl.hpp +++ b/src/mlpack/core/optimizers/sgd/sgd_impl.hpp @@ -30,19 +30,13 @@ SGD::SGD( const double tolerance, const bool shuffle, const UpdatePolicyType updatePolicy, - const bool resetPolicy, - const bool clipGradient, - const double minGradient, - const double maxGradient) : + const bool resetPolicy) : stepSize(stepSize), maxIterations(maxIterations), tolerance(tolerance), shuffle(shuffle), updatePolicy(updatePolicy), - resetPolicy(resetPolicy), - clipGradient(clipGradient), - minGradient(minGradient), - maxGradient(maxGradient) + resetPolicy(resetPolicy) { /* Nothing to do. */ } //! Optimize the function (minimize). @@ -116,18 +110,6 @@ double SGD::Optimize( else function.Gradient(iterate, currentFunction, gradient); - // Clip the gradient. - if (clipGradient) - { - gradient.transform - ( - [&](double val) - { - return std::min(std::max(val, minGradient), maxGradient); - } - ); - } - // Use the update policy to take a step. updatePolicy.Update(iterate, stepSize, gradient); @@ -156,4 +138,4 @@ double SGD::Optimize( } // namespace optimization } // namespace mlpack -#endif \ No newline at end of file +#endif diff --git a/src/mlpack/core/optimizers/sgd/update_policies/gradient_clipping.hpp b/src/mlpack/core/optimizers/sgd/update_policies/gradient_clipping.hpp index fb54c9e433..321df63e37 100644 --- a/src/mlpack/core/optimizers/sgd/update_policies/gradient_clipping.hpp +++ b/src/mlpack/core/optimizers/sgd/update_policies/gradient_clipping.hpp @@ -73,13 +73,9 @@ class GradientClipping const arma::mat& gradient) { // First, clip the gradient. - gradient.transform - ( - [&](double val) - { - return std::min(std::max(val, minGradient), maxGradient); - } - ); + gradient.transform( + [&](double val) + { return std::min(std::max(val, minGradient), maxGradient); }); // And only then do the update. updatePolicy.Update(iterate, stepSize, gradient); }