def __init__(self,in_channels,out_channels,kernel_size,stride,padding): super(P4InitialConvResidualBlock,self).__init__() self.conv1 = P4ConvZ2(in_channels,out_channels,kernel_size=3,stride=1,padding=1)#same convolution self.bn1 = nn.BatchNorm3d(out_channels) self.conv2 = P4ConvP4(out_channels,out_channels,kernel_size,stride,padding) self.bn2 = nn.BatchNorm3d(out_channels) self.bridgeconv = P4ConvZ2(in_channels,out_channels,kernel_size,stride,padding) self.bridgebn = nn.BatchNorm3d(out_channels)
def __init__(self, in_channels, out_channels): super(InitialP4ResidualBlock, self).__init__() self.conv1 = P4ConvZ2(in_channels, out_channels, 3, 1, 1) self.bn1 = nn.BatchNorm3d(out_channels) self.conv2 = P4ConvP4(out_channels, out_channels, 3, 1, 1) self.bn2 = nn.BatchNorm3d(out_channels, out_channels) #self.shortcut = nn.Sequential() self.shortcut = nn.Sequential(P4ConvZ2(in_channels, out_channels, 1), nn.BatchNorm3d(out_channels))
def __init__(self,in_channels,out_channels): super(InitialPreActResidualBlock,self).__init__() self.bn1 = nn.BatchNorm2d(in_channels) self.conv1 = P4ConvZ2(in_channels, out_channels, kernel_size=3, stride=2, padding=1, bias=False) self.bn2 = nn.BatchNorm3d(out_channels) self.conv2 = P4ConvP4(out_channels, out_channels, kernel_size=3, stride=1, padding=1, bias=False) self.shortcut = nn.Sequential( P4ConvZ2(in_channels, out_channels, kernel_size=1, stride=2, bias=False) )
def __init__(self, block_expansion, sn=False, shift_invariance=False, rot_invariance=False, flip_invariance=False, **kwargs): super(DCDiscriminator, self).__init__() self.rot_invariance = rot_invariance self.flip_invariance = flip_invariance self.shift_invariance = shift_invariance self.sn = sn assert self.rot_invariance or not self.flip_invariance if self.shift_invariance and self.rot_invariance and self.flip_invariance: block_expansion //= int(8 ** 0.5) self.conv0 = P4MConvZ2(3, block_expansion, kernel_size=3) self.conv1 = P4MConvP4M(block_expansion, block_expansion * 2, kernel_size=3) self.conv2 = P4MConvP4M(block_expansion * 2, block_expansion * 4, kernel_size=3, dilation=2) self.conv3 = P4MConvP4M(block_expansion * 4, block_expansion * 8, kernel_size=3, dilation=4) elif self.shift_invariance and self.rot_invariance: block_expansion //= 2 self.conv0 = P4ConvZ2(3, block_expansion, kernel_size=3) self.conv1 = P4ConvP4(block_expansion, block_expansion * 2, kernel_size=3) self.conv2 = P4ConvP4(block_expansion * 2, block_expansion * 4, kernel_size=3, dilation=2) self.conv3 = P4ConvP4(block_expansion * 4, block_expansion * 8, kernel_size=3, dilation=4) elif self.shift_invariance: self.conv0 = nn.Conv2d(3, block_expansion, kernel_size=3) self.conv1 = nn.Conv2d(block_expansion, block_expansion * 2, kernel_size=3) self.conv2 = nn.Conv2d(block_expansion * 2, block_expansion * 4, kernel_size=3, dilation=2) self.conv3 = nn.Conv2d(block_expansion * 4, block_expansion * 8, kernel_size=3, dilation=4) elif self.rot_invariance and self.flip_invariance: block_expansion //= int(8 ** 0.5) self.conv0 = P4MConvZ2(3, block_expansion, kernel_size=3) self.conv1 = P4MConvP4M(block_expansion, block_expansion * 2, kernel_size=3) self.conv2 = P4MConvP4M(block_expansion * 2, block_expansion * 4, kernel_size=3) self.conv3 = P4MConvP4M(block_expansion * 4, block_expansion * 8, kernel_size=3) elif self.rot_invariance: block_expansion //= 2 self.conv0 = P4ConvZ2(3, block_expansion, kernel_size=3) self.conv1 = P4ConvP4(block_expansion, block_expansion * 2, kernel_size=3) self.conv2 = P4ConvP4(block_expansion * 2, block_expansion * 4, kernel_size=3) self.conv3 = P4ConvP4(block_expansion * 4, block_expansion * 8, kernel_size=3) else: self.conv0 = nn.Conv2d(3, block_expansion, kernel_size=3) self.conv1 = nn.Conv2d(block_expansion, block_expansion * 2, kernel_size=3) self.conv2 = nn.Conv2d(block_expansion * 2, block_expansion * 4, kernel_size=3) self.conv3 = nn.Conv2d(block_expansion * 4, block_expansion * 8, kernel_size=3) self.fc = nn.Linear(block_expansion * 8, 1) if self.sn: self.conv0 = nn.utils.spectral_norm(self.conv0) self.conv1 = nn.utils.spectral_norm(self.conv1) self.conv2 = nn.utils.spectral_norm(self.conv2) self.conv3 = nn.utils.spectral_norm(self.conv3) self.fc = nn.utils.spectral_norm(self.fc)
def __init__(self, block, num_blocks): super(ResNetPreCapsule, self).__init__() self.in_planes = 64 self.conv1 = P4ConvZ2(3, 64, kernel_size=3, stride=1, padding=1, bias=False)#(b_size,64,32,32) self.bn1 = nn.BatchNorm3d(64) self.layer1 = self._make_layer(block, 64, num_blocks[0], stride=1)#(b_size,64,32,32) self.layer2 = self._make_layer(block, 128, num_blocks[1], stride=2)#(b_size,128,16,16)
def __init__(self, in_planes=3, out_planes=32): super(P4BasicBlock, self).__init__() self.residue_conv1 = P4ConvP4(32, out_planes, kernel_size=3, stride=2, padding=1, bias=True) self.residue_bn1 = nn.BatchNorm3d(out_planes) self.residue_conv2 = P4ConvP4(out_planes, out_planes, kernel_size=3, stride=1, padding=1, bias=True) self.residue_bn2 = nn.BatchNorm3d(out_planes) self.shortcut = nn.Sequential( P4ConvP4(32, out_planes, kernel_size=1, stride=2, bias=True), nn.BatchNorm3d(out_planes) ) self.conv1 = P4ConvZ2(in_planes,32,kernel_size=3,bias=True)
def __init__(self): super(InitialP4Conv,self).__init__() self.conv = nn.Sequential( P4ConvZ2(3,32,5), nn.BatchNorm3d(32), nn.SELU(), P4ConvP4(32,32,5), nn.BatchNorm3d(32), nn.SELU(), P4ConvP4(32,32,3), nn.BatchNorm3d(32), nn.SELU() )
def __init__(self, input_size, n_classes=10, **kwargs): super(AllConvNet1, self).__init__() self.conv1 = P4ConvZ2(input_size, 96, 3, padding=1) self.bn1 = nn.BatchNorm3d(96) self.conv2 = P4ConvP4(96, 96, 3, padding=1) self.bn2 = nn.BatchNorm3d(96) self.conv3 = P4ConvP4(96, 96, 3, padding=1, stride=2) self.bn3 = nn.BatchNorm3d(96) self.conv4 = P4ConvP4(96, 192, 3, padding=1) self.bn4 = nn.BatchNorm3d(192) self.conv5 = P4ConvP4(192, 192, 3, padding=1) self.bn5 = nn.BatchNorm3d(192) self.conv6 = P4ConvP4(192, 192, 3, padding=1, stride=2) self.bn6 = nn.BatchNorm3d(192) self.conv7 = P4ConvP4(192, 192, 3, padding=1) self.bn7 = nn.BatchNorm3d(192) self.conv8 = P4ConvP4(192, 192, 1) self.bn8 = nn.BatchNorm3d(192) self.hidden_fc = nn.Linear(192*4*8*8,128) self.class_fc = nn.Linear(128, n_classes)