VITA-Group / FasterSeg

[ICLR 2020] "FasterSeg: Searching for Faster Real-time Semantic Segmentation" by Wuyang Chen, Xinyu Gong, Xianming Liu, Qian Zhang, Yuan Li, Zhangyang Wang
MIT License
524 stars 107 forks source link

What's the idea of `betas2path ` ? #59

Closed knsong closed 3 years ago

knsong commented 3 years ago

Hi, thanks for the work first, but can you please explain the idea of betas2path function? For example, shouldn't down_idx = np.argmax([ beta[0] for beta in betas[1][1:-1].cpu().numpy() ]) + 1 be down_idx = np.argmax([ beta[0] for beta in betas[1][0:-1].cpu().numpy() ]) + 1 ?

chenwydj commented 3 years ago

Hi @knsong,

Thank you for your interest in our work!

betas[1][0] and betas[2][:2] are actually dummy variables. From Figure 1 in our paper we can see that paths of 1/16 and 1/32 scale have one and two fewer layers than the path of 1/8 scale. We insert these dummy beta variable just for the convenience of forming a matrix.

knsong commented 3 years ago

Hi @knsong,

Thank you for your interest in our work!

betas[1][0] and betas[2][:2] are actually dummy variables. From Figure 1 in our paper we can see that paths of 1/16 and 1/32 scale have one and two fewer layers than the path of 1/8 scale. We insert these dummy beta variable just for the convenience of forming a matrix.

thanks, but from here, the setting of size of betas has already considered removing the dummy data, right? By the way, why there is no comparing with AutoDeeplab in the paper?

chenwydj commented 3 years ago

taking last = 1 (1/16 scale) as the example, the line you mentioned is to consider the one less node, and betas[1][1:-1] is to further consider that the first node only has downsampled in-degree path, which makes the first node's beta[1] no sense.

We did not compare with AutoDeeplab since it is only performance-driven whereas we are both performance- and latency-driven.