예제 #1
0
파일: models.py 프로젝트: Dutil/IFT6266
        def val_fn(imgs, target, caps):

            # We only keep the first caps for now
            caps = [cap[0] for cap in caps]
            caps = text_utils.pad_to_the_max(caps)

            res = self.val_fn(caps, target)
            return res
예제 #2
0
파일: models.py 프로젝트: Dutil/IFT6266
    def train(self, imgs, target, caps):

        #We only keep the first caps for now
        caps = [cap[np.random.choice(len(cap))] for cap in caps]
        caps = text_utils.pad_to_the_max(caps)

        res = self.train_fn(caps, target)
        return res
예제 #3
0
파일: GAN.py 프로젝트: Dutil/IFT6266
        def val_fn(imgs, target, caps):
            caps = [cap[np.random.choice(len(cap))] for cap in caps]
            caps = text_utils.pad_to_the_max(caps)

            noise_size = self.options['noise_size']
            noise = np.random.normal(size=(len(imgs), noise_size))
            imgs = utils.put_in_middle(np.array(imgs), 0.5)

            res = self.generate_sample_fn(caps, imgs, noise)
            return 0, res[0]
예제 #4
0
파일: GAN.py 프로젝트: Dutil/IFT6266
    def train(self, imgs, target, caps):


        caps = [cap[np.random.choice(len(cap))] for cap in caps]
        caps = text_utils.pad_to_the_max(caps)


        [disc_loss] = self.train_discriminator_fn(caps, target)
        gen_loss = self.train_generator_fn(caps, target)

        return disc_loss, gen_loss
예제 #5
0
파일: GAN.py 프로젝트: Dutil/IFT6266
    def train(self, imgs, target, caps):

        noise_size = self.options['noise_size']
        noise = np.random.normal(size=(len(imgs), noise_size))


        caps = [cap[np.random.choice(len(cap))] for cap in caps]
        caps = text_utils.pad_to_the_max(caps)

        imgs = utils.put_in_middle(np.array(imgs), 0.5)


        [disc_loss] = self.train_discriminator_fn(caps, imgs, noise,  target)
        gen_loss = self.train_generator_fn(caps, imgs, noise, target)

        return disc_loss, gen_loss
예제 #6
0
    def train(self, imgs, target, caps):  # imgs = bagel, target = tim-bit, caps = captions     


        caps = [cap[np.random.choice(len(cap))] for cap in caps]
        caps = text_utils.pad_to_the_max(caps)


        [disc_loss] = self.train_discriminator_fn(caps, target) # inherited from class->GAN i.e captions , 
        gen_loss = self.train_generator_fn(caps, target) # inherited from class->GAN

        use_wgan = self.options['use_wgan']
        if use_wgan:
            discriminator_params_values = lasagne.layers.get_all_param_values(self.discriminator, trainable=True)
            clamped_weights = [np.clip(w, -0.05, 0.05) for w in discriminator_params_values]
            lasagne.layers.set_all_param_values(self.discriminator, clamped_weights, trainable=True)

        return disc_loss, gen_loss
예제 #7
0
        def val_fn(imgs, target, caps):
            caps = [cap[np.random.choice(len(cap))] for cap in caps]
            caps = text_utils.pad_to_the_max(caps)

            res = self.generate_sample_fn(caps)
            return 0, res[0]