def main(): if len(sys.argv) > 1: name = ' '.join(sys.argv[1:]) else: from datetime import datetime name = datetime.now().strftime("%Y-%m-%d_%H:%M:%S") target_name = os.path.join('logs', '{}.pth'.format(name)) print('will save to {}'.format(target_name)) cudnn.benchmark = True train_loader = data.get_loader(train=True) val_loader = data.get_loader(val=True) net = nn.DataParallel(model.Net(train_loader.dataset.num_tokens)).cuda() optimizer = optim.Adam([p for p in net.parameters() if p.requires_grad]) net_var = nn.DataParallel(model.Uncertainty(config.max_answers)).cuda() optimizer_var = optim.SGD( [p for p in net_var.parameters() if p.requires_grad], lr=0.0002) tracker = utils.Tracker() ckp = torch.load('logs/2019-03-19_22:49:23.pth_9.pth') net.load_state_dict(ckp['weights']) net_var.load_state_dict(ckp['weights_var']) run(net, net_var, val_loader, optimizer, optimizer_var, tracker, train=False, prefix='val')
def main(): if len(sys.argv) > 1: name = ' '.join(sys.argv[1:]) else: from datetime import datetime name = datetime.now().strftime("%Y-%m-%d_%H:%M:%S") target_name = os.path.join('logs', '{}'.format(name)) print('will save to {}'.format(target_name)) cudnn.benchmark = True train_loader = data.get_loader(train=True) val_loader = data.get_loader(val=True) net = nn.DataParallel(model.Net(train_loader.dataset.num_tokens)).cuda() optimizer = optim.Adam([p for p in net.parameters() if p.requires_grad]) tracker = utils.Tracker() config_as_dict = {k: v for k, v in vars(config).items() if not k.startswith('__')} net_dis = nn.DataParallel(model.Net_Discriminitor(196)).cuda() optimizer_dis = optim.Adam([p for p in net_dis.parameters() if p.requires_grad],lr = 0.0002, betas = (0.5, 0.999)) # Uncomment the following lines while evaluating or want to start by loading checkpoint # ---------------------------------------- ckp = torch.load('logs/2018-10-28_12:47:45_180.pth') name = ckp['name'] # tracker = ckp['tracker'] config_as_dict = ckp['config'] net.load_state_dict(ckp['weights']) net_dis.load_state_dict(ckp['weights_grad']) train_loader.dataset.vocab = ckp['vocab'] # ---------------------------------------- for i in range(0, config.epochs): _ = run(net,net_dis, train_loader, optimizer,optimizer_dis, tracker, train=True, prefix='train', epoch=i) r = run(net,net_dis, val_loader, optimizer, optimizer_dis,tracker, train=False, prefix='val', epoch=i) results = { 'name': name, 'tracker': tracker.to_dict(), 'config': config_as_dict, 'weights': net.state_dict(), 'weights_grad': net_dis.state_dict(), 'eval': { 'answers': r[0], 'accuracies': r[1], 'idx': r[2], }, 'vocab': train_loader.dataset.vocab, } torch.save(results, target_name+"_"+str(i)+".pth")