A hands-on, interactive deep learning book implemented entirely in Julia, based on the acclaimed Dive into Deep Learning (D2L.ai) textbook. Learn modern machine learning techniques with clean, idiomatic Julia code and a strong emphasis on mathematical intuition.
- 📚 Interactive Notebooks – Every chapter is a live Julia notebook runnable via Pluto.jl or IJulia.jl.
- 🔢 Mathematical Intuition – Clear derivations and explanations alongside the code.
- 🔍 Modern Deep Learning – Covers fundamentals to advanced topics like CNNs, RNNs, Transformers, and beyond.
- 🧪 Built from Scratch – Learn by implementing models and algorithms manually before using frameworks.
- 📦 Flux.jl Powered – Uses the elegant Flux.jl library for building and training models.
- 🧰 Modular Utilities – Reusable utilities for training, data loading, and visualization.
- CH3. Linear Regression
- CH4. Linear Classification
- CH5. MLP
- CH6. Convolutional Neural Networks
- CH7. Modern Convolutional Neural Networks
- CH8. Recurrent Neural Networks
- CH9. Modern Recurrent Neural Networks
- CH10. Attention Mechanisms and Transformers
- CH11. Computer Vision
- Clone the repository:
git clone https://github.com/ashutosh-b-b/d2l-julia.git- Download Julia via juliaup:
curl -fsSL https://install.julialang.org | sh- Install Julia 1.11.4
juliaup add 1.11.4- Instantiate and Precompile the d2lai package:
julia +1.11.4 julia> using Pkg
julia> Pkg.activate("d2lai/")
julia> Pkg.instantiate()
julia> Pkg.precompile()- Add full coverage for all D2L chapters
- Add automated testing for notebooks
- Add tests for d2lai package.
We welcome contributions!
- Fork this repo
- Open a feature branch
- Submit a pull request (PR)
Original book: Dive into Deep Learning by Aston Zhang, Zachary C. Lipton, Mu Li, and Alex J. Smola
Julia libraries: Flux.jl, Zygote.jl, MLDatasets.jl
