import networkx as nx
import gravlearn as gn
import torch
# Load data
G = nx.karate_club_graph()
A = nx.adjacency_matrix(G)
labels = [G.nodes[i]["club"] for i in G.nodes]
# Generate the sequence for demo
sampler = gn.RandomWalkSampler(A, walk_length=40, p=1, q=1)
walks = [sampler.sampling(i) for _ in range(10) for i in range(A.shape[0])]
# Training
model = gravlearn.Word2Vec(A.shape[0], 32) # Embedding based on set
dist_metric = gravlearn.DistanceMetrics.EUCLIDEAN
model = gravlearn.train(model, walks, device = device, bags =A ,window_length=5, dist_metric=dist_metric)
# Embedding
emb = model.forward(torch.arange(A.shape[0]))
-
Notifications
You must be signed in to change notification settings - Fork 1
skojaku/gravlearn
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
Learning metric space using gravity-aware neural embeddings
Resources
Stars
Watchers
Forks
Packages 0
No packages published