A starter repository for deep‐learning projects, providing a standardized environment, launcher script, and tooling for debugging & profiling.
- Portable launcher (
start.py
) isolates your system environment - PYTHONPATH is automatically set to project root
- Single entry point for scripts, debug, and profiling
- Git LFS support for large model/checkpoint files
- Ubuntu 24.04 (other OS not officially supported)
- Python 3.11+
- Git with Git LFS
# 1. Clone & fetch LFS objects
git clone https://github.com/<your-org>/<your-repo>.git
cd <your-repo>
git lfs install
git lfs pull
# 2. Create & activate virtualenv, install dependencies
./install_env.sh
All project scripts are launched via the start.py
wrapper:
./start.py -- /path/to/your_script.py [--script-args]
start.py
ensures a clean virtualenv and setsPYTHONPATH
to the repo root- Use
--
to separatestart.py
options from your script’s arguments
./start.py -- scripts/train.py -- --config configs/train.yaml
Waits for a VS Code debug client to attach on port 5678:
./start.py -d -- scripts/train.py -- --config configs/train.yaml
- Press F5 in VS Code
- Select the “Attach to start.py” debug configuration
Profiles with Scalene, output to prof.json
:
./start.py -p -- scripts/train.py -- --config configs/train.yaml
├── install_env.sh # creates virtualenv, installs dependencies
├── start.py # launcher + debug/profiler wrapper
├── requirements.txt # Python dependencies
├── scripts/ # user scripts (train.py, eval.py, etc.)
├── configs/ # YAML/JSON config files
├── src/ # project code (models/, data/, utils/)
└── prof.json # latest Scalene profile output
- Fork the repo
- Create a feature branch (
git checkout -b feat/my-feature
) - Commit your changes
- Open a pull request against
main
Please follow PEP 8, include tests in tests/
, and ensure all CI checks pass.
This project is licensed under the MIT License – see the LICENSE file for details.