From 59bfa3e85063ea832b1f48e1bb549a6bc0fbdf5a Mon Sep 17 00:00:00 2001
From: haonanyu <haonanyu@baidu.com>
Date: Thu, 22 Feb 2018 11:58:26 -0800
Subject: [PATCH] fix a bug of sub() in layer_math.py

---
 python/paddle/trainer_config_helpers/layer_math.py             | 2 +-
 .../tests/configs/protostr/math_ops.protostr                   | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/python/paddle/trainer_config_helpers/layer_math.py b/python/paddle/trainer_config_helpers/layer_math.py
index e1c8f0c3500..ee84188bacc 100644
--- a/python/paddle/trainer_config_helpers/layer_math.py
+++ b/python/paddle/trainer_config_helpers/layer_math.py
@@ -75,7 +75,7 @@ LayerOutput.__add__ = add
 
 def sub(layeroutput, other):
     if is_compatible_with(other, float):
-        return slope_intercept_layer(input=layeroutput, intercept=other)
+        return slope_intercept_layer(input=layeroutput, intercept=-other)
     if not isinstance(other, LayerOutput):
         logger.fatal("LayerOutput can only be subtracted with"
                      " another Layeroutput or a number")
diff --git a/python/paddle/trainer_config_helpers/tests/configs/protostr/math_ops.protostr b/python/paddle/trainer_config_helpers/tests/configs/protostr/math_ops.protostr
index eaaf7fd6f5b..582207741ab 100644
--- a/python/paddle/trainer_config_helpers/tests/configs/protostr/math_ops.protostr
+++ b/python/paddle/trainer_config_helpers/tests/configs/protostr/math_ops.protostr
@@ -230,7 +230,7 @@ layers {
     input_layer_name: "__mixed_1__"
   }
   slope: 1.0
-  intercept: 2
+  intercept: -2
 }
 layers {
   name: "__slope_intercept_layer_4__"
@@ -411,4 +411,3 @@ sub_models {
   output_layer_names: "__mixed_3__"
   is_recurrent_layer_group: false
 }
-
-- 
GitLab