PyNeuraLogic is a framework built on top of NeuraLogic which combines relational and deep learning.
Supported backends (WIP):
To use PyNeuraLogic, you need to have installed the following prerequisites.
Python >= 3.7 Java 1.8
To install PyNeuraLogic's latest release from the PyPI repository, use the following command.
$ pip install neuralogic
How to use
None of the following backends are included in PyNeuraLogic's installation. You have to install the ones that you are planning to utilize manually.
With PyTorch Geometric
import dynet as dy from neuralogic import data from neuralogic.dynet import NeuraLogicLayer dataset = data.XOR # Use one of the default datasets in the project in the/datasets/ folder layer = NeuraLogicLayer(dataset.weights) # Create an instance of NeuraLogicLayer with weights from the dataset trainer = dy.AdamTrainer(layer.model, alpha=0.001) for sample in dataset.samples: # Learn on each sample dy.renew_cg(immediate_compute=False, check_validity=False) label = dy.scalarInput(sample.target) graph_output = layer.build_sample(sample) loss = dy.squared_distance(graph_output, label) loss.forward() loss.backward() trainer.update()