A curated collection of Jupyter Notebooks that accompany NVIDIA training materials and hands-on labs. This repository is intended to help students, researchers, and engineers learn and reproduce exercises from NVIDIA courses using interactive notebooks.
Language: Jupyter Notebook (100%)
- About
- Contents & structure
- Requirements
- Installation (example)
- Running the notebooks
- Datasets and data storage
- Reproducibility notes
- Contributing
- License
- Acknowledgements & References
- Contact
This repository organizes and documents interactive notebooks that illustrate concepts and practical exercises from NVIDIA courses (e.g., deep learning, GPU programming, inference optimization). Notebooks are intended to be runnable, well-documented, and easy to adapt.
Target audience:
- Learners following NVIDIA course material
- Practitioners experimenting with GPU-accelerated workflows
- Researchers prototyping models and inference optimizations
This repository uses a simple, notebook-centric layout. Update or extend as your project grows.
- notebooks/ - Primary Jupyter Notebooks (organized by topic or course)
- datasets/ - Scripts or small sample datasets (large datasets kept externally)
- resources/ - Slides, PDFs, notes, helper scripts
- environments/ - Example environment files (conda YAML / requirements.txt)
- docker/ - Dockerfiles or container-related instructions
- README.md - This file
Tip: add a one-line description at the top of each notebook describing its purpose and any required data or environment constraints.
Minimum software & hardware considerations:
- Python 3.8+ (3.9/3.10 often supported — check individual notebooks)
- JupyterLab or Jupyter Notebook
- Recommended: NVIDIA GPU with compatible drivers for GPU-accelerated notebooks
- CUDA toolkit and cuDNN appropriate to the deep learning frameworks you plan to use (check framework compatibility)
- Common Python packages: numpy, pandas, matplotlib, scikit-learn, torch / tensorflow as required by individual notebooks
Important: Each notebook may specify exact versions and extra packages. Check the top of each notebook for environment notes.
Below is an example conda-based environment. Adjust versions (especially CUDA/cuDNN) to match your system and framework requirements.
Create environment (example):
conda create -n nvidia_courses python=3.9 -y
conda activate nvidia_courses
# Install common packages (example)
conda install -c conda-forge jupyterlab numpy pandas matplotlib scikit-learn -y
# Install PyTorch (GPU) example — change cudatoolkit version per your GPU/drivers
conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -y
# Or install TensorFlow (GPU) via pip
pip install tensorflowAlternatively, use the provided environment YAML (if present):
conda env create -f environments/environment.yml
conda activate nvidia_courses- Activate your environment:
conda activate nvidia_courses - Launch JupyterLab:
jupyter labor classic notebook:jupyter notebook - Open the notebook you want and run cells in order. Check the top of the notebook for dataset and hardware requirements.
For consistent GPU-enabled environments, use containers with the NVIDIA Container Toolkit:
- Install NVIDIA drivers and the NVIDIA Container Toolkit (nvidia-docker2 / nvidia-container-toolkit).
- Example run command:
docker run --gpus all -it --rm -p 8888:8888 \
-v "$(pwd)":/workspace \
nvcr.io/nvidia/pytorch:23.05-py3 \
bash -c "cd /workspace && jupyter lab --ip=0.0.0.0 --no-browser --allow-root"Replace the image with one that matches your frameworks (NVIDIA NGC images, official framework images, or a custom Dockerfile in docker/).
- Upload the notebook to Colab or open directly from GitHub using
Open in Colab. - Set Runtime → Change runtime type → GPU.
- Install any missing packages at the top of the notebook (Colab images may use different CUDA versions).
- Keep small example datasets in
datasets/. - For large datasets, provide scripts or links to download externally (e.g., public datasets, S3, Kaggle).
- Standardize expected data paths in notebooks (e.g.,
data/ordatasets/) and document any required data layout at the top of each notebook.
- Set random seeds (NumPy, torch, TensorFlow) in notebooks to help reproduce experiments.
- Record package versions (e.g.,
pip freeze > requirements.txtorconda env export > environment.yml) for precise reproduction. - Save checkpoints and outputs to an
outputs/directory (or persistent storage) rather than inline notebook state.
Example reproducibility tips (PyTorch):
import random, numpy as np, torch
SEED = 42
random.seed(SEED)
np.random.seed(SEED)
torch.manual_seed(SEED)
if torch.cuda.is_available():
torch.cuda.manual_seed_all(SEED)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = FalseContributions are welcome — please follow these steps:
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature - Add or improve notebooks, include clear headings and environment notes.
- Add tests or verification steps when relevant.
- Submit a pull request describing the change.
Please open issues for:
- Bug reports
- Requests for new notebooks or course mappings
- Environment inconsistencies
Consider adding a CONTRIBUTING.md if you expect multiple collaborators.
- NVIDIA course materials and authors for the original content and exercises
- NVIDIA NGC (NGC container images) and documentation
- Open-source libraries used in notebooks (PyTorch, TensorFlow, RAPIDS, NumPy, etc.)
Please ensure you comply with the license and attribution requirements of any original NVIDIA course materials you reproduce or adapt.
Repository owner: shashank03-dev
If you'd like, include an email or preferred contact method here.
If you want, I can:
- Commit this README to a new branch and open a pull request,
- Customize the README with a generated table of contents that lists actual notebook files (I can scan the repo and add per-notebook descriptions), or
- Produce environment.yml or Dockerfile samples tailored to the notebooks you have.
Tell me which action you'd prefer.