PaddlePaddle / Paddle

PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)
http://www.paddlepaddle.org/
Apache License 2.0
22.14k stars 5.56k forks source link

paddle的ssd训练中加入senet或者dsfd这种结构的时候,无故出现nan的情况。 #16976

Closed takecareofbigboss closed 5 years ago

takecareofbigboss commented 5 years ago

在ssd检测结构中,添加senet或者dsfd这样的结构,在paddle里面无故出现nan。但是在caffe和pytorch都是正常的,想问下什么原因?

senet代码: def inceptionA_senet(data): pool1 = fluid.layers.pool2d( input=data, pool_size=3, pool_padding=1, pool_type='avg') conv1 = conv_bn_layer(pool1, 32, 1, act='relu')

conv2 = conv_bn_layer(data, 32, 1, act='relu')

conv3 = conv_bn_layer(data, 24, 1, act='relu')
conv3 = conv_bn_layer(conv3, 32, 3, padding=1, act='relu')

conv4 = conv_bn_layer(data, 24, 1, act='relu')
conv4 = conv_bn_layer(conv4, 32, 3, padding=1, act='relu')
conv4 = conv_bn_layer(conv4, 32, 3, padding=1, act='relu')

concat = fluid.layers.concat([conv1, conv2, conv3, conv4], axis=1)

# scale = squeeze_excitation(input=concat, num_channels=128, reduction_ratio=16)

pool_se = fluid.layers.pool2d(
    input=concat, pool_size=0, global_pooling=True, pool_type='avg')  

b_attr = ParamAttr(learning_rate=2., regularizer=L2Decay(0.))
conv1_se = fluid.layers.conv2d(pool_se, 8, 1, 1, 0, act='relu', bias_attr=b_attr)
conv2_se = fluid.layers.conv2d(conv1_se, 128, 1, 1, 0, act='sigmoid', bias_attr=b_attr)
scale_se = fluid.layers.elementwise_mul(x=concat, y=conv2_se, axis=0)

return scale_se

请求各位解决,急急急。。。

wangguibao commented 5 years ago

请您具体说一下,是什么地方出现nan?最好提供完整的代码和复现场景,我们这边一起看一下?