sacmehta / ESPNetv2

A light-weight, power efficient, and general purpose convolutional neural network
MIT License
447 stars 70 forks source link

What does 's' mean? #10

Closed wrpha-group closed 5 years ago

wrpha-group commented 5 years ago

What does the network scale parameter 's' set during training mean? CUDA_VISIBLE_DEVICES = 0, 1, 2, 3 python main.py - batch_size 10 - s 1.0

On lines 34-37 of SegmentationModel.py if s <= 0.5: p = 0.1 else: p = 0.2

and line 46 self.project_l1 = nn.Sequential (nn.Dropout2d (p = p), C (self.net.level1.act.num_parameters + classes, classes, 1, 1))

I interpreted 's' as a parameter of dropout. However, looking at lines 34-37, it seems that there is no difference as s = 1.0 and s = 1.5 both p = 0.2.

What does 's' mean?

sacmehta commented 5 years ago

s is the scaling parameter which allows to grow or shrink the network width.

wrpha-group commented 5 years ago

Do you mean the number of repetitions of EESP unit?

sacmehta commented 5 years ago

Sorry I meant network width and not network depth.

wrpha-group commented 5 years ago

I am sorry to ask you many questions. Does width mean the number of branches in EESPunit?

sacmehta commented 5 years ago

Width means number of output channels. Let us assume that we have a convolution layer that takes RGB image as an input and produces 10 channels as output. Assume that this configuration is at scale 1.0. When I use a scale of 0.5, then output channels will be scaled by 0.5 too i.e RGB image will be transformed from 3 channels to 5 channels now.

wrpha-group commented 5 years ago

I was misunderstanding. Thank you for your polite answer!