graphvite.solver¶
Solver module of GraphVite
-
class
graphvite.solver.
GraphSolver
(dim, float_type=dtype.float32, index_type=dtype.uint32, device_ids=[], num_sampler_per_worker=auto, gpu_memory_limit=auto)¶ Graph embedding solver.
- Parameters
dim (int) – dimension of embeddings
float_type (dtype) – type of parameters
index_type (dtype) – type of node indexes
device_ids (list of int, optional) – GPU ids, [] for auto
num_sampler_per_worker (int, optional) – number of sampler thread per GPU
gpu_memory_limit (int, optional) – memory limit for each GPU in bytes
- Instantiations:
dim: 32, 64, 96, 128, 256, 512
float_type: dtype.float32
index_type: dtype.uint32
-
build
(graph, optimizer=auto, num_partition=auto, num_negative=1, batch_size=100000, episode_size=auto)¶ Determine and allocate all resources for the solver.
- Parameters
graph (Graph) – graph
optimizer (Optimizer or float, optional) – optimizer or learning rate
num_partition (int, optional) – number of partitions
num_negative (int, optional) – number of negative samples per positive sample
batch_size (int, optional) – batch size of samples in CPU-GPU transfer
episode_size (int, optional) – number of batches in a partition block
-
clear
()¶ Free CPU and GPU memory, except the embeddings on CPU.
-
predict
(samples)¶ Predict logits for samples.
- Parameters
samples (ndarray) – triplets with shape (?, 2), each triplet is ordered as (v, c)
-
train
(model='LINE', num_epoch=2000, resume=False, augmentation_step=auto, random_walk_length=40, random_walk_batch_size=100, shuffle_base=auto, p=1, q=1, positive_reuse=1, negative_sample_exponent=0.75, negative_weight=5, log_frequency=1000)¶ Train node embeddings.
- Parameters
model (str, optional) – ‘DeepWalk’, ‘LINE’ or ‘node2vec’
num_epoch (int, optional) – number of epochs, i.e. #positive edges / |E|
resume (bool, optional) – resume training from learned embeddings or not
augmentation_step (int, optional) – node pairs with distance <= augmentation_step are considered as positive samples
random_walk_length (int, optional) – length of each random walk
random_walk_batch_size (int, optional) – batch size of random walks in samplers
shuffle_base (int, optional) – base for pseudo shuffle
p (float, optional) – return parameter (for node2vec)
q (float, optional) – in-out parameter (for node2vec)
positive_reuse (int, optional) – times of reusing positive samples
negative_sample_exponent (float, optional) – exponent of degrees in negative sampling
negative_weight (float, optional) – weight for each negative sample
log_frequency (int, optional) – log every log_frequency batches
-
property
context_embeddings
¶ Context node embeddings (2D numpy view).
-
property
vertex_embeddings
¶ Vertex node embeddings (2D numpy view).
-
class
graphvite.solver.
KnowledgeGraphSolver
(dim, float_type=dtype.float32, index_type=dtype.uint32, device_ids=[], num_sampler_per_worker=auto, gpu_memory_limit=auto)¶ Knowledge graph embedding solver.
- Parameters
dim (int) – dimension of embeddings
float_type (dtype) – type of parameters
index_type (dtype) – type of node indexes
device_ids (list of int, optional) – GPU ids, [] for auto
num_sampler_per_worker (int, optional) – number of sampler thread per GPU
gpu_memory_limit (int, optional) – memory limit for each GPU in bytes
- Instantiations:
dim: 32, 64, 96, 128, 256, 512, 1024, 2048
float_type: dtype.float32
index_type: dtype.uint32
-
build
(graph, optimizer=auto, num_partition=auto, num_negative=64, batch_size=100000, episode_size=auto)¶ Determine and allocate all resources for the solver.
- Parameters
graph (KnowledgeGraph) – knowledge graph
optimizer (Optimizer or float, optional) – optimizer or learning rate
num_partition (int, optional) – number of partitions
num_negative (int, optional) – number of negative samples per positive sample
batch_size (int, optional) – batch size of samples in CPU-GPU transfer
episode_size (int, optional) – number of batches in a partition block
-
clear
()¶ Free CPU and GPU memory, except the embeddings on CPU.
-
predict
(samples)¶ Predict logits for samples.
- Parameters
samples (ndarray) – triplets with shape (?, 3), each triplet is ordered as (h, t, r)
-
train
(model='RotatE', num_epoch=2000, resume=False, relation_lr_multiplier=1, margin=12, l3_regularization=2e-3, sample_batch_size=2000, positive_reuse=1, adversarial_temperature=2, log_frequency=100)¶ Train knowledge graph embeddings.
- Parameters
model (str, optional) – ‘TransE’, ‘DistMult’, ‘ComplEx’, ‘SimplE’, ‘RotatE’ or ‘QuatE’
num_epoch (int, optional) – number of epochs, i.e. #positive edges / |E|
resume (bool, optional) – resume training from learned embeddings or not
relation_lr_multiplier (float, optional) – learning rate multiplier for relation embeddings
margin (float, optional) – logit margin (for TransE & RotatE)
l3_regularization (float, optional) – L3 regularization (for DistMult, ComplEx, SimplE & QuatE)
sample_batch_size (int, optional) – batch size of samples in samplers
positive_reuse (int, optional) – times of reusing positive samples
adversarial_temperature (float, optional) – temperature of self-adversarial negative sampling, disabled when set to non-positive value
log_frequency (int, optional) – log every log_frequency batches
-
property
entity_embeddings
¶ Entity embeddings (2D numpy view).
-
property
relation_embeddings
¶ Relation embeddings (2D numpy view).
-
class
graphvite.solver.
VisualizationSolver
(dim, float_type=dtype.float32, index_type=dtype.uint32, device_ids=[], num_sampler_per_worker=auto, gpu_memory_limit=auto)¶ Visualization solver.
- Parameters
dim (int) – dimension of embeddings
float_type (dtype) – type of parameters
index_type (dtype) – type of node indexes
device_ids (list of int, optional) – GPU ids, [] for auto
num_sampler_per_worker (int, optional) – number of sampler thread per GPU
gpu_memory_limit (int, optional) – memory limit for each GPU in bytes
- Instantiations:
dim: 2, 3
float_type: dtype.float32
index_type: dtype.uint32
-
build
(graph, optimizer=auto, num_partition=auto, num_negative=5, batch_size=100000, episode_size=auto)¶ Determine and allocate all resources for the solver.
- Parameters
graph (KNNGraph) – KNNGraph
optimizer (Optimizer or float, optional) – optimizer or learning rate
num_partition (int, optional) – number of partitions
num_negative (int, optional) – number of negative samples per positive sample
batch_size (int, optional) – batch size of samples in CPU-GPU transfer
episode_size (int, optional) – number of batches in a partition block
-
clear
()¶ Free CPU and GPU memory, except the embeddings on CPU.
-
train
(model='LargeVis', num_epoch=100, resume=False, sample_batch_size=2000, positive_reuse=1, negative_sample_exponent=0.75, negative_weight=3, log_frequency=1000)¶ Train visualization.
- Parameters
model (str, optional) – ‘LargeVis’
num_epoch (int, optional) – number of epochs, i.e. #positive edges / |E|
resume (bool, optional) – resume training from learned embeddings or not
sample_batch_size (int, optional) – batch size of samples in samplers
positive_reuse (int, optional) – times of reusing positive samples
negative_sample_exponent (float, optional) – exponent of degrees in negative sampling
negative_weight (float, optional) – weight for each negative sample
log_frequency (int, optional) – log every log_frequency batches
-
property
coordinates
¶ Low-dimensional coordinates (2D numpy view).