def __init__(self, in_channels, output_channels, feature_maps, hidden_neurons=128): super(CNNDS2DDeconvWind_DK, self).__init__() # scale up input and then use a bigger kernel size to increase receptive field self.upscale = nn.ConvTranspose2d(in_channels, in_channels, kernel_size=2, stride=2) # 5x8x8 self.doubleDSConv = DoubleDSConv(in_channels, feature_maps) self.dsConv1 = DepthwiseSeparableConv(feature_maps, output_channels=feature_maps // 2, kernel_size=3, padding=0) # ((W−F+2P)/S)+1 --> (8x8)-3+1 = (6x6) self.dsConv2 = DepthwiseSeparableConv(feature_maps // 2, output_channels=feature_maps // 4, kernel_size=3, padding=0) # (6x6)-3+1 = (4x4) self.bn = nn.BatchNorm2d(feature_maps // 4) self.doubleDense = DoubleDense(feature_maps // 4 * 4 * 4, hidden_neurons=hidden_neurons, output_channels=output_channels)
def __init__(self, in_channels, output_channels, feature_maps, hidden_neurons=128): super(CNN2DWind_DK, self).__init__() self.conv1 = nn.Conv2d(in_channels=in_channels, out_channels=feature_maps, kernel_size=2) # Correctly calculate input features (depends on conv2d) # ((W−F+2P)/S)+1 --> ((4-2+0)/1)+1 = 3 self.dd = DoubleDense(feature_maps * 3 * 3, hidden_neurons=hidden_neurons, output_channels=output_channels)
def __init__(self, in_channels, output_channels, feature_maps, hidden_neurons=128): super(CNN3DWind_NL, self).__init__() self.conv1 = nn.Conv3d(in_channels=in_channels, out_channels=feature_maps, kernel_size=(2, 2, 2)) # Correctly calculate input features (depends on conv3d) # ((W−F+2P)/S)+1 --> (7x6x6)-2+1 = 6x5x5 self.dd = DoubleDense(feature_maps * 6 * 5 * 5, hidden_neurons=hidden_neurons, output_channels=output_channels)
def __init__(self, in_channels, output_channels, feature_maps, hidden_neurons=128): super(CNN2DAttWind_DK, self).__init__() self.conv1 = AugmentedConv(in_channels=in_channels, out_channels=feature_maps, kernel_size=2, dk=feature_maps // 2, dv=feature_maps // 2, Nh=feature_maps // 2, shape=0, relative=False, stride=1) # Correctly calculate input features (depends on conv2d) # ((W−F+2P)/S)+1 --> ((4-2+0)/1)+1 = 3 self.dd = DoubleDense(feature_maps * 3 * 3, hidden_neurons=hidden_neurons, output_channels=output_channels)