Skip to content

rumor-thrower/Grokking-Deep-Learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📘 Grokking Deep Learning — Julia Port & Learning

This repository organizes materials from the original book "Grokking Deep Learning" (mostly notebooks) for learning purposes and aims to port parts of the examples to Julia.

Grokking Deep Learning — Official page

ℹ️ Note: This repository may include the following submodules or references:

  • Book: The original repository containing the source (mostly Python) example notebooks.
  • BookJuliaPort: Community/third-party examples ported to Julia.

🎯 Primary Goals

  • Use the original book's example notebooks (originally in Python) as learning material.
  • Port examples step-by-step to Julia for educational comparison and experiments.
  • Document design and numerical differences encountered during porting.

⚙️ Quick Start (Recommended)

Prerequisites: Julia 1.8 or later, git, and optionally jupyter (or jupyterlab).

  1. Activate the Julia environment at the repository root and install packages:
julia --project=. -e 'import Pkg; Pkg.activate("."); Pkg.instantiate()'

If the repository contains submodules (on first clone), initialize them first:

git submodule update --init --recursive
  1. To open the notebooks in Jupyter (requires the IJulia kernel):
julia --project=. -e 'import Pkg; Pkg.add("IJulia"); using IJulia; installkernel("Grok")'
jupyter lab

Or to run Pluto notebooks (if you prefer Pluto):

julia --project=. -e 'import Pkg; Pkg.add("Pluto"); using Pluto; Pluto.run()'

🗂️ Repository Structure (Summary)

  • Book/: Original (mostly Python) notebooks and data files used as source material — usually a submodule of the original repo.
  • BookJuliaPort/: Community / third-party Julia ports of examples (submodule).
  • src/Grok.jl: Supporting Julia code (utilities used during porting).
  • Project.toml, Manifest.toml: Julia environment and dependencies.

Example data files: shakespear.txt, labels.txt, spam.txt, etc., are used by some notebooks.

🔧 Porting Guide (Short)

  • Follow the original notebook cell-by-cell and reproduce the same numbers/outputs.
  • Replace NumPy/Matplotlib calls with Julia equivalents such as LinearAlgebra, Plots.jl or Images.jl.
  • For automatic differentiation examples, compare Zygote.jl with simple numeric-differentiation implementations.
  • Record major numerical or performance differences as comments in the notebook when porting.

✅ Porting Checklist (example)

  • Confirm whether original cell inputs/outputs are reproduced.
  • Add required packages to Project.toml.
  • Fix plot labels/axes so visualizations match the originals.

🤝 Contributing

  • To port or modify, fork → branch → open a PR. Include: changed files, short run instructions, and (optionally) screenshots of reproduced examples.

📜 License & Copyright

  • This repository is a learning-oriented port/notes collection. Respect the original author's copyright and licensing when using source materials — check the original work's license/permissions.

📬 Contact / Further Work

  • Plans include porting more chapters to Julia or adding simple automated checks that validate cell reproduction.
  • For questions or contributions, please use this repository's issue tracker.

Refer to the Book/ directory 📂 for the list and links of original (Python) notebooks. Julia port examples will be added sequentially to src/.

About

A repository for organizing materials from the book “Grokking Deep Learning” for learning purposes and porting the code to Julia.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages