Example #1
0
                    
# Optimisation
parser.add_argument('--cuda', dest="cuda", action="store_true", default=False,
                    help="Optimize on GPU (nvidia only)")
parser.add_argument('--num-threads', dest="num_threads", type=int, default=1,
                    help="Number of threads for pytorch dataloader (can fail on windows)")
args = parser.parse_args()

torch.set_default_tensor_type(torch.DoubleTensor)

if(args.verbose):
    print("Loading Corpus ")
X, Y = data_loader.load_corpus(args.dataset, directed=False)

dataset_l1 = corpora.NeigbhorFlatCorpus(X, Y)
dataset_l2 = corpora.RandomContextSizeFlat(X, Y, precompute=args.walk_by_node, 
                path_len=args.walk_lenght, context_size=args.context_size)
dataset_l3 = corpora_tools.from_indexable(torch.arange(0, len(X), 1).unsqueeze(-1))

dataloader_l1 = DataLoader(dataset_l1, 
                            batch_size=args.batch_size, 
                            shuffle=True,
                            drop_last=False,
                            num_workers= args.num_threads if(args.num_threads > 1) else 0
                    )

def collate_fn_simple(tensor_list):
    v =  torch.cat(tensor_list, 0)
    return v[:,0], v[:,1]

dataloader_l2 = DataLoader(dataset_l2, batch_size=args.batch_size, shuffle=True, collate_fn=collate_fn_simple,
                            num_workers= args.num_threads if(args.num_threads > 1) else 0)
import torch
import os
from torch import nn
from torch.utils.data import DataLoader

from rcome.manifold.poincare_ball import PoincareBallApproximation, PoincareBallExact
from rcome.optim_tools import rsgd
from rcome.data_tools import data_loader, corpora
from rcome.embedding_tools.losses import graph_embedding_criterion

from rcome.visualisation_tools.plot_tools import plot_poincare_disc_embeddings

X, Y = data_loader.load_corpus("LFR1", directed=False)
dataset = corpora.RandomContextSizeFlat(X,
                                        Y,
                                        precompute=2,
                                        path_len=10,
                                        context_size=3)


def collate_fn_simple(my_list):
    v = torch.cat(my_list, 0)
    return v[:, 0], v[:, 1]


dataloader = DataLoader(dataset,
                        batch_size=5,
                        shuffle=True,
                        collate_fn=collate_fn_simple)

model = nn.Embedding(len(X), 2, max_norm=0.999)