def __init__()

in separate_vae/models/pix2pixhd_networks.py [0:0]


    def __init__(self, input_nc, z_nc, ngf=64, K=16, bottleneck='2d', n_downsampling=3, n_blocks=9, max_mult=16,
                 norm_layer=nn.BatchNorm2d, padding_type='reflect', vaeLike=False):
        assert(n_blocks >= 0)
        super(D_NLayers, self).__init__()
        self.vaeLike = vaeLike
        self.bottleneck = bottleneck
        activation = nn.ReLU(True)
        ngf = int(ngf/K)

        if self.bottleneck == '1d':
            # Additional ConvTranspose2d to upsample from 1x1 to 2x2
            model = [nn.ConvTranspose2d(z_nc, ngf * max_mult, kernel_size=3, stride=2, padding=1, output_padding=1),
                       norm_layer(ngf * max_mult)]
            mult = 2**(n_downsampling)
            if mult > max_mult:
                model += [nn.ConvTranspose2d(ngf * max_mult, ngf * max_mult, kernel_size=3, stride=2, padding=1, output_padding=1),
                           norm_layer(ngf * max_mult), activation]
            else:
                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]
        else:
            mult = 2**(n_downsampling)
            if mult > max_mult:
                model = [nn.ConvTranspose2d(ngf * max_mult, ngf * max_mult, kernel_size=3, stride=2, padding=1, output_padding=1),
                           norm_layer(ngf * max_mult), activation]
            else:
                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]

        ### upsample
        for i in range(1, n_downsampling):
            mult = 2**(n_downsampling - i)
            if mult > max_mult:
                model += [nn.ConvTranspose2d(ngf * max_mult, ngf * max_mult, kernel_size=3, stride=2, padding=1, output_padding=1),
                           norm_layer(ngf * max_mult), activation]
            else:
                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, input_nc, kernel_size=7, padding=0), nn.Sigmoid()]
        self.conv = nn.Sequential(*model)