Example #1
0
 def train_dataloader(self):
     dataset = TrainDataset(self.train_df, self.data_dir,
                            self.train_transforms)
     loader = DataLoader(dataset,
                         batch_size=BATCH_SIZE,
                         num_workers=12,
                         shuffle=True)
     return loader
Example #2
0
    def fit(self):
        cfg = self.cfg
        self.refiner.zero_grad()
        self.refiner.train()
        self.train_loader = TrainDataset(cfg.train_data_path,
                                         size=cfg.patch_size,
                                         scale=cfg.scale,
                                         batch_size=cfg.batch_size)

        while True:
            self.train_loader.resample()
            inputs = self.train_loader[0]

            hr = customTransform(inputs, 0)
            lr = customTransform(inputs, 1)

            del inputs

            if 1:
                sr = self.refiner(lr)
                l1loss = self.loss_fn(sr, hr) / cfg.update_every
                loss = l1loss
                loss.backward()

                if self.step % cfg.update_every == 0:
                    nn.utils.clip_grad_norm_(self.refiner.parameters(),
                                             cfg.clip)
                    self.optim.step()
                    self.refiner.zero_grad()
                    self.epoch += 1
                    learning_rate = self.decay_learning_rate()
                    for param_group in self.optim.param_groups:
                        param_group["lr"] = learning_rate

            if 1:
                cv2.imshow('sr', deTransform(sr[:1]))
                cv2.imshow('hr', deTransform(hr[:1]))
                cv2.waitKey(1)
                self.step += 1
                if cfg.verbose and self.step % (cfg.update_every * 10) == 0:
                    print('epoch', self.epoch, 'l1_loss', l1loss.item())
                    if cfg.verbose and self.step % (cfg.update_every *
                                                    100) == 0:
                        self.save()
Example #3
0

makedirs_(opt.outf)

if opt.manualSeed is None:
    opt.manualSeed = random.randint(1, 10000)
print("Random Seed: ", opt.manualSeed)
random.seed(opt.manualSeed)
torch.manual_seed(opt.manualSeed)
if opt.cuda:
    torch.cuda.manual_seed_all(opt.manualSeed)

cudnn.benchmark = True

###########   DATASET   ###########
train_dataset = TrainDataset(opt.data_path, opt.size_w, opt.size_h)
train_loader = torch.utils.data.DataLoader(dataset=train_dataset,
                                           batch_size=opt.batch_size,
                                           shuffle=True,
                                           num_workers=6)


###########   MODEL   ###########
# custom weights initialization called on netG and netD
def weights_init(m):
    classname = m.__class__.__name__
    if classname.find('Conv') != -1:
        m.weight.data.normal_(0.0, 0.02)
        m.bias.data.fill_(0)
    elif classname.find('BatchNorm') != -1:
        m.weight.data.normal_(1.0, 0.02)
Example #4
0
 def val_dataloader(self):
     dataset = TrainDataset(self.valid_df, self.data_dir, self.valid_transforms)
     loader = DataLoader(dataset, batch_size=BATCH_SIZE, num_workers=12)
     return loader
Example #5
0
    train_cate1 = [cate[0] for cate in train_cate]
    train_cate2 = [cate[1] for cate in train_cate]
    train_cate3 = [cate[2] for cate in train_cate]

    train_title = padding(train_title, max(train_t_len))
    train_desc = padding(train_desc, max(train_d_len))

    train_t_len = torch.tensor(train_t_len)
    train_d_len = torch.tensor(train_d_len)

    train_cate1 = torch.tensor(train_cate1)
    train_cate2 = torch.tensor(train_cate2)
    train_cate3 = torch.tensor(train_cate3)

    train_set = TrainDataset(train_title, train_desc,
                          train_cate1, train_cate2, train_cate3,
                          train_t_len, train_d_len)
    train_loader = data.DataLoader(train_set, batch_size=args.batch_size, shuffle=True, num_workers=4)

    with open(valid_feature_path, 'rb') as fp:
        valid_features = pickle.load(fp)
    valid_title = [feature[0] for feature in valid_features]
    valid_desc = [feature[1] for feature in valid_features]
    valid_t_len = [len(feature[0]) for feature in valid_features]
    valid_d_len = [len(feature[1]) for feature in valid_features]

    with open(valid_cate_path, 'rb') as fp:
        valid_cate = pickle.load(fp)
    valid_cate1 = [cate[0] for cate in valid_cate]
    valid_cate2 = [cate[1] for cate in valid_cate]
    valid_cate3 = [cate[2] for cate in valid_cate]
Example #6
0
    with open(valid_cate_path, 'rb') as fp:
        cate = pickle.load(fp)
    cate1 = [ca[0] for ca in cate]
    cate2 = [ca[1] for ca in cate]
    cate3 = [ca[2] for ca in cate]

    title = padding(title, max(t_len))
    desc = padding(desc, max(d_len))
    t_len = torch.tensor(t_len)
    d_len = torch.tensor(d_len)

    cate1 = torch.tensor(cate1)
    cate2 = torch.tensor(cate2)
    cate3 = torch.tensor(cate3)

    valid_set = TrainDataset(title, desc, cate1, cate2, cate3, t_len, d_len)
    valid_loader = data.DataLoader(valid_set,
                                   batch_size=args.batch_size,
                                   num_workers=4)

    clf1_state = torch.load(os.path.join('checkpoint', 'glu_w_cate1.pth'))
    clf1 = Cate1Classifier(WORDS_CNT + 1, clf1_state['args'])
    clf1.load_state_dict(clf1_state['model'])

    with open('./preproc/mask.pkl', 'rb') as fp:
        mask1, mask2 = pickle.load(fp)

    clf2_state = torch.load(os.path.join('checkpoint', 'glu_w_cate2.pth'))
    clf2 = Cate2Classifier(WORDS_CNT + 1, clf2_state['args'], mask1=mask1)
    clf2.load_state_dict(clf2_state['model'])