PaddleRec icon indicating copy to clipboard operation
PaddleRec copied to clipboard

关于rank目录下所有涉及DNN组网的一个bug

Open tz28 opened this issue 2 years ago • 1 comments

rank目录下涉及到DNN组装的模型全部存在一个bug,在dnn组网中激活函数没有加入到网络中,如下所示:

        acts = ["relu" for _ in range(len(self.layer_sizes))] + [None]
        self._mlp_layers = []
        for i in range(len(self.layer_sizes)):  # + 1):
            linear = paddle.nn.Linear(
                in_features=sizes[i],
                out_features=sizes[i + 1],
                weight_attr=paddle.ParamAttr(
                    initializer=paddle.nn.initializer.Normal(
                        std=1.0 / math.sqrt(sizes[i]))))
            self.add_sublayer('linear_%d' % i, linear)
            self._mlp_layers.append(linear)
            if acts[i] == 'relu':
                act = paddle.nn.ReLU()
                self.add_sublayer('act_%d' % i, act)

少了语句self._mlp_layers.append(act),导致后面在dnn forward时(如下所示代码),激活函数完全没有起作用。

        for n_layer in self._mlp_layers:
            dnn_feat = n_layer(dnn_feat)

存在此bug的模型有: DCN:https://github.com/PaddlePaddle/PaddleRec/blob/master/models/rank/dcn/net.py#L90 DCNV2:https://github.com/PaddlePaddle/PaddleRec/blob/master/models/rank/dcn_v2/net.py#L171 deepfefm:https://github.com/PaddlePaddle/PaddleRec/blob/master/models/rank/deepfefm/net.py#L226 deepfm:https://github.com/PaddlePaddle/PaddleRec/blob/master/models/rank/deepfm/net.py#L166

太多了,你们查下吧,我不列举了。

tz28 avatar Mar 19 '22 05:03 tz28

收到,多谢反馈~

wangzhen38 avatar Mar 21 '22 02:03 wangzhen38