return loss_val.data.item() # Train model t_total = time.time() loss_values = [] bad_counter = 0 best = np.inf best_epoch = 0 for epoch in range(args.epochs): loss_values.append(train(epoch)) if loss_values[-1] < best: if args.cuda: model.cpu() torch.save( model.state_dict(), '{}_{}_{}.pkl'.format(model._get_name(), args.dataset, epoch)) if args.cuda: model.cuda() best = loss_values[-1] best_epoch = epoch bad_counter = 0 else: bad_counter += 1 if bad_counter == args.patience: print("Patience {0} exceeded. Best in last {0} epochs is {1:.4f}.". format(args.patience, best)) break
adj, ori_labels = Variable(adj), Variable(ori_labels) features = Variable(features) labels = Variable(labels) if args.cuda: model = model.cuda() features = features.cuda() adj = adj.cuda() labels = labels.cuda() idx_train = idx_train.cuda() idx_val = idx_val.cuda() idx_test = idx_test.cuda() criterion = criterion.cuda() ori_labels = ori_labels.cuda() else: model = model.cpu() features = features.cpu() adj = adj.cpu() labels = labels.cpu() idx_train = idx_train.cpu() idx_val = idx_val.cpu() idx_test = idx_test.cpu() criterion = criterion.cpu() ori_labels = ori_labels.cpu() writer = SummaryWriter( comment='ori_0.1_hidden_{}_lr_{}_#batch_{}_SampleSize_{}_testBatchSize_{}'. format(args.hidden, args.lr, args.batchSize, args.sampleSize, args.testBatchSize)) train_batches = iterate_return(idx_train, args.sampleSize, labels, adj,