From a0b3c0dde8e01586630bb4dfe488cd2b0b3bc2f4 Mon Sep 17 00:00:00 2001 From: Huihuang Zheng Date: Mon, 20 Jul 2020 12:14:48 +0800 Subject: [PATCH] Write Simnet Correctly and Enable Multiple Return Test (#25574) We found that the reason of multiple return error in SimNet is that I wrote wrong task_mode. If we set task_mode as "pairwise" correctly, which is a format of the model input data, the multiple return won't have problem in the unit test. In this PR we corrected the task_mode and enable multiple return in SimNet unit test. --- .../dygraph_to_static/simnet_dygraph_model.py | 33 +++++++------------ .../dygraph_to_static/test_simnet.py | 2 +- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/python/paddle/fluid/tests/unittests/dygraph_to_static/simnet_dygraph_model.py b/python/paddle/fluid/tests/unittests/dygraph_to_static/simnet_dygraph_model.py index 331eeeb3de6..bb7e0ca2a0c 100644 --- a/python/paddle/fluid/tests/unittests/dygraph_to_static/simnet_dygraph_model.py +++ b/python/paddle/fluid/tests/unittests/dygraph_to_static/simnet_dygraph_model.py @@ -492,25 +492,16 @@ class BOW(Layer): left_soft = softsign_layer.ops(bow_left) right_soft = softsign_layer.ops(bow_right) - left_bow = self.bow_layer(left_soft) - right_bow = self.bow_layer(right_soft) - cos_sim_layer = CosSimLayer() - pred = cos_sim_layer.ops(left_bow, right_bow) - return left_bow, pred - - # TODO(huihuangzheng): uncomment the following return statements after - # we fix it. - # # matching layer - #if self.task_mode == "pairwise": - # left_bow = self.bow_layer(left_soft) - # right_bow = self.bow_layer(right_soft) - # cos_sim_layer = CosSimLayer() - # pred = cos_sim_layer.ops(left_bow, right_bow) - # return left_bow, pred - #else: - # concat_layer = ConcatLayer(1) - # concat = concat_layer.ops([left_soft, right_soft]) - # concat_fc = self.bow_layer_po(concat) - # pred = self.softmax_layer(concat_fc) - # return left_soft, pred + if self.task_mode == "pairwise": + left_bow = self.bow_layer(left_soft) + right_bow = self.bow_layer(right_soft) + cos_sim_layer = CosSimLayer() + pred = cos_sim_layer.ops(left_bow, right_bow) + return left_bow, pred + else: + concat_layer = ConcatLayer(1) + concat = concat_layer.ops([left_soft, right_soft]) + concat_fc = self.bow_layer_po(concat) + pred = self.softmax_layer(concat_fc) + return left_soft, pred diff --git a/python/paddle/fluid/tests/unittests/dygraph_to_static/test_simnet.py b/python/paddle/fluid/tests/unittests/dygraph_to_static/test_simnet.py index 373e942f6f3..552a6307f33 100644 --- a/python/paddle/fluid/tests/unittests/dygraph_to_static/test_simnet.py +++ b/python/paddle/fluid/tests/unittests/dygraph_to_static/test_simnet.py @@ -28,7 +28,7 @@ random.seed(SEED) def create_conf_dict(): conf_dict = {} - conf_dict["task_mode"] = "train" + conf_dict["task_mode"] = "pairwise" conf_dict["net"] = {"emb_dim": 128, "bow_dim": 128, "hidden_dim": 128} conf_dict["loss"] = {"margin": 0.1} return conf_dict -- GitLab