vlfeat / matconvnet

MatConvNet: CNNs for MATLAB
Other
1.4k stars 753 forks source link

implementing DenseNet in matconvnet #1101

Open patienceFromZhou opened 6 years ago

patienceFromZhou commented 6 years ago

Densenet https://arxiv.org/pdf/1608.06993.pdf has been proved efficient. here i got some trouble implementing it in matconvnet.

as shown in the paper, the feature maps of all preceding layers are treated as separate inputs whereas its own feature maps are passed on as inputs to all subsequent layers. i use vl_nnconcat to concat two tensors sized 80×80x32 and surely i got a 80x80x64 one. the question is, when feed the concatenated tensor into next conv layer, the kernel size is 3x3x32xoutmaps. it seems the two tensors are calculated separately, not in a whole(which is ought to be 3x3x64xoutmaps ). is the paper intended to calculate them separately or i misunderstood it ? and what should i do if i was to calculate the tensors in a whole.

hbilen commented 6 years ago

You can find pretrained densenet models in http://www.robots.ox.ac.uk/~albanie/mcn-models.html. You can easily reinitialise model parameters to train from scratch

Addhi86 commented 3 years ago

@hbilen I downloaded the densenet 121, the layers parameter I checked is bit different from what we generally do for the convolutional neural network. the first convolutional layer is 7x7x3x64, max pooling , convolutional layer-a 1x1x64x128 convolutional laye-b 3x3x128x32 convolutional layer-c 1x1x64x128 convolutional layer-d 3x3x128x32 convolutional layer-e 1x1x128x128 convolutional layer-f 3x3x128x32 ... I want to know that why there is difference in the output of convolutional layer-d and in the intput of the convolutional layer-e?