def main(controller, cosine_annealing_scheduler): running_reward = 0 child = Child(dropout_rate=float(args.dropout), use_auxiliary=args.use_auxiliary).to(device) child_optimizer = optim.SGD(child.parameters(), lr=0.05, momentum=0.9, weight_decay=1e-4, nesterov=True) cosine_lr_scheduler = cosine_annealing_scheduler(child_optimizer, lr=0.05) for epoch in range(150): cosine_lr_scheduler.step() child = train_child(epoch, controller, child, child_optimizer) torch.save(child.state_dict(), './save_model/child.pth') torch.save(controller.state_dict(), './save_model/controller.pth') if epoch < 150 - 1: controller_model, running_reward = train_controller( controller, child, running_reward) final_model = model final_acc = test_final_model(final_model) print('training is done. Final accuarcy is ', final_acc)
print('==> Making model..') net = shake_shake() net = net.to(device) if args.resume is not None: checkpoint = torch.load('./save_model/' + args.resume) net.load_state_dict(checkpoint['net']) optimizer = optim.SGD(net.parameters(), lr=args.lr, momentum=0.9, weight_decay=1e-4) cosine_lr_scheduler = cosine_annealing_scheduler(optimizer, args.epochs, args.lr) # writer = SummaryWriter(args.logdir) def train(epoch): net.train() train_loss = 0 correct = 0 total = 0 for batch_idx, (inputs, targets) in enumerate(train_loader): inputs = inputs.to(device) targets = targets.to(device) outputs = net(inputs) loss = criterion(outputs, targets)
classes = ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck') print('==> Making model..') criterion = nn.CrossEntropyLoss() normal_arc = best_reward_arc[0] reduction_arc = best_reward_arc[1] child = Child().to(device) child_optimizer = optim.SGD(child.parameters(), lr=0.05, momentum=0.9, weight_decay=1e-4, nesterov=True) cosine_lr_scheduler = cosine_annealing_scheduler(child_optimizer, lr=0.05) best_acc = 0 for epoch in range(300): child.train() cosine_lr_scheduler.step() train_loss = 0 correct = 0 total = 0 for batch_idx, (inputs, targets) in enumerate(train_loader): inputs = inputs.to(device) targets = targets.to(device) outputs, aux_outs = child(inputs, normal_arc, reduction_arc) loss = criterion(outputs, targets) if args.use_auxiliary: