コード例 #1
0
 def __init__(self):
     super(Discriminator48, self).__init__(
         dc1=L.Convolution2D(1,
                             32,
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm1=L.BatchNormalization(32),
         dc2=L.Convolution2D(32,
                             64,
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm2=L.BatchNormalization(64),
         dc3=L.Convolution2D(64,
                             128,
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm3=L.BatchNormalization(128),
         dc4=L.Linear(6 * 6 * 128, 2, initialW=Normal(0.02)),
     )
コード例 #2
0
 def __init__(self, density=1, size=64, channel=3):
     super(image2image_conv, self).__init__(
         dc1=L.Convolution2D(channel,
                             int(16 * density),
                             3,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         dc2=L.Convolution2D(int(16 * density),
                             int(32 * density),
                             3,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         dc3=L.Convolution2D(int(32 * density),
                             int(32 * density),
                             3,
                             stride=1,
                             pad=1,
                             initialW=Normal(0.02)),
         norm3=L.BatchNormalization(int(32 * density)),
         g4=L.Deconvolution2D(int(32 * density),
                              int(16 * density),
                              2,
                              stride=2,
                              pad=0,
                              initialW=Normal(0.02)),
         norm4=L.BatchNormalization(int(16 * density)),
         g5=L.Deconvolution2D(int(16 * density),
                              channel,
                              2,
                              stride=2,
                              pad=0,
                              initialW=Normal(0.02)),
     )
コード例 #3
0
 def __init__(self, density=1, size=64, channel=3):
     assert (size % 16 == 0)
     initial_size = size / 16
     super(Discriminator, self).__init__(
         dc1=L.Convolution2D(channel,
                             int(16 * density),
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         dc2=L.Convolution2D(int(16 * density),
                             int(32 * density),
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm2=L.BatchNormalization(int(32 * density)),
         dc3=L.Convolution2D(int(32 * density),
                             int(64 * density),
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm3=L.BatchNormalization(int(64 * density)),
         dc4=L.Convolution2D(int(64 * density),
                             int(128 * density),
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm4=L.BatchNormalization(int(128 * density)),
         dc5=L.Linear(initial_size * initial_size * int(128 * density),
                      2,
                      initialW=Normal(0.02)),
     )
コード例 #4
0
 def __init__(self):
     latent_size = 100
     super(Generator48, self).__init__(
         g1=L.Linear(latent_size * 2, 6 * 6 * 128, initialW=Normal(0.02)),
         norm1=L.BatchNormalization(6 * 6 * 128),
         g2=L.Deconvolution2D(128,
                              64,
                              4,
                              stride=2,
                              pad=1,
                              initialW=Normal(0.02)),
         norm2=L.BatchNormalization(64),
         g3=L.Deconvolution2D(64,
                              32,
                              4,
                              stride=2,
                              pad=1,
                              initialW=Normal(0.02)),
         norm3=L.BatchNormalization(32),
         g4=L.Deconvolution2D(32,
                              1,
                              4,
                              stride=2,
                              pad=1,
                              initialW=Normal(0.02)),
     )
     self.latent_size = latent_size
コード例 #5
0
    def __init__(self):
        super().__init__()

        with self.init_scope():
            self.first = Convolution2D(3,
                                       64,
                                       ksize=3,
                                       stride=1,
                                       pad=1,
                                       initialW=Normal(0.02))
            self.res1 = SRGeneratorResBlock()
            self.res2 = SRGeneratorResBlock()
            self.res3 = SRGeneratorResBlock()
            self.res4 = SRGeneratorResBlock()
            self.res5 = SRGeneratorResBlock()
            self.conv_mid = Convolution2D(64,
                                          64,
                                          ksize=3,
                                          stride=1,
                                          pad=1,
                                          initialW=Normal(0.02))
            self.bn_mid = BatchNormalization(64)
            self.upscale1 = SRGeneratorUpScaleBlock()
            self.upscale2 = SRGeneratorUpScaleBlock()
            self.conv_output = Convolution2D(64,
                                             3,
                                             ksize=3,
                                             stride=1,
                                             pad=1,
                                             initialW=Normal(0.02))
コード例 #6
0
 def __init__(self, density=1, size=5, channel=1):
     super(Discriminator_simple, self).__init__(
         dc1=L.Convolution2D(channel,
                             int(16 * density),
                             2,
                             stride=1,
                             pad=1,
                             initialW=Normal(0.02)),
         dc2=L.Convolution2D(int(16 * density),
                             int(16 * density),
                             2,
                             stride=1,
                             pad=1,
                             initialW=Normal(0.02)),
         norm2=L.BatchNormalization(int(16 * density)),
         dc3=L.Convolution2D(int(16 * density),
                             int(32 * density),
                             2,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm3=L.BatchNormalization(int(32 * density)),
         dc4=L.Convolution2D(int(32 * density),
                             int(32 * density),
                             2,
                             stride=1,
                             pad=0,
                             initialW=Normal(0.02)),
         norm4=L.BatchNormalization(int(32 * density)),
         dc5=L.Linear(3 * 3 * int(32 * density), 2, initialW=Normal(0.02)),
     )
コード例 #7
0
 def __init__(self, density=1, size=64, channel=3):
     assert (size % 16 == 0)
     initial_size = size // 16
     super(Discriminator, self).__init__(
         dc1=L.Convolution2D(channel, int(16 * density), 4, stride=2, pad=1,
                             initialW=Normal(0.02)),
         dc2=L.Convolution2D(int(16 * density), int(32 * density), 4, stride=2, pad=1,
                             initialW=Normal(0.02)),
         norm2=L.BatchNormalization(int(32 * density)),
         # An extra layer to make the network deeper and not changing the feature sizes
         dc2_=L.Convolution2D(int(32 * density), int(32 * density), 3, stride=1, pad=1,
                              initialW=Normal(0.02)),
         norm2_=L.BatchNormalization(int(32 * density)),
         # "plus layer" another extra layer added to make it deeper with stride = 1 but this one has 
         # a skip connection between input and output
         dc2_p=L.Convolution2D(int(32 * density), int(32 * density), 3, stride=1, pad=1,
                             initialW=Normal(0.02)),
         norm2_p=L.BatchNormalization(int(32 * density)),
         dc3=L.Convolution2D(int(32 * density), int(64 * density), 4, stride=2, pad=1,
                             initialW=Normal(0.02)),
         norm3=L.BatchNormalization(int(64 * density)),
         # An extra layer to make the network deeper and not changing the feature sizes
         dc3_=L.Convolution2D(int(64 * density), int(64 * density), 3, stride=1, pad=1,
                              initialW=Normal(0.02)),
         norm3_=L.BatchNormalization(int(64 * density)),
         # "plus layer" another extra layer added to make it deeper with stride = 1 but this one has 
         # a skip connection between input and output
         dc3_p=L.Convolution2D(int(64 * density), int(64 * density), 3, stride=1, pad=1,
                             initialW=Normal(0.02)),
         norm3_p=L.BatchNormalization(int(64 * density)),
         dc4=L.Convolution2D(int(64 * density), int(128 * density), 4, stride=2, pad=1,
                             initialW=Normal(0.02)),
         norm4=L.BatchNormalization(int(128 * density)),
         dc5=L.Linear(initial_size * initial_size * int(128 * density), 2, initialW=Normal(0.02)),
     )
コード例 #8
0
 def __init__(self,
              density=1,
              size=64,
              latent_size=100,
              channel=3,
              num_objects=10,
              num_describtions=10):
     filter_size = 4
     # intermediate_size = 256
     assert (size % 16 == 0)
     initial_size = size / 16
     super(Generator_text, self).__init__(
         # g0=L.Linear(latent_size + num_objects + num_describtions, intermediate_size, initialW=Normal(0.02)),
         g1=L.Linear(latent_size + num_objects + num_describtions,
                     initial_size * initial_size * int(128 * density),
                     initialW=Normal(0.02)),
         norm1=L.BatchNormalization(initial_size * initial_size *
                                    int(128 * density)),
         g2=L.Deconvolution2D(int(128 * density),
                              int(64 * density),
                              filter_size,
                              stride=2,
                              pad=1,
                              initialW=Normal(0.02)),
         norm2=L.BatchNormalization(int(64 * density)),
         g3=L.Deconvolution2D(int(64 * density),
                              int(32 * density),
                              filter_size,
                              stride=2,
                              pad=1,
                              initialW=Normal(0.02)),
         norm3=L.BatchNormalization(int(32 * density)),
         g4=L.Deconvolution2D(int(32 * density),
                              int(16 * density),
                              filter_size,
                              stride=2,
                              pad=1,
                              initialW=Normal(0.02)),
         norm4=L.BatchNormalization(int(16 * density)),
         g5=L.Deconvolution2D(int(16 * density),
                              channel,
                              filter_size,
                              stride=2,
                              pad=1,
                              initialW=Normal(0.02)),
     )
     self.density = density
     self.latent_size = latent_size
     self.initial_size = initial_size
コード例 #9
0
    def __init__(self, opt):
        super().__init__()

        he_w = HeNormal()
        xavier_w = Normal()
        ndf = opt.ndf
        with self.init_scope():
            #[input] nclass x 256 x 256
            self.c1 = define_conv(opt)(opt.class_num,
                                       ndf,
                                       ksize=3,
                                       stride=2,
                                       pad=1,
                                       initialW=he_w)

            #[input] ndf x 128 x 128
            self.c2 = define_conv(opt)(ndf,
                                       ndf * 2,
                                       ksize=3,
                                       stride=2,
                                       pad=1,
                                       initialW=he_w)
            self.c2_norm = L.BatchNormalization(size=ndf * 2)

            #[input] ndf*2 x 64 x 64
            self.c3 = define_conv(opt)(ndf * 2,
                                       ndf * 4,
                                       ksize=3,
                                       stride=2,
                                       pad=1,
                                       initialW=he_w)
            self.c3_norm = L.BatchNormalization(size=ndf * 4)

            #[input] ndf*4 x 32 x 32
            self.c4 = define_conv(opt)(ndf * 4,
                                       ndf * 8,
                                       ksize=3,
                                       stride=2,
                                       pad=1,
                                       initialW=he_w)
            self.c4_norm = L.BatchNormalization(size=ndf * 8)

            #[input] ndf*8 x 16 x 16
            self.c5 = define_conv(opt)(ndf * 8,
                                       1,
                                       ksize=3,
                                       stride=2,
                                       pad=1,
                                       initialW=he_w)

            #[input] 1 x 8 x 8
            self.upscale = define_deconv(opt)(1,
                                              1,
                                              ksize=32,
                                              stride=32,
                                              initialW=xavier_w)
            #[output] 1 x 256 x 256

        self.activation = F.leaky_relu
コード例 #10
0
    def __init__(self, opt):
        super().__init__()

        xavier_w = Normal()
        he_w = HeNormal()

        C, H, W = opt.img_shape
        ngf = opt.ngf
        label_ch = opt.class_num
        self.opt = opt

        layer_num = 6
        init_shape = (ngf * 8, H // 2**layer_num, W // 2**layer_num)

        with self.init_scope():
            self.w1 = ConstantFCN(opt, opt.class_num)
            self.w2 = ConstantFCN(opt, opt.c_shape[0])

            self.head_reshape = lambda x: F.resize_images(x, init_shape[1:])
            self.head = define_conv(opt)(label_ch,
                                         init_shape[0],
                                         ksize=3,
                                         pad=1,
                                         initialW=he_w)

            #512 x 4 x 4
            self.r1 = SPADEResBlock(opt, ngf * 8, ngf * 8)
            self.up1 = define_upsampling(opt, ngf * 8)

            #512 x 8 x 8
            self.r2 = SPADEResBlock(opt, ngf * 8, ngf * 8)
            self.up2 = define_upsampling(opt, ngf * 8)

            #512 x 16 x 16
            self.r3 = SPADEResBlock(opt, ngf * 8, ngf * 8)
            self.up3 = define_upsampling(opt, ngf * 8)

            #512 x 32 x 32
            self.r4 = SPADEResBlock(opt, ngf * 8, ngf * 4)
            self.up4 = define_upsampling(opt, ngf * 4)

            #256 x 64 x 64
            self.r5 = SPADEResBlock(opt, ngf * 4, ngf * 2)
            self.up5 = define_upsampling(opt, ngf * 2)

            #128 x 128 x 128
            self.r6 = SPADEResBlock(opt, ngf * 2, ngf)
            self.up6 = define_upsampling(opt, ngf)

            #64 x 256 x 256
            self.r7 = SPADEResBlock(opt, ngf, ngf // 2)

            #32 x 256 x 256
            self.to_img = L.Convolution2D(ngf // 2,
                                          3,
                                          ksize=3,
                                          pad=1,
                                          initialW=xavier_w)
コード例 #11
0
    def __init__(self):
        super().__init__()

        with self.init_scope():
            self.c1 = Convolution2D(64,
                                    64,
                                    ksize=3,
                                    stride=1,
                                    pad=1,
                                    initialW=Normal(0.02))
            self.bn1 = BatchNormalization(64)
            self.c2 = Convolution2D(64,
                                    64,
                                    ksize=3,
                                    stride=1,
                                    pad=1,
                                    initialW=Normal(0.02))
            self.bn2 = BatchNormalization(64)
コード例 #12
0
 def __init__(self, density=1, size=64, latent_size=100, channel=3, num_objects=10, num_descriptions=10):
     filter_size = 2
     intermediate_size = size / 8
     assert (size % 16 == 0)
     initial_size = size / 16
     super(Generator_text, self).__init__(
         g0=L.Linear(num_objects + num_descriptions, intermediate_size * intermediate_size * 7, initialW=Normal(0.02)),
         g1=L.Linear(latent_size, initial_size * initial_size * int(128 * density),
                     initialW=Normal(0.02)),
         norm1=L.BatchNormalization(initial_size * initial_size * int(128 * density)),
         g2=L.Deconvolution2D(int(128 * density), int(64 * density), filter_size, stride=2, pad=0,
                              initialW=Normal(0.02)),
         norm2=L.BatchNormalization(int(64 * density)),
         # An extra layer to make the network deeper and not changing the feature sizes
         g2_=L.Deconvolution2D(int(64 * density), int(64 * density), 3, stride=1, pad=1,
                              initialW=Normal(0.02)),
         norm2_=L.BatchNormalization(int(64 * density)),
         # "plus layer" another extra layer added to make it deeper with stride = 1 but this one has 
         # a skip connection between input and output
         g2_p=L.Convolution2D(int(64 * density), int(64 * density), 3, stride=1, pad=1,
                             initialW=Normal(0.02)),
         norm2_p=L.BatchNormalization(int(64 * density)),
         g3=L.Deconvolution2D(int(64 * density + 7), int(32 * density), filter_size, stride=2, pad=0,
                              initialW=Normal(0.02)),
         norm3=L.BatchNormalization(int(32 * density)),
         g3_=L.Deconvolution2D(int(32 * density), int(32 * density), 3, stride=1, pad=1,
                              initialW=Normal(0.02)),
         norm3_=L.BatchNormalization(int(32 * density)),
         g3_p=L.Convolution2D(int(32 * density), int(32 * density), 3, stride=1, pad=1,
                             initialW=Normal(0.02)),
         norm3_p=L.BatchNormalization(int(32 * density)),
         g4=L.Deconvolution2D(int(32 * density), int(16 * density), filter_size, stride=2, pad=0,
                              initialW=Normal(0.02)),
         norm4=L.BatchNormalization(int(16 * density)),
         g4_=L.Deconvolution2D(int(16 * density), int(16 * density), 3, stride=1, pad=1,
                              initialW=Normal(0.02)),
         norm4_=L.BatchNormalization(int(16 * density)),
         g5=L.Deconvolution2D(int(16 * density), channel, filter_size, stride=2, pad=0,
                              initialW=Normal(0.02)),
     )
     self.density = density
     self.latent_size = latent_size
     self.initial_size = initial_size
コード例 #13
0
    def __init__(self):
        super().__init__()

        with self.init_scope():
            self.conv = Convolution2D(in_channels=64,
                                      out_channels=256,
                                      ksize=3,
                                      stride=1,
                                      pad=1,
                                      initialW=Normal(0.02))
コード例 #14
0
 def __init__(self, size, in_channels, out_channels):
     super().__init__()
     with self.init_scope():
         self.c1 = Parameter(shape=(in_channels, 4, 4),
                             initializer=Normal(1.0))
         self.s1 = StyleAffineTransformation(size, in_channels)
         self.w1 = WeightModulatedConvolution(in_channels, out_channels)
         self.n1 = NoiseAdder()
         self.a1 = LeakyRelu()
         self.s2 = StyleAffineTransformation(size, out_channels)
         self.trgb = ToRGB(out_channels)
コード例 #15
0
    def __init__(self, density=1, latent_size=64, robot_latent_size=16, text_encoding_size=128, att_size=28, word_num=10, shape_size=10, color_size=10):
        self.att_size = att_size
        self.input_size = 224
        self.density = density
        self.word_num = word_num
        super(Encoder_double_att, self).__init__(
            # LSTM part
            l1_ = L.LSTM(self.word_num, text_encoding_size),
            # a pretrained VGG feature extractor, not trained in this network
            dc1 = L.Convolution2D(3, int(16 * density), 5, stride=2, pad=2, initialW=Normal(0.02)),
            dc2 = L.Convolution2D(int(16 * density), int(32 * density), 5, stride=2, pad=2, initialW=Normal(0.02)),
            norm2 = L.BatchNormalization(int(32 * density)),
            dc2_= L.Convolution2D(int(32 * density), int(32 * density), 3, stride=1, pad=1, initialW=Normal(0.02)),
            norm2_= L.BatchNormalization(int(32 * density)),
            dc2__ = L.Convolution2D(int(32 * density), int(32 * density), 3, stride=1, pad=1, initialW=Normal(0.02)),
            norm2__ = L.BatchNormalization(int(32 * density)),
            dc3 = L.Convolution2D(int(32 * density), int(64 * density), 3, stride=2, pad=1, initialW=Normal(0.02)),
            norm3=L.BatchNormalization(int(64 * density)),
            dc3_=L.Convolution2D(int(64 * density), int(64 * density), 3, stride=1, pad=1, initialW=Normal(0.02)),
            norm3_=L.BatchNormalization(int(64 * density)),
            dc3__=L.Convolution2D(int(64 * density), int(64 * density), 3, stride=1, pad=1, initialW=Normal(0.02)),
            norm3__=L.BatchNormalization(int(64 * density)),
            dc4=L.Convolution2D(int(64 * density), int(128 * density), 3, stride=1, pad=1, initialW=Normal(0.02)),
            norm4=L.BatchNormalization(int(128 * density)),
            dc5 = L.Linear(self.att_size * self.att_size * int(128 * density), 32, initialW=Normal(0.02)),
            # dc6 = L.Linear(robot_latent_size, 3, initialW=Normal(0.02)),

            fc_video0 = L.Convolution2D(int(128 * density), int(128 * density), 1, stride=1, pad=0, initialW=Normal(0.02), nobias=True),
            norm0 = L.BatchNormalization(int(128 * density), use_gamma = False),
            fc_video1 = L.Convolution2D(int(128 * density), int(16 * density), 1, stride=1, pad=0, initialW=Normal(0.02), nobias=True),
            norm1 = L.BatchNormalization(int(16 * density), use_gamma = False),
            fc_video2 = L.Convolution2D(int(16 * density), int(16 * density), 1, stride=1, pad=0, initialW=Normal(0.02)),

            # Text Input Layers
            fc_text0 = L.Linear(text_encoding_size, int(8 * density), initialW=Normal(0.02), nobias=True),
            norm_text0 = L.BatchNormalization(int(8 * density)),
            fc_text1 = L.Linear(int(8 * density), int(16 * density), initialW=Normal(0.02)),
            # norm_text1 = L.BatchNormalization(128),

            #Attention Extraction
            norm_mix = L.BatchNormalization(int(16 * density), use_gamma = False),
            fc_mix0 = L.Convolution2D(int(16 * density), 1, 1, stride=1, pad=0, initialW=Normal(0.02)),
            # fc7 = L.Linear(64 * 7 * 7, 64 * self.att_size * self.att_size, initialW=Normal(0.02)),

            #Classifier
            fc_cls0 = L.Linear(int(16 * density), int(8 * density), initialW=Normal(0.02), nobias=True),
            norm_cls0 = L.BatchNormalization(int(8 * density)),
            fc5 = L.Linear(int(8 * density), shape_size, initialW=Normal(0.02)),
            fc6 = L.Linear(int(8 * density), color_size, initialW=Normal(0.02)),
            fc7 = L.Linear(int(8 * density), 7, initialW=Normal(0.02)),

            #Latent extraction
            # norm_D = L.BatchNormalization(int((128 + 1) * density)),
            # fc_toz_mean = L.Linear(int((128 + 1) * density), latent_size, initialW=Normal(0.02)),
            # fc_toz_var = L.Linear(int((128 + 1) * density), latent_size, initialW=Normal(0.02)),
        )
コード例 #16
0
 def __init__(self,
              in_size,
              out_size=None,
              initial_bias=None,
              gain=sqrt(2)):
     super().__init__()
     self.c = gain * sqrt(1 / in_size)
     with self.init_scope():
         self.linear = Linear(in_size,
                              out_size,
                              initialW=Normal(1.0),
                              initial_bias=initial_bias)
コード例 #17
0
 def __init__(self, size=128, num_objects=10, num_descriptions=10):
     super(classifier_simple, self).__init__(
         dc0=L.Linear(size, 128, initialW=Normal(0.02)),
         dc1=L.Linear(128, 64, initialW=Normal(0.02)),
         dc2=L.Linear(64, 64, initialW=Normal(0.02)),
         dc3=L.Linear(64, 32, initialW=Normal(0.02)),
         dc4=L.Linear(32, 32, initialW=Normal(0.02)),
         dc5=L.Linear(32, num_objects, initialW=Normal(0.02)),
         dc55=L.Linear(32, num_descriptions, initialW=Normal(0.02)),
     )
コード例 #18
0
 def __init__(self, density=1, size=64, channel=3, num_objects=10, num_descriptions=10):
     assert (size % 16 == 0)
     self.num_objects = num_objects
     self.num_descriptions = num_descriptions
     initial_size = size / 16
     super(Discriminator_texual, self).__init__(
         dc1=L.Convolution2D(channel, int(16 * density), 4, stride=2, pad=1,
                             initialW=Normal(0.02)),
         dc2=L.Convolution2D(int(16 * density), int(32 * density), 4, stride=2, pad=1,
                             initialW=Normal(0.02)),
         norm2=L.BatchNormalization(int(32 * density)),
         # "plus layer" another extra layer added to make it deeper with stride = 1 but this one has 
         # a skip connection between input and output
         dc2_p=L.Convolution2D(int(32 * density), int(32 * density), 3, stride=1, pad=1,
                             initialW=Normal(0.02)),
         norm2_p=L.BatchNormalization(int(32 * density)),
         dc3=L.Convolution2D(int(32 * density), int(64 * density), 4, stride=2, pad=1,
                             initialW=Normal(0.02)),
         norm3=L.BatchNormalization(int(64 * density)),
         # "plus layer" another extra layer added to make it deeper with stride = 1 but this one has 
         # a skip connection between input and output
         dc3_p=L.Convolution2D(int(64 * density), int(64 * density), 3, stride=1, pad=1,
                             initialW=Normal(0.02)),
         norm3_p=L.BatchNormalization(int(64 * density)),
         dc4=L.Convolution2D(int(64 * density), int(128 * density), 4, stride=2, pad=1,
                             initialW=Normal(0.02)),
         norm4=L.BatchNormalization(int(128 * density)),
         dc5=L.Linear(initial_size * initial_size * int(128 * density), num_objects, initialW=Normal(0.02)),
         dc6=L.Linear(initial_size * initial_size * int(128 * density), num_descriptions, initialW=Normal(0.02)),
         dc8=L.Linear(initial_size * initial_size * int(128 * density), num_objects, initialW=Normal(0.02)),
         dc9=L.Linear(initial_size * initial_size * int(128 * density), num_descriptions, initialW=Normal(0.02)),
     )
コード例 #19
0
 def __init__(self, density=1, size=64, latent_size=100, channel=3):
     assert (size % 16 == 0)
     initial_size = size / 16
     super(Generator, self).__init__(
         g1=L.Linear(latent_size,
                     initial_size * initial_size * int(128 * density),
                     initialW=Normal(0.02)),
         norm1=L.BatchNormalization(initial_size * initial_size *
                                    int(128 * density)),
         g2=L.Deconvolution2D(int(128 * density),
                              int(64 * density),
                              4,
                              stride=2,
                              pad=1,
                              initialW=Normal(0.02)),
         norm2=L.BatchNormalization(int(64 * density)),
         g3=L.Deconvolution2D(int(64 * density),
                              int(32 * density),
                              4,
                              stride=2,
                              pad=1,
                              initialW=Normal(0.02)),
         norm3=L.BatchNormalization(int(32 * density)),
         g4=L.Deconvolution2D(int(32 * density),
                              int(16 * density),
                              4,
                              stride=2,
                              pad=1,
                              initialW=Normal(0.02)),
         norm4=L.BatchNormalization(int(16 * density)),
         g5=L.Deconvolution2D(int(16 * density),
                              channel,
                              4,
                              stride=2,
                              pad=1,
                              initialW=Normal(0.02)),
     )
     self.density = density
     self.latent_size = latent_size
     self.initial_size = initial_size
コード例 #20
0
 def __init__(self,
              in_channels,
              out_channels,
              pointwise=False,
              demod=True,
              gain=root(2)):
     super().__init__()
     self.demod = demod
     self.ksize = 1 if pointwise else 3
     self.pad = 0 if pointwise else 1
     self.c = gain * root(1 / (in_channels * self.ksize**2))
     with self.init_scope():
         self.w = Parameter(shape=(out_channels, in_channels, self.ksize,
                                   self.ksize),
                            initializer=Normal(1.0))
         self.b = Parameter(shape=out_channels, initializer=Zero())
コード例 #21
0
 def __init__(self,
              in_channels,
              out_channels,
              ksize=3,
              stride=1,
              pad=0,
              nobias=False,
              initial_bias=None,
              gain=sqrt(2),
              reflect=False):
     super().__init__()
     self.c = gain * sqrt(1 / (in_channels * ksize**2))
     self.pad = pad
     self.reflect = reflect
     with self.init_scope():
         self.conv = Convolution2D(in_channels,
                                   out_channels,
                                   ksize,
                                   stride,
                                   0 if reflect else pad,
                                   nobias=nobias,
                                   initialW=Normal(1.0),
                                   initial_bias=initial_bias)
コード例 #22
0
 def __init__(self,
              density=1,
              size=64,
              latent_size=100,
              channel=3,
              hidden_dim=100):
     assert (size % 16 == 0)
     initial_size = size / 16
     super(Encoder_text, self).__init__(
         dc1=L.Convolution2D(channel,
                             int(16 * density),
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         dc2=L.Convolution2D(int(16 * density),
                             int(32 * density),
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm2=L.BatchNormalization(int(32 * density)),
         dc3=L.Convolution2D(int(32 * density),
                             int(64 * density),
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm3=L.BatchNormalization(int(64 * density)),
         dc4=L.Convolution2D(int(64 * density),
                             int(128 * density),
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm4=L.BatchNormalization(int(128 * density)),
         mean=L.Linear(initial_size * initial_size * int(128 * density),
                       latent_size,
                       initialW=Normal(0.02)),
         var=L.Linear(initial_size * initial_size * int(128 * density),
                      latent_size,
                      initialW=Normal(0.02)),
     )
コード例 #23
0
ファイル: cn_agents.py プロジェクト: valmac/cryptotrader
 def __call__(self, array):
     if self.dtype is not None:
         assert array.dtype == self.dtype
     fan_in, fan_out = initializer.get_fans(array.shape)
     s = self.scale * np.sqrt(1. / fan_in)
     Normal(s)(array)
コード例 #24
0
    def __init__(self, opt):
        super().__init__()

        he_w = HeNormal()
        xavier_w = Normal()
        ndf = opt.ndf
        with self.init_scope():
            top_ch = opt.img_shape[0] + opt.class_num + opt.c_shape[0]

            #top_ch x 256 x 256
            self.c1 = define_conv(opt)(top_ch,
                                       ndf,
                                       ksize=4,
                                       stride=2,
                                       pad=1,
                                       initialW=he_w)

            #64 x 128 x 128
            self.c2 = define_conv(opt)(ndf,
                                       ndf * 2,
                                       ksize=4,
                                       stride=2,
                                       pad=1,
                                       initialW=he_w)
            self.n2 = L.BatchNormalization(size=ndf * 2)

            #128 x 64 x 64
            self.c3 = define_conv(opt)(ndf * 2,
                                       ndf * 4,
                                       ksize=4,
                                       stride=2,
                                       pad=1,
                                       initialW=he_w)
            self.att = SelfAttention(opt, ndf * 4)
            self.n3 = L.BatchNormalization(size=(ndf * 4))

            #256 x 32 x 32
            self.c4 = define_conv(opt)(ndf * 4,
                                       ndf * 8,
                                       ksize=4,
                                       stride=1,
                                       pad=1,
                                       initialW=he_w)
            self.n4 = L.BatchNormalization(size=ndf * 8)

            #512 x 31 x 32
            self.head = define_conv(opt)(ndf * 8,
                                         ndf * 8,
                                         ksize=4,
                                         stride=1,
                                         pad=1,
                                         initialW=he_w)

            #512 x 30 x 30
            self.r1 = ResBlock(opt, ndf * 8, ndf * 4)

            #256 x 30 x 30
            self.r2 = ResBlock(opt, ndf * 4, ndf * 2)

            #128 x 30 x 30
            self.r3 = ResBlock(opt, ndf * 2, ndf)

            #64 x 30 x 30
            self.to_patch = define_conv(opt)(ndf,
                                             1,
                                             ksize=3,
                                             stride=1,
                                             pad=1,
                                             initialW=xavier_w)

            #out is 1 x 30 x 30

            self.activation = F.leaky_relu
コード例 #25
0
    def __init__(self):
        super().__init__()

        with self.init_scope():
            self.conv_input = Convolution2D(3,
                                            64,
                                            ksize=3,
                                            stride=1,
                                            pad=0,
                                            initialW=Normal(0.02))
            self.c1 = Convolution2D(64,
                                    64,
                                    ksize=3,
                                    stride=2,
                                    pad=0,
                                    initialW=Normal(0.02))
            self.bn1 = BatchNormalization(64)
            self.c2 = Convolution2D(64,
                                    128,
                                    ksize=3,
                                    stride=1,
                                    pad=0,
                                    initialW=Normal(0.02))
            self.bn2 = BatchNormalization(128)
            self.c3 = Convolution2D(128,
                                    128,
                                    ksize=3,
                                    stride=2,
                                    pad=0,
                                    initialW=Normal(0.02))
            self.bn3 = BatchNormalization(128)
            self.c4 = Convolution2D(128,
                                    256,
                                    ksize=3,
                                    stride=1,
                                    pad=0,
                                    initialW=Normal(0.02))
            self.bn4 = BatchNormalization(256)
            self.c5 = Convolution2D(256,
                                    256,
                                    ksize=3,
                                    stride=2,
                                    pad=0,
                                    initialW=Normal(0.02))
            self.bn5 = BatchNormalization(256)
            self.c6 = Convolution2D(256,
                                    512,
                                    ksize=3,
                                    stride=1,
                                    pad=0,
                                    initialW=Normal(0.02))
            self.bn6 = BatchNormalization(512)
            self.c7 = Convolution2D(512,
                                    512,
                                    ksize=3,
                                    stride=2,
                                    pad=0,
                                    initialW=Normal(0.02))
            self.bn7 = BatchNormalization(512)
            self.linear1 = Linear(in_size=4608, out_size=1024)
            self.linear2 = Linear(in_size=None, out_size=2)
コード例 #26
0
    def __init__(self, density=1, size=64, latent_size=100, channel=3, num_objects=10, num_descriptions=10):
        """
        density - a scaling factor for the number of channels in the convolutional layers. It is multiplied by at least
        16,32,64 and 128 as we go deeper. 
        Use: using density=8 when training the VAE separately. using density=4 when training end to end
        Intent: increase the number of features in the convolutional layers. 
        """
        assert (size % 16 == 0)
        second_size = size / 4
        initial_size = size / 16
        super(Encoder_text_tower, self).__init__(
            # 
            dc1=L.Convolution2D(channel, int(16 * density), 3, stride=2, pad=1,
                                initialW=Normal(0.02)),
                                # can we write comments here
            dc2=L.Convolution2D(int(16 * density), int(32 * density), 3, stride=2, pad=1,

                                initialW=Normal(0.02)),
            # extra layers added to make it deeper with stride = 1
            dc1_=L.Convolution2D(int(16 * density), int(16 * density), 3, stride=1, pad=1,
                                initialW=Normal(0.02)),
            dc2_=L.Convolution2D(int(32 * density), int(32 * density), 3, stride=1, pad=1,
                                initialW=Normal(0.02)),
            norm2=L.BatchNormalization(int(32 * density)),
            norm2_=L.BatchNormalization(int(32 * density)),
            # "plus layer" another extra layer added to make it deeper with stride = 1 but this one has 
            # a skip connection between input and output
            dc2_p=L.Convolution2D(int(32 * density), int(32 * density), 3, stride=1, pad=1,
                                initialW=Normal(0.02)),
            norm2_p=L.BatchNormalization(int(32 * density)),
            dc3=L.Convolution2D(int(32 * density + 7), int(64 * density), 3, stride=2, pad=1,
                                initialW=Normal(0.02)),
            norm3=L.BatchNormalization(int(64 * density)),
            dc3_=L.Convolution2D(int(64 * density), int(64 * density), 3, stride=1, pad=1,
                                initialW=Normal(0.02)),
            norm3_=L.BatchNormalization(int(64 * density)),
            dc3_p=L.Convolution2D(int(64 * density), int(64 * density), 3, stride=1, pad=1,
                                initialW=Normal(0.02)),
            norm3_p=L.BatchNormalization(int(64 * density)),
            dc4=L.Convolution2D(int(64 * density), int(128 * density), 3, stride=2, pad=1,
                                initialW=Normal(0.02)),
            norm4=L.BatchNormalization(int(128 * density)),

            toConv=L.Linear(num_objects + num_descriptions, second_size * second_size * 7, initialW=Normal(0.02)),
            mean=L.Linear(initial_size * initial_size * int(128 * density), latent_size,
                          initialW=Normal(0.02)),
            var=L.Linear(initial_size * initial_size * int(128 * density), latent_size,
                         initialW=Normal(0.02)),
        )
コード例 #27
0
 def __init__(self, density=1, size=64, latent_size=100, channel=3):
     assert (size % 16 == 0)
     initial_size = size / 16
     super(EncoderDeep, self).__init__(
         dc1=L.Convolution2D(channel,
                             16 * density,
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         dc2=L.Convolution2D(16 * density,
                             32 * density,
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm2=L.BatchNormalization(32 * density),
         dc3=L.Convolution2D(32 * density,
                             64 * density,
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm3=L.BatchNormalization(64 * density),
         dc4=L.Convolution2D(64 * density,
                             128 * density,
                             4,
                             stride=2,
                             pad=1,
                             initialW=Normal(0.02)),
         norm4=L.BatchNormalization(128 * density),
         dc1_=L.Convolution2D(16 * density,
                              16 * density,
                              3,
                              stride=1,
                              pad=1,
                              initialW=Normal(0.02)),
         dc2_=L.Convolution2D(32 * density,
                              32 * density,
                              3,
                              stride=1,
                              pad=1,
                              initialW=Normal(0.02)),
         norm2_=L.BatchNormalization(32 * density),
         dc3_=L.Convolution2D(64 * density,
                              64 * density,
                              3,
                              stride=1,
                              pad=1,
                              initialW=Normal(0.02)),
         norm3_=L.BatchNormalization(64 * density),
         dc4_=L.Convolution2D(128 * density,
                              128 * density,
                              3,
                              stride=1,
                              pad=1,
                              initialW=Normal(0.02)),
         norm4_=L.BatchNormalization(128 * density),
         mean=L.Linear(initial_size * initial_size * 128 * density,
                       latent_size,
                       initialW=Normal(0.02)),
         var=L.Linear(initial_size * initial_size * 128 * density,
                      latent_size,
                      initialW=Normal(0.02)),
     )
コード例 #28
0
 def __init__(self, size=64, channel=3):
     super(image2image_fc,
           self).__init__(convertor=L.Linear(size * size * channel,
                                             size * size * channel,
                                             initialW=Normal(0.02)), )