fix to use epsilon from config file
authorjijoong.moon <jijoong.moon@samsung.com>
Tue, 26 Nov 2019 01:58:25 +0000 (10:58 +0900)
committer문지중/On-Device Lab(SR)/Principal Engineer/삼성전자 <jijoong.moon@samsung.com>
Tue, 26 Nov 2019 02:07:14 +0000 (11:07 +0900)
**Self evaluation:**
1. Build test:  [X]Passed [ ]Failed [ ]Skipped
2. Run test:  [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
LogisticRegression/res/LogisticRegression.ini
NeuralNet/layers.cpp

index c0a7e05..5db701f 100644 (file)
@@ -12,6 +12,7 @@ Cost = logistic               # Cost(loss) function : msr (mean square root error)
                         #                       logistic ( for logistic regression )
 Model = "model.bin"    # model path to save / read
 minibatch = 1          # mini batch size
+epsilon = 1e-5
 
 # Layer Section : Name
 [inputlayer]
index 20ddf57..3ee73e5 100644 (file)
@@ -234,9 +234,9 @@ Matrix OutputLayer::backwarding(Matrix label, int iteration) {
   if (cost == COST_LOGISTIC) {
     dJdB = Y.subtract(Y2);
     Matrix temp =
-        ((Y2.multiply(-1.0).transpose().dot(Y.add(1e-5).applyFunction(log)))
+        ((Y2.multiply(-1.0).transpose().dot(Y.add(opt.epsilon).applyFunction(log)))
              .subtract(Y2.multiply(-1.0).add(1.0).transpose().dot(
-                 Y.multiply(-1.0).add(1.0).add(1e-5).applyFunction(log))));
+                 Y.multiply(-1.0).add(1.0).add(opt.epsilon).applyFunction(log))));
     loss = (1.0 / Y.Mat2Vec().size()) * temp.Mat2Vec()[0];
   } else {
     Matrix sub = Y2.subtract(Y);