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)
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"))
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"))
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)