Giter Site home page Giter Site logo

grigala / pyprobml Goto Github PK

View Code? Open in Web Editor NEW

This project forked from probml/pyprobml

0.0 0.0 0.0 627.91 MB

Python code for "Machine learning: a probabilistic perspective" (2nd edition)

License: MIT License

Python 99.93% R 0.03% Shell 0.01% Jupyter Notebook 0.03%

pyprobml's Introduction

pyprobml

Python 3 code for the new book series Probabilistic Machine Learning by Kevin Patrick Murphy. This is work in progress, so expect rough edges.

Running the scripts

The scripts directory contains python files to generate individual figures from vol 1 and vol 2 of the book. To manually execute an individual script from the command line, follow this example:

git clone --depth 1 https://github.com/probml/pyprobml /pyprobml &> /dev/null
python3 pyprobml/scripts/softmax_plot.py 

This will clone the repo (without the version history, to save time/space), run the script, plot a figure, and save the result to the pyprobml/figures directory.

Many scripts rely on external packages, such as scipy, jax, etc. In some cases, the list of necessary packages is noted in the comments at the start of the file. However, rather than making the user install each dependency themselves, you can just install a single meta-package:

pip install superimport

This needs to be done on your local machine (or once per colab instance). You then need to add import superimport to the top of each of your scripts. The superimport library will parse your file, figure out all missing packages, and then install them for you, before running the rest of the script as usual. (If you run the script a second time, it skips the installation step.) Thus you will need an internet connection to run the code.

Some scripts download datasets stored in the probml-data repo. Thus you will need an internet connection to run the code.

Jupyter notebooks

The scripts needed to make all the figures for each chapter are automatically combined together into a series of Jupyter notebooks, one per chapter.

In addition to the automatically generated notebooks, there are a series of manually created notebooks, which create additional figures, and provide supplementary material for the book. These are stored in the notebooks repo, since they can be quite large. Some of these notebooks use the scripts mentioned above, but others are independent of the book content.

Colab, GCP, TPUs, and all that

When you open a Jupyter notebook, there will be a button at the top that says 'Open in colab'. If you click on this, it will start a virtual machine (VM) instance on Google Cloud Platform (GCP), running Colab. This has most of the libraries you will need (e.g., scikit-learn, JAX) pre-installed, and gives you access to a free GPU and TPU. We have created various tutorials on Colab, GCP and TPUs with more information.

How to contribute

See this guide for how to contribute code.

Metrics

Stargazers over time

GSOC 2021

For a summary of some of the contributions to this codebase during Google Summer of Code 2021, see this link.

Acknowledgements

I would like to thank the following people for contributing to the code (list autogenerated from this page):

murphyk mjsML Drishttii Duane321 gerdm animesh-007 Nirzu97 always-newbie161 karalleyna nappaillav jdf22 shivaditya-meduri Neoanarika andrewnc Abdelrahman350 Garvit9000c kzymgch alen1010 adamnemecek galv krasserm nealmcb petercerno Prahitha khanshehjad hieuza jlh2018 mvervuurt TripleTop
murphyk mjsML Drishttii Duane321 gerdm animesh-007 Nirzu97 always-newbie161 karalleyna nappaillav jdf22 shivaditya-meduri Neoanarika andrewnc Abdelrahman350 Garvit9000c kzymgch alen1010 adamnemecek galv krasserm nealmcb petercerno Prahitha khanshehjad hieuza jlh2018 mvervuurt TripleTop

pyprobml's People

Contributors

abdelrahman350 avatar adamnemecek avatar alenm10 avatar always-newbie161 avatar andrewnc avatar animesh-007 avatar ashishpapanai avatar drishttii avatar duane321 avatar galv avatar garvit9000c avatar gerdm avatar hieuza avatar jlh2018 avatar johnfearns22 avatar karalleyna avatar krasserm avatar kzymgch avatar miro-code avatar mjsml avatar murphyk avatar mvervuurt avatar nappaillav avatar nealmcb avatar neoanarika avatar nirzu97 avatar petercerno avatar prahitha avatar raymondyeh07 avatar shivaditya-meduri 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.