def __init__(self, in_channels, out_channels, norm_layer): super(DANetHead, self).__init__() inter_channels = in_channels // 4 self.conv5a = nn.Sequential( nn.Conv2d(in_channels, inter_channels, 3, padding=1, bias=False), norm_layer(inter_channels), nn.ReLU()) self.conv5c = nn.Sequential( nn.Conv2d(in_channels, inter_channels, 3, padding=1, bias=False), norm_layer(inter_channels), nn.ReLU()) self.sa = PAM_Module(inter_channels) self.sc = CAM_Module(inter_channels) self.conv51 = nn.Sequential( nn.Conv2d(inter_channels, inter_channels, 3, padding=1, bias=False), norm_layer(inter_channels), nn.ReLU()) self.conv52 = nn.Sequential( nn.Conv2d(inter_channels, inter_channels, 3, padding=1, bias=False), norm_layer(inter_channels), nn.ReLU()) self.conv6 = nn.Sequential(nn.Dropout2d(0.1, False), nn.Conv2d(512, out_channels, 1)) self.conv7 = nn.Sequential(nn.Dropout2d(0.1, False), nn.Conv2d(512, out_channels, 1)) self.conv8 = nn.Sequential(nn.Dropout2d(0.1, False), nn.Conv2d(512, out_channels, 1))
def __init__(self, BAND_A, BAND_B, classes): super(SAR_simple, self).__init__() self.name = 'sar_simple_' # sar self.conv21 = nn.Sequential( nn.Conv2d(BAND_B, 32, kernel_size=3, padding=0), nn.BatchNorm2d(32, momentum=1, affine=True), mish() ) self.conv22 = nn.Sequential( nn.Conv2d(32, 64, kernel_size=3, padding=1), nn.BatchNorm2d(64, momentum=1, affine=True), mish() ) self.conv23 = nn.Sequential( nn.Conv2d(64, 64, kernel_size=3, padding=1), nn.BatchNorm2d(64, momentum=1, affine=True), mish() ) self.conv24 = nn.Sequential( nn.Conv2d(64, 64, kernel_size=3, padding=1), nn.BatchNorm2d(64, momentum=1, affine=True), mish() ) self.conv25 = nn.Sequential( nn.Conv2d(64, 32, kernel_size=3, padding=1), nn.BatchNorm2d(32, momentum=1, affine=True), mish() ) # fusion self.batch_norm_optical = nn.Sequential( nn.BatchNorm2d(32, momentum=1, affine=True), mish(), nn.Dropout(p=0.5) ) self.batch_norm_sar = nn.Sequential( nn.BatchNorm2d(32, momentum=1, affine=True), mish(), nn.Dropout(p=0.5) ) self.global_pooling = nn.AdaptiveAvgPool2d(1) self.fc = nn.Sequential( nn.Linear(32, classes), # nn.Softmax(dim=-1) ) self.cam = CAM_Module(32) self.pam = PAM_Module(32)