PaddleRec
PaddleRec copied to clipboard
关于rank目录下所有涉及DNN组网的一个bug
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
太多了,你们查下吧,我不列举了。
收到,多谢反馈~