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

Class pyKnowledgeGraphSolver

include/bind.h:516–639  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

514
515template<size_t dim, class Float = float, class Index = size_t>
516class pyKnowledgeGraphSolver : public py::class_<graphvite::KnowledgeGraphSolver<dim, Float, Index>> {
517public:
518 typedef graphvite::KnowledgeGraphSolver<dim, Float, Index> KnowledgeGraphSolver;
519 typedef py::class_<KnowledgeGraphSolver> Base;
520 using Base::attr;
521 using Base::def;
522 using Base::def_readonly;
523 using Base::def_property_readonly;
524
525 template<class... Args>
526 pyKnowledgeGraphSolver(py::handle scope, const char *name, const Args &...args) :
527 Base(scope, signature(name, dim, typeid(Float).name(), typeid(Index).name()).c_str(), args...) {
528 attr("__doc__") = "KnowledgeGraphSolver(dim, float_type=dtype.float32, index_type=dtype.uint32, "
529 "device_ids=[], num_sampler_per_worker=auto, gpu_memory_limit=auto)"
530 R"(
531 Knowledge graph embedding solver.
532
533 Parameters:
534 dim (int): dimension of embeddings
535 float_type (dtype): type of parameters
536 index_type (dtype): type of node indexes
537 device_ids (list of int, optional): GPU ids, [] for auto
538 num_sampler_per_worker (int, optional): number of sampler thread per GPU
539 gpu_memory_limit (int, optional): memory limit for each GPU in bytes
540 )";
541
542 // override instance name with template name
543 attr("__name__") = py::internal_str(name);
544 attr("__qualname__") = py::internal_str(name);
545
546 // data members
547 def_readonly("num_partition", &KnowledgeGraphSolver::num_partition);
548 def_readonly("num_negative", &KnowledgeGraphSolver::num_negative);
549 def_readonly("sample_batch_size", &KnowledgeGraphSolver::sample_batch_size);
550 def_readonly("optimizer", &KnowledgeGraphSolver::optimizer);
551 def_readonly("negative_sample_exponent", &KnowledgeGraphSolver::negative_sample_exponent);
552 def_readonly("model", &KnowledgeGraphSolver::model);
553 def_readonly("num_epoch", &KnowledgeGraphSolver::num_epoch);
554 def_readonly("resume", &KnowledgeGraphSolver::resume);
555 def_readonly("relation_lr_multiplier", &KnowledgeGraphSolver::relation_lr_multiplier);
556 def_readonly("episode_size", &KnowledgeGraphSolver::episode_size);
557 def_readonly("batch_size", &KnowledgeGraphSolver::batch_size);
558 def_readonly("margin", &KnowledgeGraphSolver::margin);
559 def_readonly("l3_regularization", &KnowledgeGraphSolver::l3_regularization);
560 def_readonly("adversarial_temperature", &KnowledgeGraphSolver::adversarial_temperature);
561 def_readonly("positive_reuse", &KnowledgeGraphSolver::positive_reuse);
562 def_readonly("log_frequency", &KnowledgeGraphSolver::log_frequency);
563 def_readonly("num_worker", &KnowledgeGraphSolver::num_worker);
564 def_readonly("num_sampler", &KnowledgeGraphSolver::num_sampler);
565 def_readonly("gpu_memory_limit", &KnowledgeGraphSolver::gpu_memory_limit);
566 def_readonly("gpu_memory_cost", &KnowledgeGraphSolver::gpu_memory_cost);
567
568 // numpy views (mutable but unassignable)
569 def_property_readonly("entity_embeddings", numpy_view(&KnowledgeGraphSolver::entity_embeddings),
570 "Entity embeddings (2D numpy view).");
571 def_property_readonly("relation_embeddings", numpy_view(&KnowledgeGraphSolver::relation_embeddings),
572 "Relation embeddings (2D numpy view).");
573

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected