- Add jupytext dependency to binder/requirements.txt - Update postBuild to convert src/*.py files to modules/*.ipynb - Document the notebook generation workflow in README.md This ensures Binder users get ready-to-use notebooks that are always in sync with the source Python files.
Binder Environment Setup
This directory contains configuration files for running TinyTorch in cloud environments via Binder and Google Colab.
Files
requirements.txt: Python dependencies for the Binder environmentpostBuild: Script that runs after environment setup to install TinyTorch
How It Works
Binder
When users click the "Launch Binder" button on any notebook page in the TinyTorch documentation:
- Binder reads
binder/requirements.txtto install Python dependencies - Binder runs
binder/postBuildwhich:- Installs the TinyTorch package (
pip install -e .) - Generates student notebooks from
src/*.pyfiles using Jupytext - Populates
modules/with ready-to-use Jupyter notebooks
- Installs the TinyTorch package (
- Users get a fully configured JupyterLab environment with TinyTorch and all notebooks ready to use
Note: The modules/ directory is gitignored because notebooks are generated from the source .py files. This ensures students always get notebooks that match the current code.
Binder URL Format:
https://mybinder.org/v2/gh/mlsysbook/TinyTorch/main
Google Colab
Colab launch buttons automatically:
- Clone the repository
- Install dependencies from
binder/requirements.txt - Run setup commands (users may need to manually run
pip install -e .)
Colab URL Format:
https://colab.research.google.com/github/mlsysbook/TinyTorch/blob/main/path/to/notebook.ipynb
Testing
To test your Binder setup:
-
Test Binder Build:
# Visit: https://mybinder.org/v2/gh/mlsysbook/TinyTorch/main # Or use the badge: [](https://mybinder.org/v2/gh/mlsysbook/TinyTorch/main) -
Verify Installation: Once Binder launches, test in a notebook:
import tinytorch print(tinytorch.__version__) -
Check Available Resources:
import os print("Modules:", os.listdir("modules")) print("Assignments:", os.listdir("assignments")) print("Milestones:", os.listdir("milestones"))
Troubleshooting
Binder Build Fails
- Check
binder/requirements.txtfor syntax errors - Verify
binder/postBuildhas execute permissions (chmod +x binder/postBuild) - Review Binder build logs at: https://mybinder.org/v2/gh/mlsysbook/TinyTorch/main?urlpath=lab/tree/logs%2Fbuild.log
Colab Import Errors
- Ensure
binder/requirements.txtincludes all dependencies - Users may need to run:
!pip install -e .in a Colab cell - Check that the repository is public (Colab can't access private repos)
Package Not Found
- Verify
postBuildscript runspip install -e .correctly - Check that
pyproject.tomlis in the repository root - Ensure all dependencies in
requirements.txtare compatible
Deployment Environments
As documented in the TinyTorch paper, three deployment environments are supported:
-
JupyterHub (institutional server)
- 8-core/32GB supports ~50 students
- Best for classroom use
-
Google Colab (zero installation)
- Best for MOOCs and self-paced learning
- No setup required from students
-
Local Installation (
pip install tinytorch)- Best for self-paced learning and development
- Full control over environment
Keeping Dependencies Updated
When updating dependencies:
- Update
requirements.txt(root) - for local development - Update
binder/requirements.txt- for Binder/Colab - Update
docs/requirements.txt- for documentation builds - Keep versions synchronized where possible