Skip to content

Tutorials for doing scientific machine learning (SciML) and high-performance differential equation solving with open source software.

License

Notifications You must be signed in to change notification settings

SciML/SciMLTutorials.jl

Repository files navigation

SciMLTutorials.jl: Tutorials for Scientific Machine Learning and Differential Equations

Join the chat at https://julialang.zulipchat.com #sciml-bridged Stable Global Docs

Build status

ColPrac: Contributor's Guide on Collaborative Practices for Community Packages SciML Code Style

SciMLTutorials.jl holds PDFs, webpages, and interactive Jupyter notebooks showing how to utilize the software in the SciML Scientific Machine Learning ecosystem. This set of tutorials was made to complement the documentation and the devdocs by providing practical examples of the concepts. For more details, please consult the docs.

Note: this library has been deprecated and its tutorials have been moved to the repos of the respective packages. It may be revived in the future if there is a need for longer-form tutorials!

Results

To view the SciML Tutorials, go to tutorials.sciml.ai. By default, this will lead to the latest tagged version of the tutorials. To see the in-development version of the tutorials, go to https://tutorials.sciml.ai/dev/.

Static outputs in pdf, markdown, and html reside in SciMLTutorialsOutput.

Video Tutorial

Video Tutorial

Interactive Notebooks

To generate the interactive notebooks, first install the SciMLTutorials, instantiate the environment, and then run SciMLTutorials.open_notebooks(). This looks as follows:

]add SciMLTutorials#master
]activate SciMLTutorials
]instantiate
using SciMLTutorials
SciMLTutorials.open_notebooks()

The tutorials will be generated at your pwd() in a folder called generated_notebooks.

Note that when running the tutorials, the packages are not automatically added. Thus you will need to add the packages manually or use the internal Project/Manifest tomls to instantiate the correct packages. This can be done by activating the folder of the tutorials. For example,

using Pkg
Pkg.activate(joinpath(pkgdir(SciMLTutorials),"tutorials","models"))
Pkg.instantiate()

will add all of the packages required to run any tutorial in the models folder.

Contributing

All of the files are generated from the Weave.jl files in the tutorials folder. The generation process runs automatically, and thus one does not necessarily need to test the Weave process locally. Instead, simply open a PR that adds/updates a file in the "tutorials" folder and the PR will generate the tutorial on demand. Its artifacts can then be inspected in the Buildkite as described below before merging. Note that it will use the Project.toml and Manifest.toml of the subfolder, so any changes to dependencies requires that those are updated.

Reporting Bugs and Issues

Report any bugs or issues at the SciMLTutorials repository.

Inspecting Tutorial Results

To see tutorial results before merging, click into the BuildKite, click onto Artifacts, and then investigate the trained results.

Manually Generating Files

To run the generation process, do for example:

]activate SciMLTutorials # Get all of the packages
using SciMLTutorials
SciMLTutorials.weave_file(joinpath(pkgdir(SciMLTutorials),"tutorials","models"),"01-classical_physics.jmd")

To generate all of the files in a folder, for example, run:

SciMLTutorials.weave_folder(joinpath(pkgdir(SciMLTutorials),"tutorials","models"))

To generate all of the notebooks, do:

SciMLTutorials.weave_all()

Each of the tuturials displays the computer characteristics at the bottom of the benchmark.