Coder Social home page Coder Social logo

cho202 / dynamicppl.jl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from power2565/dynamicppl.jl

1.0 0.0 0.0 1.4 MB

Implementation of domain-specific language (DSL) for dynamic probabilistic programming

Home Page: https://turinglang.org/DynamicPPL.jl/

License: MIT License

Julia 100.00%

dynamicppl.jl's Introduction

DynamicPPL.jl

Stable Dev CI JuliaNightly IntegrationTest Coverage Status Codecov Code Style: Blue ColPrac: Contributor's Guide on Collaborative Practices for Community Packages Bors enabled

A domain-specific language and backend for probabilistic programming, used by Turing.jl.

DynamicPPL is the part of Turing.jl that deals with defining, running, and manipulating models. DynamicPPL provides:

  • General-purpose probabilistic programming with an intuitive syntax.
  • The @model syntax and macro for easily specifying probabilistic generative models.
  • A tracing data-structure for tracking random variables in dynamic probabilistic models.
  • A rich contextual dispatch system allowing for tailored behaviour during model execution.
  • A user-friendly syntax for probabilistic queries.

Information on how to use the DynamicPPL frontend to build Bayesian models can be found on the Turing website. Tutorials explaining how to use the backend can be found alongside the documentation. More information can be found in our paper DynamicPPL: Stan-like Speed for Dynamic Probabilistic Models.

Do you want to contribute?

If you feel you have some relevant skills and are interested in contributing, please get in touch! You can find us in the #turing channel on the Julia Slack or Discourse. If you're having any problems, please open a Github issue, even if the problem seems small (like help figuring out an error message). Every issue you open helps us improve the library!

Contributor's Guide

This project follows the ColPrac: Contributor's Guide on Collaborative Practices for Community Packages, apart from the following slight variation:

  • The master branch contains the most recent release at any point in time. All non-breaking changes (bug fixes etc.) are merged directly into master and a new patch version is released immediately.
  • A separate dev branch contains all breaking changes, and is merged into master when a minor version release happens.

For instance, suppose we are currently on version 0.13.5.

  • If someone produces a bug fix, it is merged directly into master and bumps the version to 0.13.6. This change is also merged into dev so that it remains up-to-date with master.
  • If someone is working on a new feature that is not breaking (performance-related, fancy new syntax that is backwards-compatible etc.), the same happens.
  • New breaking changes are merged into dev until a release is ready to go, at which point dev is merged into master and version 0.14 is released.

Bors

This project uses Bors for merging PRs. Bors is a Github bot that prevents merge skew / semantic merge conflicts by testing the exact integration of pull requests before merging them.

When a PR is good enough for merging and has been approved by at least one reviewer, instead of merging immediately, it is added to the merge queue by commenting with bors r+. The Bors bot merges the pull request into a staging area, and runs the CI tests. If tests pass, the commit in the staging area is copied to the target branch (i.e., usually master).

PRs can be tested by adding a comment with bors try. Additional commands can be found in the Bors documentation.

dynamicppl.jl's People

Contributors

devmotion avatar mohamed82008 avatar phipsgabler avatar torfjelde avatar yebai avatar github-actions[bot] avatar cpfiffer avatar paradacarleton avatar bors[bot] avatar xukai92 avatar knuesel avatar juliatagbot avatar pavanchaggar avatar rikhuijzer avatar vaibhavdixit02 avatar jonasmac16 avatar willtebbutt avatar

Stargazers

office@dynexcoin.org avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.