We use PyTorch for our implementation. We utilize 1) DeepLab-v2 [1]} framework with ResNet-101 [2]} and 2) VGG-16-based FCN8s [3]}, as the two respective backbones for \(G\) . We use the feature-space adversarial DA method proposed in [4]} as the baseline network. For significance-aware layer in SIB, we employ a convolution layer with kernel \(1 \times 1\)  and channel number \(2,048\) , followed by a ReLU and a Sigmoid to produce the channel-wise significance vector. We use the IB proposed in [5]} as our bottleneck module. For network \(D\) , we adopt a similar structure with [6]}, which consists of 5 convolution layers with channel numbers \(\lbrace 64, 128, 256, 512, 1\rbrace \) , the kernel \(4 \times 4\)  , and stride of 2. Each convolution layer is followed by a Leaky-ReLU [7]} parameterized by \(0.2\)  except the last layer.
During training, we use SGD [8]} as the optimizer for \(G\)  with a momentum of \(0.9\) , while using Adam [9]} to optimize \(D\)  with \(\beta _1 = 0.9\) , \(\beta _2 = 0.99\) . We set both optimizers a weight decay of \(5e\) -4. The initial learning rates for SGD and Adam are set to \(2.5e\) -4 and \(1e\) -4, respectively. Both learning rate are decayed by a poly policy, where the initial learning rate is multiplied by \((1 - \frac{iter}{max\_iter})^{power}\)  with \(power = 0.9\) . We train the network for a total of \(100k\)  iterations. We use a crop of \(512 \times 1,024\)  during training, and for evaluation we up-sample the prediction map by a factor of 2 and then evaluate mIoU. In our best model, we set hyper-parameters \(\beta ^S_{init} = \beta ^T_{init} = 1e\) -5, \(\alpha = 1e\) -8, \(\lambda = 1e\) -3 and \(I_c = 300\) , respectively.
<TABLE>