Esempio n. 1
0
    def __init__(self, img_size):
        super().__init__()
        self.conv1_amp = nn.Sequential(*conv_amp(1, 4, (23, 23), 1, 11, 1))
        self.conv2_amp = nn.Sequential(*conv_amp(4, 8, (21, 21), 1, 10, 1))
        self.conv3_amp = nn.Sequential(*conv_amp(8, 12, (17, 17), 1, 8, 1))
        self.conv_con1_amp = nn.Sequential(
            LocallyConnected2d(12, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )

        self.conv4_amp = nn.Sequential(*conv_amp(1, 4, (5, 5), 1, 4, 2))
        self.conv5_amp = nn.Sequential(*conv_amp(4, 8, (5, 5), 1, 2, 1))
        self.conv6_amp = nn.Sequential(*conv_amp(8, 12, (3, 3), 1, 2, 2))
        self.conv7_amp = nn.Sequential(*conv_amp(12, 16, (3, 3), 1, 1, 1))
        self.conv_con2_amp = nn.Sequential(
            LocallyConnected2d(16, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )

        self.conv8_amp = nn.Sequential(*conv_amp(1, 4, (3, 3), 1, 1, 1))
        self.conv9_amp = nn.Sequential(*conv_amp(4, 8, (3, 3), 1, 1, 1))
        self.conv10_amp = nn.Sequential(*conv_amp(8, 12, (3, 3), 1, 2, 2))
        self.conv_con3_amp = nn.Sequential(
            LocallyConnected2d(12, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )
        self.symmetry_real = Lambda(symmetry)
Esempio n. 2
0
    def __init__(self, img_size):
        super().__init__()

        # ########################## Phase 1
        self.conv1_amp = nn.Sequential(*conv_amp(
            ni=1,
            nc=4,
            ks=(round_odd(0.365 * img_size), round_odd(0.365 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.365 * img_size), 1, 1),
            dilation=1,
        ))
        self.conv1_phase = nn.Sequential(*conv_phase(
            ni=1,
            nc=4,
            ks=(round_odd(0.365 * img_size), round_odd(0.365 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.365 * img_size), 1, 1),
            dilation=1,
            add=1 - pi,
        ))
        self.conv2_amp = nn.Sequential(*conv_amp(
            ni=4,
            nc=8,
            ks=(round_odd(0.333 * img_size), round_odd(0.333 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.333 * img_size), 1, 1),
            dilation=1,
        ))
        self.conv2_phase = nn.Sequential(*conv_phase(
            ni=4,
            nc=8,
            ks=(round_odd(0.333 * img_size), round_odd(0.333 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.333 * img_size), 1, 1),
            dilation=1,
            add=1 - pi,
        ))
        self.conv3_amp = nn.Sequential(*conv_amp(
            ni=8,
            nc=12,
            ks=(round_odd(0.269 * img_size), round_odd(0.269 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.269 * img_size), 1, 1),
            dilation=1,
        ))
        self.conv3_phase = nn.Sequential(*conv_phase(
            ni=8,
            nc=12,
            ks=(round_odd(0.269 * img_size), round_odd(0.269 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.269 * img_size), 1, 1),
            dilation=1,
            add=1 - pi,
        ))
        self.conv_con1_amp = nn.Sequential(
            LocallyConnected2d(12, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )
        self.conv_con1_phase = nn.Sequential(
            LocallyConnected2d(12, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            GeneralELU(1 - pi),
        )
        # #################################### Phase 2
        self.conv4_amp = nn.Sequential(*conv_amp(
            ni=1,
            nc=4,
            ks=(round_odd(0.0793 * img_size), round_odd(0.0793 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0793 * img_size), 1, 2),
            dilation=2,
        ))
        self.conv4_phase = nn.Sequential(*conv_phase(
            ni=1,
            nc=4,
            ks=(round_odd(0.0793 * img_size), round_odd(0.0793 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0793 * img_size), 1, 2),
            dilation=2,
            add=1 - pi,
        ))
        self.conv5_amp = nn.Sequential(*conv_amp(
            ni=4,
            nc=8,
            ks=(round_odd(0.0793 * img_size), round_odd(0.0793 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0793 * img_size), 1, 1),
            dilation=1,
        ))
        self.conv5_phase = nn.Sequential(*conv_phase(
            ni=4,
            nc=8,
            ks=(round_odd(0.0793 * img_size), round_odd(0.0793 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0793 * img_size), 1, 1),
            dilation=1,
            add=1 - pi,
        ))
        self.conv6_amp = nn.Sequential(*conv_amp(
            ni=8,
            nc=12,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 2),
            dilation=2,
        ))
        self.conv6_phase = nn.Sequential(*conv_phase(
            ni=8,
            nc=12,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 2),
            dilation=2,
            add=1 - pi,
        ))
        self.conv7_amp = nn.Sequential(*conv_amp(
            ni=12,
            nc=16,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 1),
            dilation=1,
        ))
        self.conv7_phase = nn.Sequential(*conv_phase(
            ni=12,
            nc=16,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 1),
            dilation=1,
            add=1 - pi,
        ))
        self.conv_con2_amp = nn.Sequential(
            LocallyConnected2d(16, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )
        self.conv_con2_phase = nn.Sequential(
            LocallyConnected2d(16, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            GeneralELU(1 - pi),
        )
        # ################################## Phase 3
        self.conv8_amp = nn.Sequential(*conv_amp(
            ni=1,
            nc=4,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 1),
            dilation=1,
        ))
        self.conv8_phase = nn.Sequential(*conv_phase(
            ni=1,
            nc=4,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 1),
            dilation=1,
            add=1 - pi,
        ))
        self.conv9_amp = nn.Sequential(*conv_amp(
            ni=4,
            nc=8,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 1),
            dilation=1,
        ))
        self.conv9_phase = nn.Sequential(*conv_phase(
            ni=4,
            nc=8,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 1),
            dilation=1,
            add=1 - pi,
        ))
        self.conv10_amp = nn.Sequential(*conv_amp(
            ni=8,
            nc=12,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 2),
            dilation=2,
        ))
        self.conv10_phase = nn.Sequential(*conv_phase(
            ni=8,
            nc=12,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 2),
            dilation=2,
            add=1 - pi,
        ))
        self.conv11_amp = nn.Sequential(*conv_amp(
            ni=12,
            nc=20,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 1),
            dilation=1,
        ))
        self.conv11_phase = nn.Sequential(*conv_phase(
            ni=12,
            nc=20,
            ks=(round_odd(0.0476 * img_size), round_odd(0.0476 * img_size)),
            stride=1,
            padding=make_padding(round_odd(0.0476 * img_size), 1, 1),
            dilation=1,
            add=1 - pi,
        ))
        self.conv_con3_amp = nn.Sequential(
            LocallyConnected2d(20, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )
        self.conv_con3_phase = nn.Sequential(
            LocallyConnected2d(20, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            GeneralELU(1 - pi),
        )
        self.symmetry_real = Lambda(symmetry)
        self.symmetry_imag = Lambda(partial(symmetry, mode="imag"))
Esempio n. 3
0
    def __init__(self, img_size):
        super().__init__()
        self.conv1_amp = nn.Sequential(*conv_amp(1, 4, (23, 23), 1, 11, 1))
        self.conv1_phase = nn.Sequential(
            *conv_phase(1, 4, (23, 23), 1, 11, 1, add=1 - pi))
        self.conv2_amp = nn.Sequential(*conv_amp(4, 8, (21, 21), 1, 10, 1))
        self.conv2_phase = nn.Sequential(
            *conv_phase(4, 8, (21, 21), 1, 10, 1, add=1 - pi))
        self.conv3_amp = nn.Sequential(*conv_amp(8, 12, (17, 17), 1, 8, 1))
        self.conv3_phase = nn.Sequential(
            *conv_phase(8, 12, (17, 17), 1, 8, 1, add=1 - pi))
        self.conv_con1_amp = nn.Sequential(
            LocallyConnected2d(12, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )
        self.conv_con1_phase = nn.Sequential(
            LocallyConnected2d(12, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            GeneralELU(1 - pi),
        )

        self.conv4_amp = nn.Sequential(*conv_amp(1, 4, (5, 5), 1, 4, 2))
        self.conv4_phase = nn.Sequential(
            *conv_phase(1, 4, (5, 5), 1, 4, 2, add=1 - pi))
        self.conv5_amp = nn.Sequential(*conv_amp(4, 8, (5, 5), 1, 2, 1))
        self.conv5_phase = nn.Sequential(
            *conv_phase(4, 8, (5, 5), 1, 2, 1, add=1 - pi))
        self.conv6_amp = nn.Sequential(*conv_amp(8, 12, (3, 3), 1, 2, 2))
        self.conv6_phase = nn.Sequential(
            *conv_phase(8, 12, (3, 3), 1, 2, 2, add=1 - pi))
        self.conv7_amp = nn.Sequential(*conv_amp(12, 16, (3, 3), 1, 1, 1))
        self.conv7_phase = nn.Sequential(
            *conv_phase(12, 16, (3, 3), 1, 1, 1, add=1 - pi))
        self.conv_con2_amp = nn.Sequential(
            LocallyConnected2d(16, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )
        self.conv_con2_phase = nn.Sequential(
            LocallyConnected2d(16, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            GeneralELU(1 - pi),
        )

        self.conv8_amp = nn.Sequential(*conv_amp(1, 4, (3, 3), 1, 1, 1))
        self.conv8_phase = nn.Sequential(
            *conv_phase(1, 4, (3, 3), 1, 1, 1, add=1 - pi))
        self.conv9_amp = nn.Sequential(*conv_amp(4, 8, (3, 3), 1, 1, 1))
        self.conv9_phase = nn.Sequential(
            *conv_phase(4, 8, (3, 3), 1, 1, 1, add=1 - pi))
        self.conv10_amp = nn.Sequential(*conv_amp(8, 12, (3, 3), 1, 2, 2))
        self.conv10_phase = nn.Sequential(
            *conv_phase(8, 12, (3, 3), 1, 2, 2, add=1 - pi))
        self.conv11_amp = nn.Sequential(*conv_amp(12, 20, (3, 3), 1, 1, 1))
        self.conv11_phase = nn.Sequential(
            *conv_phase(12, 20, (3, 3), 1, 1, 1, add=1 - pi))
        self.conv_con3_amp = nn.Sequential(
            LocallyConnected2d(20, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )
        self.conv_con3_phase = nn.Sequential(
            LocallyConnected2d(20, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            GeneralELU(1 - pi),
        )
        self.symmetry_real = Lambda(symmetry)
        self.symmetry_imag = Lambda(partial(symmetry, mode="imag"))
Esempio n. 4
0
    def __init__(self, img_size):
        super().__init__()
        self.conv1_amp = nn.Sequential(*conv_amp(1, 4, (23, 23), 1, 11, 1))
        self.conv1_phase = nn.Sequential(
            *conv_phase(1, 4, (23, 23), 1, 11, 1, add=1 - pi))
        self.conv2_amp = nn.Sequential(*conv_amp(4, 8, (21, 21), 1, 10, 1))
        self.conv2_phase = nn.Sequential(
            *conv_phase(4, 8, (21, 21), 1, 10, 1, add=1 - pi))
        self.conv3_amp = nn.Sequential(*conv_amp(8, 12, (17, 17), 1, 8, 1))
        self.conv3_phase = nn.Sequential(
            *conv_phase(8, 12, (17, 17), 1, 8, 1, add=1 - pi))
        self.conv_con1_amp = nn.Sequential(
            LocallyConnected2d(12, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )
        self.conv_con1_phase = nn.Sequential(
            LocallyConnected2d(12, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            GeneralELU(1 - pi),
        )

        self.conv4_amp = nn.Sequential(*conv_amp(1, 4, (5, 5), 1, 3, 2))
        self.conv4_phase = nn.Sequential(
            *conv_phase(1, 4, (5, 5), 1, 3, 2, add=1 - pi))
        self.conv5_amp = nn.Sequential(*conv_amp(4, 8, (5, 5), 1, 2, 1))
        self.conv5_phase = nn.Sequential(
            *conv_phase(4, 8, (5, 5), 1, 2, 1, add=1 - pi))
        self.conv6_amp = nn.Sequential(*conv_amp(8, 12, (3, 3), 1, 3, 2))
        self.conv6_phase = nn.Sequential(
            *conv_phase(8, 12, (3, 3), 1, 3, 2, add=1 - pi))
        self.conv7_amp = nn.Sequential(*conv_amp(12, 16, (3, 3), 1, 1, 1))
        self.conv7_phase = nn.Sequential(
            *conv_phase(12, 16, (3, 3), 1, 1, 1, add=1 - pi))
        self.conv_con2_amp = nn.Sequential(
            LocallyConnected2d(16, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )
        self.conv_con2_phase = nn.Sequential(
            LocallyConnected2d(16, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            GeneralELU(1 - pi),
        )

        self.conv8_amp = nn.Sequential(*conv_amp(1, 4, (3, 3), 1, 1, 1))
        self.conv8_phase = nn.Sequential(
            *conv_phase(1, 4, (3, 3), 1, 1, 1, add=1 - pi))
        self.conv9_amp = nn.Sequential(*conv_amp(4, 8, (3, 3), 1, 1, 1))
        self.conv9_phase = nn.Sequential(
            *conv_phase(4, 8, (3, 3), 1, 1, 1, add=1 - pi))
        self.conv10_amp = nn.Sequential(*conv_amp(8, 12, (3, 3), 1, 2, 2))
        self.conv10_phase = nn.Sequential(
            *conv_phase(8, 12, (3, 3), 1, 2, 2, add=1 - pi))
        self.conv11_amp = nn.Sequential(*conv_amp(12, 20, (3, 3), 1, 1, 1))
        self.conv11_phase = nn.Sequential(
            *conv_phase(12, 20, (3, 3), 1, 1, 1, add=1 - pi))
        self.conv_con3_amp = nn.Sequential(
            LocallyConnected2d(20, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            nn.ReLU(),
        )
        self.conv_con3_phase = nn.Sequential(
            LocallyConnected2d(20, 1, img_size, 1, stride=1, bias=False),
            nn.BatchNorm2d(1),
            GeneralELU(1 - pi),
        )
        self.symmetry_real = Lambda(symmetry)
        self.symmetry_imag = Lambda(partial(symmetry, mode="imag"))
        self.flatten = Lambda(flatten)
        # self.fully_connected = nn.Linear(3969, 54)
        # self.fully_connected = nn.Linear(7938, 5)
        # self.fully_connected = nn.Linear(3969, 1)
        self.fully_connected = nn.Linear(7938, 3)
        self.vaild_gauss_bs = Lambda(vaild_gauss_bs)
        self.Relu = nn.ReLU()
        self.fft = Lambda(fft)
        self.euler = Lambda(euler)
        self.shape = Lambda(shape)