Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
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,