Python torch.nn.ReflectionPad2d() Examples
The following are 30
code examples of torch.nn.ReflectionPad2d().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
torch.nn
, or try the search function
.
Example #1
Source File: blocks.py From FET-GAN with MIT License | 6 votes |
def __init__(self, dim, kernel_size=3, stride=1, padding=1): super(ResBlock, self).__init__() layers = [] layers += [ nn.ReflectionPad2d(padding), nn.Conv2d(dim, dim, kernel_size, stride), nn.InstanceNorm2d(dim), nn.ReLU(inplace=True) ] layers += [ nn.ReflectionPad2d(padding), nn.Conv2d(dim, dim, kernel_size, 1), nn.InstanceNorm2d(dim) ] self.model = nn.Sequential(*layers)
Example #2
Source File: FastNeuralTransfer.py From Deep-learning-with-cats with GNU General Public License v3.0 | 6 votes |
def __init__(self, h_size): super(Residual_block, self).__init__() # Two Conv layers with same output size model = [] if param.padding == "reflect": model += [nn.ReflectionPad2d(padding=1)] model += [nn.Conv2d(h_size, h_size, kernel_size=3, stride=1, padding=pad)] if param.SELU: model += [torch.nn.SELU()] else: model += [Norm2D(h_size), nn.ReLU(True)] if param.padding == "reflect": model += [nn.ReflectionPad2d(padding=1)] model += [nn.Conv2d(h_size, h_size, kernel_size=3, stride=1, padding=pad)] if not param.SELU: model += [Norm2D(h_size)] self.model = nn.Sequential(*model)
Example #3
Source File: generators.py From cycleGAN-PyTorch with MIT License | 6 votes |
def __init__(self, input_nc=3, output_nc=3, ngf=64, norm_layer=nn.BatchNorm2d, use_dropout=True, num_blocks=6): super(ResnetGenerator, self).__init__() if type(norm_layer) == functools.partial: use_bias = norm_layer.func == nn.InstanceNorm2d else: use_bias = norm_layer == nn.InstanceNorm2d res_model = [nn.ReflectionPad2d(3), conv_norm_relu(input_nc, ngf * 1, 7, norm_layer=norm_layer, bias=use_bias), conv_norm_relu(ngf * 1, ngf * 2, 3, 2, 1, norm_layer=norm_layer, bias=use_bias), conv_norm_relu(ngf * 2, ngf * 4, 3, 2, 1, norm_layer=norm_layer, bias=use_bias)] for i in range(num_blocks): res_model += [ResidualBlock(ngf * 4, norm_layer, use_dropout, use_bias)] res_model += [dconv_norm_relu(ngf * 4, ngf * 2, 3, 2, 1, 1, norm_layer=norm_layer, bias=use_bias), dconv_norm_relu(ngf * 2, ngf * 1, 3, 2, 1, 1, norm_layer=norm_layer, bias=use_bias), nn.ReflectionPad2d(3), nn.Conv2d(ngf, output_nc, 7), nn.Tanh()] self.res_model = nn.Sequential(*res_model)
Example #4
Source File: ghiasi.py From style-augmentation with MIT License | 6 votes |
def __init__(self, channels_in, channels_out, kernel_size, upsample, stride=1, activation=nn.ReLU): super(UpsampleConvInRelu, self).__init__() self.n_params = channels_out * 2 self.upsample = upsample self.channels = channels_out if upsample: self.upsample_layer = torch.nn.Upsample(scale_factor=upsample) reflection_padding = int(np.floor(kernel_size / 2)) self.reflection_pad = nn.ReflectionPad2d(reflection_padding) self.conv = nn.Conv2d(channels_in, channels_out, kernel_size, stride) self.instancenorm = nn.InstanceNorm2d(channels_out) self.fc_beta = nn.Linear(100,channels_out) self.fc_gamma = nn.Linear(100,channels_out) if activation: self.activation = activation(inplace=False) else: self.activation = None
Example #5
Source File: networks.py From everybody_dance_now_pytorch with GNU Affero General Public License v3.0 | 6 votes |
def __init__(self, input_nc, output_nc, ngf=64, n_downsampling=3, n_blocks=9, norm_layer=nn.BatchNorm2d, padding_type='reflect'): assert(n_blocks >= 0) super(GlobalGenerator, self).__init__() activation = nn.ReLU(True) model = [nn.ReflectionPad2d(3), nn.Conv2d(input_nc, ngf, kernel_size=7, padding=0), norm_layer(ngf), activation] ### downsample for i in range(n_downsampling): mult = 2**i model += [nn.Conv2d(ngf * mult, ngf * mult * 2, kernel_size=3, stride=2, padding=1), norm_layer(ngf * mult * 2), activation] ### resnet blocks mult = 2**n_downsampling for i in range(n_blocks): model += [ResnetBlock(ngf * mult, padding_type=padding_type, activation=activation, norm_layer=norm_layer)] ### upsample for i in range(n_downsampling): mult = 2**(n_downsampling - i) model += [nn.ConvTranspose2d(ngf * mult, int(ngf * mult / 2), kernel_size=3, stride=2, padding=1, output_padding=1), norm_layer(int(ngf * mult / 2)), activation] model += [nn.ReflectionPad2d(3), nn.Conv2d(ngf, output_nc, kernel_size=7, padding=0), nn.Tanh()] self.model = nn.Sequential(*model)
Example #6
Source File: networks.py From everybody_dance_now_pytorch with GNU Affero General Public License v3.0 | 6 votes |
def __init__(self, input_nc, output_nc, ngf=32, n_downsampling=4, norm_layer=nn.BatchNorm2d): super(Encoder, self).__init__() self.output_nc = output_nc model = [nn.ReflectionPad2d(3), nn.Conv2d(input_nc, ngf, kernel_size=7, padding=0), norm_layer(ngf), nn.ReLU(True)] ### downsample for i in range(n_downsampling): mult = 2**i model += [nn.Conv2d(ngf * mult, ngf * mult * 2, kernel_size=3, stride=2, padding=1), norm_layer(ngf * mult * 2), nn.ReLU(True)] ### upsample for i in range(n_downsampling): mult = 2**(n_downsampling - i) model += [nn.ConvTranspose2d(ngf * mult, int(ngf * mult / 2), kernel_size=3, stride=2, padding=1, output_padding=1), norm_layer(int(ngf * mult / 2)), nn.ReLU(True)] model += [nn.ReflectionPad2d(3), nn.Conv2d(ngf, output_nc, kernel_size=7, padding=0), nn.Tanh()] self.model = nn.Sequential(*model)
Example #7
Source File: networks_modified.py From everybody_dance_now_pytorch with GNU Affero General Public License v3.0 | 6 votes |
def __init__(self, input_nc, output_nc, ngf=32, n_downsampling=4, norm_layer=nn.BatchNorm2d): super(Encoder, self).__init__() self.output_nc = output_nc model = [nn.ReflectionPad2d(3), nn.Conv2d(input_nc, ngf, kernel_size=7, padding=0), norm_layer(ngf), nn.ReLU(True)] ### downsample for i in range(n_downsampling): mult = 2**i model += [nn.Conv2d(ngf * mult, ngf * mult * 2, kernel_size=3, stride=2, padding=1), norm_layer(ngf * mult * 2), nn.ReLU(True)] ### upsample for i in range(n_downsampling): mult = 2**(n_downsampling - i) model += [nn.ConvTranspose2d(ngf * mult, int(ngf * mult / 2), kernel_size=3, stride=2, padding=1, output_padding=1), norm_layer(int(ngf * mult / 2)), nn.ReLU(True)] model += [nn.ReflectionPad2d(3), nn.Conv2d(ngf, output_nc, kernel_size=7, padding=0), nn.Tanh()] self.model = nn.Sequential(*model)
Example #8
Source File: ops.py From GCA-Matting with MIT License | 6 votes |
def __init__(self, out_channels, guidance_channels, rate=2): super(GuidedCxtAtten, self).__init__() self.rate = rate self.padding = nn.ReflectionPad2d(1) self.up_sample = nn.Upsample(scale_factor=self.rate, mode='nearest') self.guidance_conv = nn.Conv2d(in_channels=guidance_channels, out_channels=guidance_channels//2, kernel_size=1, stride=1, padding=0) self.W = nn.Sequential( nn.Conv2d(in_channels=out_channels, out_channels=out_channels, kernel_size=1, stride=1, padding=0, bias=False), nn.BatchNorm2d(out_channels) ) nn.init.xavier_uniform_(self.guidance_conv.weight) nn.init.constant_(self.guidance_conv.bias, 0) nn.init.xavier_uniform_(self.W[0].weight) nn.init.constant_(self.W[1].weight, 1e-3) nn.init.constant_(self.W[1].bias, 0)
Example #9
Source File: models.py From PyTorch-GAN with MIT License | 6 votes |
def __init__(self, out_channels=3, dim=64, n_upsample=2, shared_block=None): super(Generator, self).__init__() self.shared_block = shared_block layers = [] dim = dim * 2 ** n_upsample # Residual blocks for _ in range(3): layers += [ResidualBlock(dim)] # Upsampling for _ in range(n_upsample): layers += [ nn.ConvTranspose2d(dim, dim // 2, 4, stride=2, padding=1), nn.InstanceNorm2d(dim // 2), nn.LeakyReLU(0.2, inplace=True), ] dim = dim // 2 # Output layer layers += [nn.ReflectionPad2d(3), nn.Conv2d(dim, out_channels, 7), nn.Tanh()] self.model_blocks = nn.Sequential(*layers)
Example #10
Source File: models.py From PyTorch-GAN with MIT License | 6 votes |
def __init__(self, in_channels=3, dim=64, n_residual=3, n_downsample=2): super(ContentEncoder, self).__init__() # Initial convolution block layers = [ nn.ReflectionPad2d(3), nn.Conv2d(in_channels, dim, 7), nn.InstanceNorm2d(dim), nn.ReLU(inplace=True), ] # Downsampling for _ in range(n_downsample): layers += [ nn.Conv2d(dim, dim * 2, 4, stride=2, padding=1), nn.InstanceNorm2d(dim * 2), nn.ReLU(inplace=True), ] dim *= 2 # Residual blocks for _ in range(n_residual): layers += [ResidualBlock(dim, norm="in")] self.model = nn.Sequential(*layers)
Example #11
Source File: models.py From PyTorch-GAN with MIT License | 6 votes |
def __init__(self, in_channels=3, dim=64, n_downsample=2, style_dim=8): super(StyleEncoder, self).__init__() # Initial conv block layers = [nn.ReflectionPad2d(3), nn.Conv2d(in_channels, dim, 7), nn.ReLU(inplace=True)] # Downsampling for _ in range(2): layers += [nn.Conv2d(dim, dim * 2, 4, stride=2, padding=1), nn.ReLU(inplace=True)] dim *= 2 # Downsampling with constant depth for _ in range(n_downsample - 2): layers += [nn.Conv2d(dim, dim, 4, stride=2, padding=1), nn.ReLU(inplace=True)] # Average pool and output layer layers += [nn.AdaptiveAvgPool2d(1), nn.Conv2d(dim, style_dim, 1, 1, 0)] self.model = nn.Sequential(*layers)
Example #12
Source File: network.py From DMIT with MIT License | 6 votes |
def __init__(self, in_dim, out_dim, kernel_size=3, stride=1, padding=0, pad_type='reflect', bias=True, norm_layer=None, nl_layer=None): super(Conv2dBlock, self).__init__() if pad_type == 'reflect': self.pad = nn.ReflectionPad2d(padding) elif pad_type == 'replicate': self.pad = nn.ReplicationPad2d(padding) elif pad_type == 'zero': self.pad = nn.ZeroPad2d(padding) self.conv = spectral_norm(nn.Conv2d(in_dim, out_dim, kernel_size=kernel_size, stride=stride, padding=0, bias=bias)) if norm_layer is not None: self.norm = norm_layer(out_dim) else: self.norm = lambda x: x if nl_layer is not None: self.activation = nl_layer() else: self.activation = lambda x: x
Example #13
Source File: networks.py From densebody_pytorch with GNU General Public License v3.0 | 6 votes |
def __init__(self, im_size, nz, ngf=64, nup=6, norm_layer=None, nl_layer=None): super(ConvUpSampleDecoder, self).__init__() self.im_size = im_size // (2 ** nup) fc_dim = 4 * nz layers = [] prev = 8 for i in range(nup-1, -1, -1): cur = min(prev, 2**i) layers.append(deconv3x3(ngf * prev, ngf * cur, stride=2)) prev = cur layers += [ nn.ReflectionPad2d(3), nn.Conv2d(ngf, 3, kernel_size=7, stride=1, padding=0), nn.Tanh(), ] self.conv = nn.Sequential(*layers) self.fc = nn.Sequential( nn.Linear(nz, fc_dim), nl_layer, nn.Dropout(), nn.Linear(fc_dim, self.im_size * self.im_size * ngf * 8), )
Example #14
Source File: networks.py From EverybodyDanceNow_reproduce_pytorch with MIT License | 6 votes |
def __init__(self, input_nc, output_nc, ngf=64, n_downsampling=3, n_blocks=9, norm_layer=nn.BatchNorm2d, padding_type='reflect'): assert(n_blocks >= 0) super(GlobalGenerator, self).__init__() activation = nn.ReLU(True) model = [nn.ReflectionPad2d(3), nn.Conv2d(input_nc, ngf, kernel_size=7, padding=0), norm_layer(ngf), activation] ### downsample for i in range(n_downsampling): mult = 2**i model += [nn.Conv2d(ngf * mult, ngf * mult * 2, kernel_size=3, stride=2, padding=1), norm_layer(ngf * mult * 2), activation] ### resnet blocks mult = 2**n_downsampling for i in range(n_blocks): model += [ResnetBlock(ngf * mult, padding_type=padding_type, activation=activation, norm_layer=norm_layer)] ### upsample for i in range(n_downsampling): mult = 2**(n_downsampling - i) model += [nn.ConvTranspose2d(ngf * mult, int(ngf * mult / 2), kernel_size=3, stride=2, padding=1, output_padding=1), norm_layer(int(ngf * mult / 2)), activation] model += [nn.ReflectionPad2d(3), nn.Conv2d(ngf, output_nc, kernel_size=7, padding=0), nn.Tanh()] self.model = nn.Sequential(*model)
Example #15
Source File: networks.py From EverybodyDanceNow_reproduce_pytorch with MIT License | 6 votes |
def __init__(self, input_nc, output_nc, ngf=32, n_downsampling=4, norm_layer=nn.BatchNorm2d): super(Encoder, self).__init__() self.output_nc = output_nc model = [nn.ReflectionPad2d(3), nn.Conv2d(input_nc, ngf, kernel_size=7, padding=0), norm_layer(ngf), nn.ReLU(True)] ### downsample for i in range(n_downsampling): mult = 2**i model += [nn.Conv2d(ngf * mult, ngf * mult * 2, kernel_size=3, stride=2, padding=1), norm_layer(ngf * mult * 2), nn.ReLU(True)] ### upsample for i in range(n_downsampling): mult = 2**(n_downsampling - i) model += [nn.ConvTranspose2d(ngf * mult, int(ngf * mult / 2), kernel_size=3, stride=2, padding=1, output_padding=1), norm_layer(int(ngf * mult / 2)), nn.ReLU(True)] model += [nn.ReflectionPad2d(3), nn.Conv2d(ngf, output_nc, kernel_size=7, padding=0), nn.Tanh()] self.model = nn.Sequential(*model)
Example #16
Source File: CycleGAN.py From Deep-learning-with-cats with GNU General Public License v3.0 | 5 votes |
def __init__(self): super(CycleGAN_G, self).__init__() ### Downsample block ## Reflection padding is an alternative to 0 padding (like looking at water reflection) # n_colors x image_size x image_size model = [nn.ReflectionPad2d(padding=3), nn.Conv2d(param.n_colors, param.G_h_size, kernel_size=7, stride=1, padding=0), Norm2D(param.G_h_size), nn.ReLU(True)] # param.G_h_size x image_size x image_size model += [nn.Conv2d(param.G_h_size, param.G_h_size * 2, kernel_size=3, stride=2, padding=1), Norm2D(param.G_h_size * 2), nn.ReLU(True)] # (param.G_h_size * 2) x (image_size / 2) x (image_size / 2) model += [nn.Conv2d(param.G_h_size * 2, param.G_h_size * 4, kernel_size=3, stride=2, padding=1), Norm2D(param.G_h_size * 4), nn.ReLU(True)] # (param.G_h_size * 4) x (image_size / 4) x (image_size / 4) ### Residual blocks for i in range(param.G_residual_blocks): model += [Residual_block(h_size=param.G_h_size * 4)] ### Upsample block (pretty much inverse of downsample) # (param.G_h_size * 4) x (image_size / 4) x (image_size / 4) model += [nn.ConvTranspose2d(param.G_h_size * 4, param.G_h_size * 2, kernel_size=3, stride=2, padding=1, output_padding=1), Norm2D(param.G_h_size * 2), nn.ReLU(True)] # (param.G_h_size * 2) x (image_size / 2) x (image_size / 2) model += [nn.ConvTranspose2d(param.G_h_size * 2, param.G_h_size, kernel_size=3, stride=2, padding=1, output_padding=1), Norm2D(param.G_h_size), nn.ReLU(True)] # param.G_h_size x image_size x image_size model += [nn.ReflectionPad2d(padding=3), nn.Conv2d(param.G_h_size, param.n_colors, kernel_size=7, stride=1, padding=0), nn.Tanh()] # Size = n_colors x image_size x image_size self.model = nn.Sequential(*model)
Example #17
Source File: networks.py From 2019-CCF-BDCI-OCR-MCZJ-OCR-IdentificationIDElement with MIT License | 5 votes |
def build_conv_block(self, dim, padding_type, norm_layer, use_dropout, use_bias): """Construct a convolutional block. Parameters: dim (int) -- the number of channels in the conv layer. padding_type (str) -- the name of padding layer: reflect | replicate | zero norm_layer -- normalization layer use_dropout (bool) -- if use dropout layers. use_bias (bool) -- if the conv layer uses bias or not Returns a conv block (with a conv layer, a normalization layer, and a non-linearity layer (ReLU)) """ conv_block = [] p = 0 if padding_type == 'reflect': conv_block += [nn.ReflectionPad2d(1)] elif padding_type == 'replicate': conv_block += [nn.ReplicationPad2d(1)] elif padding_type == 'zero': p = 1 else: raise NotImplementedError('padding [%s] is not implemented' % padding_type) conv_block += [nn.Conv2d(dim, dim, kernel_size=3, padding=p, bias=use_bias), norm_layer(dim), nn.ReLU(True)] if use_dropout: conv_block += [nn.Dropout(0.5)] p = 0 if padding_type == 'reflect': conv_block += [nn.ReflectionPad2d(1)] elif padding_type == 'replicate': conv_block += [nn.ReplicationPad2d(1)] elif padding_type == 'zero': p = 1 else: raise NotImplementedError('padding [%s] is not implemented' % padding_type) conv_block += [nn.Conv2d(dim, dim, kernel_size=3, padding=p, bias=use_bias), norm_layer(dim)] return nn.Sequential(*conv_block)
Example #18
Source File: models.py From PyTorch-GAN with MIT License | 5 votes |
def __init__(self, in_channels=3, dim=64, n_downsample=2, shared_block=None): super(Encoder, self).__init__() # Initial convolution block layers = [ nn.ReflectionPad2d(3), nn.Conv2d(in_channels, dim, 7), nn.InstanceNorm2d(64), nn.LeakyReLU(0.2, inplace=True), ] # Downsampling for _ in range(n_downsample): layers += [ nn.Conv2d(dim, dim * 2, 4, stride=2, padding=1), nn.InstanceNorm2d(dim * 2), nn.ReLU(inplace=True), ] dim *= 2 # Residual blocks for _ in range(3): layers += [ResidualBlock(dim)] self.model_blocks = nn.Sequential(*layers) self.shared_block = shared_block
Example #19
Source File: models.py From PyTorch-GAN with MIT License | 5 votes |
def __init__(self, features): super(ResidualBlock, self).__init__() conv_block = [ nn.ReflectionPad2d(1), nn.Conv2d(features, features, 3), nn.InstanceNorm2d(features), nn.ReLU(inplace=True), nn.ReflectionPad2d(1), nn.Conv2d(features, features, 3), nn.InstanceNorm2d(features), ] self.conv_block = nn.Sequential(*conv_block)
Example #20
Source File: models.py From PyTorch-GAN with MIT License | 5 votes |
def __init__(self, in_features): super(ResidualBlock, self).__init__() self.block = nn.Sequential( nn.ReflectionPad2d(1), nn.Conv2d(in_features, in_features, 3), nn.InstanceNorm2d(in_features), nn.ReLU(inplace=True), nn.ReflectionPad2d(1), nn.Conv2d(in_features, in_features, 3), nn.InstanceNorm2d(in_features), )
Example #21
Source File: networks.py From EverybodyDanceNow_reproduce_pytorch with MIT License | 5 votes |
def __init__(self, input_nc, output_nc, ngf=32, n_downsample_global=3, n_blocks_global=9, n_local_enhancers=1, n_blocks_local=3, norm_layer=nn.BatchNorm2d, padding_type='reflect'): super(LocalEnhancer, self).__init__() self.n_local_enhancers = n_local_enhancers ###### global generator model ##### ngf_global = ngf * (2**n_local_enhancers) model_global = GlobalGenerator(input_nc, output_nc, ngf_global, n_downsample_global, n_blocks_global, norm_layer).model model_global = [model_global[i] for i in range(len(model_global)-3)] # get rid of final convolution layers self.model = nn.Sequential(*model_global) ###### local enhancer layers ##### for n in range(1, n_local_enhancers+1): ### downsample ngf_global = ngf * (2**(n_local_enhancers-n)) model_downsample = [nn.ReflectionPad2d(3), nn.Conv2d(input_nc, ngf_global, kernel_size=7, padding=0), norm_layer(ngf_global), nn.ReLU(True), nn.Conv2d(ngf_global, ngf_global * 2, kernel_size=3, stride=2, padding=1), norm_layer(ngf_global * 2), nn.ReLU(True)] ### residual blocks model_upsample = [] for i in range(n_blocks_local): model_upsample += [ResnetBlock(ngf_global * 2, padding_type=padding_type, norm_layer=norm_layer)] ### upsample model_upsample += [nn.ConvTranspose2d(ngf_global * 2, ngf_global, kernel_size=3, stride=2, padding=1, output_padding=1), norm_layer(ngf_global), nn.ReLU(True)] ### final convolution if n == n_local_enhancers: model_upsample += [nn.ReflectionPad2d(3), nn.Conv2d(ngf, output_nc, kernel_size=7, padding=0), nn.Tanh()] setattr(self, 'model'+str(n)+'_1', nn.Sequential(*model_downsample)) setattr(self, 'model'+str(n)+'_2', nn.Sequential(*model_upsample)) self.downsample = nn.AvgPool2d(3, stride=2, padding=[1, 1], count_include_pad=False)
Example #22
Source File: blocks.py From SRFBN_CVPR19 with MIT License | 5 votes |
def pad(pad_type, padding): pad_type = pad_type.lower() if padding == 0: return None layer = None if pad_type == 'reflect': layer = nn.ReflectionPad2d(padding) elif pad_type == 'replicate': layer = nn.ReplicationPad2d(padding) else: raise NotImplementedError('[ERROR] Padding layer [%s] is not implemented!'%pad_type) return layer
Example #23
Source File: res_gca_enc.py From GCA-Matting with MIT License | 5 votes |
def __init__(self, block, layers, norm_layer=None, late_downsample=False): super(ResGuidedCxtAtten, self).__init__(block, layers, norm_layer, late_downsample=late_downsample) first_inplane = 3 + CONFIG.model.trimap_channel self.shortcut_inplane = [first_inplane, self.midplanes, 64, 128, 256] self.shortcut_plane = [32, self.midplanes, 64, 128, 256] self.shortcut = nn.ModuleList() for stage, inplane in enumerate(self.shortcut_inplane): self.shortcut.append(self._make_shortcut(inplane, self.shortcut_plane[stage])) self.guidance_head = nn.Sequential( nn.ReflectionPad2d(1), SpectralNorm(nn.Conv2d(3, 16, kernel_size=3, padding=0, stride=2, bias=False)), nn.ReLU(inplace=True), self._norm_layer(16), nn.ReflectionPad2d(1), SpectralNorm(nn.Conv2d(16, 32, kernel_size=3, padding=0, stride=2, bias=False)), nn.ReLU(inplace=True), self._norm_layer(32), nn.ReflectionPad2d(1), SpectralNorm(nn.Conv2d(32, 128, kernel_size=3, padding=0, stride=2, bias=False)), nn.ReLU(inplace=True), self._norm_layer(128) ) self.gca = GuidedCxtAtten(128, 128) # initialize guidance head for layers in range(len(self.guidance_head)): m = self.guidance_head[layers] if isinstance(m, nn.Conv2d): if hasattr(m, "weight_bar"): nn.init.xavier_uniform_(m.weight_bar) elif isinstance(m, nn.BatchNorm2d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0)
Example #24
Source File: model.py From everybody_dance_now_pytorch with GNU Affero General Public License v3.0 | 5 votes |
def __init__(self, input_nc=3, output_nc=3, ngf=64, n_downsampling=3, n_blocks=9, norm_layer=nn.BatchNorm2d, padding_type='reflect'): assert (n_blocks >= 0) super(GlobalGenerator, self).__init__() activation = nn.ReLU(True) model = [nn.ReflectionPad2d(3), nn.Conv2d(input_nc, ngf, kernel_size=7, padding=0), norm_layer(ngf), activation] # downsample for i in range(n_downsampling): mult = 2 ** i model += [nn.Conv2d(ngf * mult, ngf * mult * 2, kernel_size=3, stride=2, padding=1), norm_layer(ngf * mult * 2), activation] # resnet blocks mult = 2 ** n_downsampling for i in range(n_blocks): model += [ResnetBlock(ngf * mult, padding_type=padding_type, activation=activation, norm_layer=norm_layer)] # upsample for i in range(n_downsampling): mult = 2 ** (n_downsampling - i) model += [nn.ConvTranspose2d(ngf * mult, int(ngf * mult / 2), kernel_size=3, stride=2, padding=1, output_padding=1), norm_layer(int(ngf * mult / 2)), activation] model += [nn.ReflectionPad2d(3), nn.Conv2d(ngf, output_nc, kernel_size=7, padding=0), nn.Tanh()] self.model = nn.Sequential(*model)
Example #25
Source File: model.py From everybody_dance_now_pytorch with GNU Affero General Public License v3.0 | 5 votes |
def build_conv_block(self, dim, padding_type, norm_layer, activation, use_dropout): conv_block = [] p = 0 if padding_type == 'reflect': conv_block += [nn.ReflectionPad2d(1)] elif padding_type == 'replicate': conv_block += [nn.ReplicationPad2d(1)] elif padding_type == 'zero': p = 1 else: raise NotImplementedError('padding [%s] is not implemented' % padding_type) conv_block += [nn.Conv2d(dim, dim, kernel_size=3, padding=p), norm_layer(dim), activation] if use_dropout: conv_block += [nn.Dropout(0.5)] p = 0 if padding_type == 'reflect': conv_block += [nn.ReflectionPad2d(1)] elif padding_type == 'replicate': conv_block += [nn.ReplicationPad2d(1)] elif padding_type == 'zero': p = 1 else: raise NotImplementedError('padding [%s] is not implemented' % padding_type) conv_block += [nn.Conv2d(dim, dim, kernel_size=3, padding=p), norm_layer(dim)] return nn.Sequential(*conv_block)
Example #26
Source File: networks.py From DepthNets with MIT License | 5 votes |
def build_conv_block(self, dim, padding_type, norm_layer, use_dropout, use_bias): conv_block = [] p = 0 if padding_type == 'reflect': conv_block += [nn.ReflectionPad2d(1)] elif padding_type == 'replicate': conv_block += [nn.ReplicationPad2d(1)] elif padding_type == 'zero': p = 1 else: raise NotImplementedError('padding [%s] is not implemented' % padding_type) conv_block += [nn.Conv2d(dim, dim, kernel_size=3, padding=p, bias=use_bias), norm_layer(dim), nn.ReLU(True)] if use_dropout: conv_block += [nn.Dropout(0.5)] p = 0 if padding_type == 'reflect': conv_block += [nn.ReflectionPad2d(1)] elif padding_type == 'replicate': conv_block += [nn.ReplicationPad2d(1)] elif padding_type == 'zero': p = 1 else: raise NotImplementedError('padding [%s] is not implemented' % padding_type) conv_block += [nn.Conv2d(dim, dim, kernel_size=3, padding=p, bias=use_bias), norm_layer(dim)] return nn.Sequential(*conv_block)
Example #27
Source File: networks_modified.py From everybody_dance_now_pytorch with GNU Affero General Public License v3.0 | 5 votes |
def __init__(self, input_nc, output_nc, ngf=32, n_downsample_global=3, n_blocks_global=9, n_local_enhancers=1, n_blocks_local=3, norm_layer=nn.BatchNorm2d, padding_type='reflect'): super(LocalEnhancer, self).__init__() self.n_local_enhancers = n_local_enhancers ###### global generator model ##### ngf_global = ngf * (2**n_local_enhancers) model_global = GlobalGenerator(input_nc, output_nc, ngf_global, n_downsample_global, n_blocks_global, norm_layer).model model_global = [model_global[i] for i in range(len(model_global)-3)] # get rid of final convolution layers self.model = nn.Sequential(*model_global) ###### local enhancer layers ##### for n in range(1, n_local_enhancers+1): ### downsample ngf_global = ngf * (2**(n_local_enhancers-n)) model_downsample = [nn.ReflectionPad2d(3), nn.Conv2d(input_nc, ngf_global, kernel_size=7, padding=0), norm_layer(ngf_global), nn.ReLU(True), nn.Conv2d(ngf_global, ngf_global * 2, kernel_size=3, stride=2, padding=1), norm_layer(ngf_global * 2), nn.ReLU(True)] ### residual blocks model_upsample = [] for i in range(n_blocks_local): model_upsample += [ResnetBlock(ngf_global * 2, padding_type=padding_type, norm_layer=norm_layer)] ### upsample model_upsample += [nn.ConvTranspose2d(ngf_global * 2, ngf_global, kernel_size=3, stride=2, padding=1, output_padding=1), norm_layer(ngf_global), nn.ReLU(True)] ### final convolution if n == n_local_enhancers: model_upsample += [nn.ReflectionPad2d(3), nn.Conv2d(ngf, output_nc, kernel_size=7, padding=0), nn.Tanh()] setattr(self, 'model'+str(n)+'_1', nn.Sequential(*model_downsample)) setattr(self, 'model'+str(n)+'_2', nn.Sequential(*model_upsample)) self.downsample = nn.AvgPool2d(3, stride=2, padding=[1, 1], count_include_pad=False) # 20180929: change input style
Example #28
Source File: decoders.py From atari-representation-learning with MIT License | 5 votes |
def __init__(self, in_channels, out_channels, kernel_size, bias=True, padding_layer=nn.ReflectionPad2d): super().__init__() ka = kernel_size // 2 kb = ka - 1 if kernel_size % 2 == 0 else ka self.net = torch.nn.Sequential( padding_layer((ka, kb, ka, kb)), torch.nn.Conv2d(in_channels, out_channels, kernel_size, bias=bias) )
Example #29
Source File: networks.py From everybody_dance_now_pytorch with GNU Affero General Public License v3.0 | 5 votes |
def build_conv_block(self, dim, padding_type, norm_layer, activation, use_dropout): conv_block = [] p = 0 if padding_type == 'reflect': conv_block += [nn.ReflectionPad2d(1)] elif padding_type == 'replicate': conv_block += [nn.ReplicationPad2d(1)] elif padding_type == 'zero': p = 1 else: raise NotImplementedError('padding [%s] is not implemented' % padding_type) conv_block += [nn.Conv2d(dim, dim, kernel_size=3, padding=p), norm_layer(dim), activation] if use_dropout: conv_block += [nn.Dropout(0.5)] p = 0 if padding_type == 'reflect': conv_block += [nn.ReflectionPad2d(1)] elif padding_type == 'replicate': conv_block += [nn.ReplicationPad2d(1)] elif padding_type == 'zero': p = 1 else: raise NotImplementedError('padding [%s] is not implemented' % padding_type) conv_block += [nn.Conv2d(dim, dim, kernel_size=3, padding=p), norm_layer(dim)] return nn.Sequential(*conv_block)
Example #30
Source File: CycleGAN.py From Deep-learning-with-cats with GNU General Public License v3.0 | 5 votes |
def __init__(self, h_size): super(Residual_block, self).__init__() # Two Conv layers with same output size model = [nn.ReflectionPad2d(padding=1), nn.Conv2d(h_size, h_size, kernel_size=3, stride=1, padding=0), Norm2D(h_size), nn.ReLU(True)] if param.use_dropout: model += [nn.Dropout(0.5)] model += [nn.ReflectionPad2d(padding=1), nn.Conv2d(h_size, h_size, kernel_size=3, stride=1, padding=0), nn.ReLU(True)] self.model = nn.Sequential(*model)