experiments. Finally, the feature vector $\mathbf{z}$ passes through three parallel channel-upscaling convolution layers (one for each resolution stream) and provides us with three feature descriptors $\mathbf{v_1}, \mathbf{v_2}$ and $\mathbf{v_3}$, each with dimensions $1\times1\times C$. **(2) Select:** this operator applies the softmax function to $\mathbf{v_1}, \mathbf{v_2}$ and $\mathbf{v_3}$, yielding attention activations $\mathbf{s_1}, \mathbf{s_2}$ and $\mathbf{s_3}$ that we use to adaptively recalibrate multi-scale feature maps $\mathbf{L_1}, \mathbf{L_2}$ and $\mathbf{L_3}$, respectively. The overall process of feature recalibration and aggregation is defined as: $\mathbf{U = s_1 \cdot L_1 + s_2\cdot L_2 + s_3 \cdot L_3}$. Note that the SKFF uses $\sim6\times$ fewer parameters than aggregation with concatenation but generates more favorable results (an ablation study is provided in experiments section).

**Dual attention unit (DAU).** While the SKFF block fuses information across multi-resolution branches, we also need a mechanism to share information within a feature tensor, both along the spatial and the channel dimensions. Motivated by the advances of recent low-level vision methods [@RCAN; @RIDNet; @dai2019second; @zhang2019residual] based on the attention mechanisms [@hu2018squeeze; @wang2018non], we propose the dual attention unit (DAU) to extract features in the convolutional streams. The schematic of DAU is shown in Fig. \[fig:dau\]. The DAU suppresses less useful features and only 