Ejemplo n.º 1
0
num_train = len(dataset_train)
indices = list(range(num_train))
split = int(np.floor(args.valid_size * num_train))
train_idx, valid_idx = indices[split:], indices[:split]
valid_sampler = SubsetRandomSampler(valid_idx)

valid_loader = torch.utils.data.DataLoader(dataset_valid,
                                           batch_size=args.batch_size,
                                           num_workers=args.num_worker,
                                           sampler=valid_sampler,
                                           pin_memory=True)

controller = Controller().to(device)
child = Child().to(device)
controller.load_state_dict(torch.load('./save_model/controller.pt'))
child.load_state_dict(torch.load('./save_model/child.pt'))

best_reward = 0
for i in range(10):
    controller.init_hidden(batch_size=1)
    outputs = controller.sample_child()
    normal_arc, reduction_arc, _, _ = outputs

    for batch_idx, (inputs, targets) in enumerate(valid_loader):
        outputs = controller.sample_child()
        normal_arc, reduction_arc, entropy_seq, log_prob_seq = outputs
        correct = 0
        total = 0

        # 1. get reward using a single mini-batch of validation data
        inputs = inputs.to(device)