Metadata-Version: 2.1
Name: neuralogic
Version: 0.0.2
Summary: PyNeuraLogic is a framework which combines relational and deep learning.
Home-page: https://github.com/LukasZahradnik/PyNeuraLogic
Author: Lukáš Zahradník
Author-email: lukaszahradnik96@seznam.cz
License: MIT
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.7.0
Description-Content-Type: text/markdown
Requires-Dist: py4j
Requires-Dist: antlr4-python3-runtime


# PyNeuraLogic

[![PyPI version](https://badge.fury.io/py/neuralogic.svg)](https://badge.fury.io/py/neuralogic)
[![License](https://img.shields.io/pypi/l/neuralogic)](https://badge.fury.io/py/neuralogic)



[Documentation](https://pyneuralogic.readthedocs.io/en/latest/) | [Examples](#examples) | [Papers](https://github.com/GustikS/NeuraLogic#papers)

PyNeuraLogic is a framework built on top of [NeuraLogic](https://github.com/GustikS/NeuraLogic) which combines relational and deep learning.

---

### General



##### Supported backends (WIP):
- [PyTorch Geometric (PyG)](https://github.com/rusty1s/pytorch_geometric)
- [DyNet](https://github.com/clab/dynet)
- [Deep Graph Library (DGL)](https://github.com/dmlc/dgl)

### Getting started

### Prerequisites

To use PyNeuraLogic, you need to have installed the following prerequisites.

```
Python >= 3.7
Java 1.8
```

### Installation

To install PyNeuraLogic's latest release from the PyPI repository, use the following command.

```commandline
$ 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

```python

```

#### With DyNet

```python
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()
```

#### With Deep Graph Library

```python

```

### Development

```commandline

```


