bonlime / keras-deeplab-v3-plus

Keras implementation of Deeplab v3+ with pretrained weights
MIT License
1.36k stars 428 forks source link

why training accuracy is always low #111

Closed jovahe closed 5 years ago

jovahe commented 5 years ago

I use deeplab V3+ model to train a remote sensing dataset which has 4 spectral bands. However, the training loss and acc are all very slow, such as :loss: 0.0329 - acc: 0.0093. so I would like to ask why?

jovahe commented 5 years ago

I see the model.summary() as follw: decoder_conv1_pointwise_BN (Bat (None, 128, 128, 256 1024 decoder_conv1_pointwise[0][0]


activation_81 (Activation) (None, 128, 128, 256 0 decoder_conv1_pointwise_BN[0][0]


custom_logits_semantic (Conv2D) (None, 128, 128, 1) 257 activation_81[0][0]


bilinear_upsampling_3 (Bilinear (None, 512, 512, 1) 0 custom_logits_semantic[0][0]

Total params: 41,253,073 Trainable params: 41,050,273 Non-trainable params: 202,800 the last layer is not sigmoid or softmax, should I add a layer?

jovahe commented 5 years ago

I have find the reason and fixed it. this due to no last activation layer in the model in old code version, so I add the acivation layer int Deeplabv3() function difinition refered to the new version. if activation in {'softmax', 'sigmoid'}: x = Activation(activation, name=activation)(x)