Skip to content

Commit

Permalink
Update README.md: juice-jl -> tractables
Browse files Browse the repository at this point in the history
  • Loading branch information
liuanji authored Mar 6, 2024
1 parent 7300039 commit db5001a
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

<img align="right" width="160px" src="https://avatars.githubusercontent.com/u/58918144?s=200&v=4">

[![CUDA CI Tests](https://github.com/Juice-jl/pyjuice/actions/workflows/ci_tests.yml/badge.svg?branch=main)](https://github.com/Juice-jl/pyjuice/actions/workflows/ci_tests.yml)
[![codecov](https://codecov.io/gh/Juice-jl/pyjuice/branch/main/graph/badge.svg?token=XpgPLYa2RQ)](https://codecov.io/gh/Juice-jl/pyjuice)
[![CUDA CI Tests](https://github.com/Tractables/pyjuice/actions/workflows/ci_tests.yml/badge.svg?branch=main)](https://github.com/Tractables/pyjuice/actions/workflows/ci_tests.yml)
[![codecov](https://codecov.io/gh/Tractables/pyjuice/branch/main/graph/badge.svg?token=XpgPLYa2RQ)](https://codecov.io/gh/Tractables/pyjuice)

PyJuice is a library for [Probabilistic Circuits](https://starai.cs.ucla.edu/papers/ProbCirc20.pdf) (PCs) written in [PyTorch](https://github.com/pytorch/pytorch). It has code for inference (e.g., marginals, sampling) and learning (e.g., EM, pruning) in PCs, which can be either [defined by hand](https://github.com/Juice-jl/pyjuice#example-usage-define-your-own-pc) or generated directly [from pre-specified structures](https://github.com/Juice-jl/pyjuice#example-usage-pre-specified-structures) (e.g., [PD](https://arxiv.org/pdf/1202.3732.pdf), [RAT-SPN](https://proceedings.mlr.press/v115/peharz20a/peharz20a.pdf), [HCLT](https://proceedings.neurips.cc/paper_files/paper/2021/file/1d0832c4969f6a4cc8e8a8fffe083efb-Paper.pdf)).
PyJuice is a library for [Probabilistic Circuits](https://starai.cs.ucla.edu/papers/ProbCirc20.pdf) (PCs) written in [PyTorch](https://github.com/pytorch/pytorch). It has code for inference (e.g., marginals, sampling) and learning (e.g., EM, pruning) in PCs, which can be either [defined by hand](https://github.com/Tractables/pyjuice#example-usage-define-your-own-pc) or generated directly [from pre-specified structures](https://github.com/Tractables/pyjuice#example-usage-pre-specified-structures) (e.g., [PD](https://arxiv.org/pdf/1202.3732.pdf), [RAT-SPN](https://proceedings.mlr.press/v115/peharz20a/peharz20a.pdf), [HCLT](https://proceedings.neurips.cc/paper_files/paper/2021/file/1d0832c4969f6a4cc8e8a8fffe083efb-Paper.pdf)).

## Why PyJuice?

The biggest advantage of PyJuice is its speed and scalability. We benchmark PyJuice against prior PC packages [SPFlow](https://github.com/SPFlow/SPFlow), [EiNet](https://github.com/cambridge-mlg/EinsumNetworks), and [Juice.jl](https://github.com/Juice-jl/ProbabilisticCircuits.jl) on the [PD](https://arxiv.org/pdf/1202.3732.pdf) and [HCLT](https://proceedings.neurips.cc/paper_files/paper/2021/file/1d0832c4969f6a4cc8e8a8fffe083efb-Paper.pdf) structures with various sizes by variating their width. We report the average ($\pm$ standard deviation of 5 runs) runtime (in seconds) per training epoch of 60K samples. All experiments were carried out on an RTX 4090 GPU with 24GB memory. To maximize parallelism, we always use the maximum possible batch size. "OOM" denotes out-of-memory with batch size 2.
The biggest advantage of PyJuice is its speed and scalability. We benchmark PyJuice against prior PC packages [SPFlow](https://github.com/SPFlow/SPFlow), [EiNet](https://github.com/cambridge-mlg/EinsumNetworks), and [Juice.jl](https://github.com/Tractables/ProbabilisticCircuits.jl) on the [PD](https://arxiv.org/pdf/1202.3732.pdf) and [HCLT](https://proceedings.neurips.cc/paper_files/paper/2021/file/1d0832c4969f6a4cc8e8a8fffe083efb-Paper.pdf) structures with various sizes by variating their width. We report the average ($\pm$ standard deviation of 5 runs) runtime (in seconds) per training epoch of 60K samples. All experiments were carried out on an RTX 4090 GPU with 24GB memory. To maximize parallelism, we always use the maximum possible batch size. "OOM" denotes out-of-memory with batch size 2.

<table>
<tr>
Expand Down Expand Up @@ -49,7 +49,7 @@ The biggest advantage of PyJuice is its speed and scalability. We benchmark PyJu
<td>OOM</td>
</tr>
<tr>
<td><b><a href="https://github.com/Juice-jl/ProbabilisticCircuits.jl">Juice.jl</a></b></td>
<td><b><a href="https://github.com/Tractables/ProbabilisticCircuits.jl">Juice.jl</a></b></td>
<td>$12.6_{\pm0.5}$</td>
<td>$37.0_{\pm1.7}$</td>
<td>$141.7_{\pm6.9}$</td>
Expand Down Expand Up @@ -104,7 +104,7 @@ The biggest advantage of PyJuice is its speed and scalability. We benchmark PyJu
<td>$5654.3_{\pm17.4}$</td>
</tr>
<tr>
<td><b><a href="https://github.com/Juice-jl/ProbabilisticCircuits.jl">Juice.jl</a></b></td>
<td><b><a href="https://github.com/Tractables/ProbabilisticCircuits.jl">Juice.jl</a></b></td>
<td>$4.7_{\pm0.2}$</td>
<td>$6.4_{\pm0.5}$</td>
<td>$12.4_{\pm1.3}$</td>
Expand Down Expand Up @@ -134,14 +134,14 @@ pip install pyjuice
Alternatively, you can install PyJuice from source by running the following commands:

```bash
git clone [email protected]:Juice-jl/pyjuice.git
git clone [email protected]:Tractables/pyjuice.git
cd pyjuice
pip install -e .
```

## Example Usage

The best way to get familiar with PyJuice is by referring to our [documentation](https://juice-jl.github.io/pyjuice/) and the [tutorials](https://juice-jl.github.io/pyjuice/getting-started/tutorials/index.html), which provide a gentle introduction to the main functionalities of PyJuice. In the following, we provide some quick start guides to get your first PyJuice program running.
The best way to get familiar with PyJuice is by referring to our [documentation](https://Tractables.github.io/pyjuice/) and the [tutorials](https://Tractables.github.io/pyjuice/getting-started/tutorials/index.html), which provide a gentle introduction to the main functionalities of PyJuice. In the following, we provide some quick start guides to get your first PyJuice program running.

### Train a PC with pre-specified structures

Expand Down

0 comments on commit db5001a

Please sign in to comment.