MCPcopy Create free account
hub / github.com/DeepGraphLearning/graphvite / pyGraphSolver

Method pyGraphSolver

include/bind.h:394–512  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

392
393 template<class... Args>
394 pyGraphSolver(py::handle scope, const char *name, const Args &...args) :
395 Base(scope, signature(name, dim, typeid(Float).name(), typeid(Index).name()).c_str(), args...) {
396 attr("__doc__") = "GraphSolver(dim, float_type=dtype.float32, index_type=dtype.uint32, "
397 "device_ids=[], num_sampler_per_worker=auto, gpu_memory_limit=auto)"
398 R"(
399 Graph embedding solver.
400
401 Parameters:
402 dim (int): dimension of embeddings
403 float_type (dtype): type of parameters
404 index_type (dtype): type of node indexes
405 device_ids (list of int, optional): GPU ids, [] for auto
406 num_sampler_per_worker (int, optional): number of sampler thread per GPU
407 gpu_memory_limit (int, optional): memory limit for each GPU in bytes
408 )";
409
410 // override instance name with template name
411 attr("__name__") = py::internal_str(name);
412 attr("__qualname__") = py::internal_str(name);
413
414 // data members
415 def_readonly("num_partition", &GraphSolver::num_partition);
416 def_readonly("num_negative", &GraphSolver::num_negative);
417 def_readonly("optimizer", &GraphSolver::optimizer);
418 def_readonly("negative_sample_exponent", &GraphSolver::negative_sample_exponent);
419 def_readonly("negative_weight", &GraphSolver::negative_weight);
420 def_readonly("model", &GraphSolver::model);
421 def_readonly("num_epoch", &GraphSolver::num_epoch);
422 def_readonly("resume", &GraphSolver::resume);
423 def_readonly("episode_size", &GraphSolver::episode_size);
424 def_readonly("batch_size", &GraphSolver::batch_size);
425 def_readonly("augmentation_step", &GraphSolver::augmentation_step);
426 def_readonly("random_walk_length", &GraphSolver::random_walk_length);
427 def_readonly("random_walk_batch_size", &GraphSolver::random_walk_batch_size);
428 def_readonly("shuffle_base", &GraphSolver::shuffle_base);
429 def_readonly("p", &GraphSolver::p);
430 def_readonly("q", &GraphSolver::q);
431 def_readonly("positive_reuse", &GraphSolver::positive_reuse);
432 def_readonly("log_frequency", &GraphSolver::log_frequency);
433 def_readonly("num_worker", &GraphSolver::num_worker);
434 def_readonly("num_sampler", &GraphSolver::num_sampler);
435 def_readonly("gpu_memory_limit", &GraphSolver::gpu_memory_limit);
436 def_readonly("gpu_memory_cost", &GraphSolver::gpu_memory_cost);
437
438 // numpy views (mutable but unassignable)
439 def_property_readonly("vertex_embeddings", numpy_view(&GraphSolver::vertex_embeddings),
440 "Vertex node embeddings (2D numpy view).");
441 def_property_readonly("context_embeddings", numpy_view(&GraphSolver::context_embeddings),
442 "Context node embeddings (2D numpy view).");
443
444 // member functions
445 def(py::init<std::vector<int>, int, size_t>(), py::no_gil(),
446 py::arg("device_ids") = std::vector<int>(), py::arg("num_sampler_per_worker") = graphvite::kAuto,
447 py::arg("gpu_memory_limit") = graphvite::kAuto);
448
449 def("build", &GraphSolver::build, py::no_gil(),
450 py::arg("graph"), py::arg("optimizer") = graphvite::Optimizer(graphvite::kAuto),
451 py::arg("num_partition") = graphvite::kAuto, py::arg("num_negative") = 1, py::arg("batch_size") = 100000,

Callers

nothing calls this directly

Calls 4

numpy_viewFunction · 0.85
signatureFunction · 0.70
OptimizerClass · 0.50
nameMethod · 0.45

Tested by

no test coverage detected