Files
TinyTorch/docs/development/module-template.md
Vijay Janapa Reddi eebb22ebdb feat: Add consistent 'Where This Code Lives' template across modules
- Add template section to tensor, layers, activations, and cnn modules
- Create docs/development/module-template.md for future reference
- Clarify learning vs building structure consistently
- Show students where their code will live in the final package
- Decouple learning modules from production organization
2025-07-10 23:48:49 -04:00

1.7 KiB

Module Template: "Where This Code Lives" Section

📦 Where This Code Lives in the Final Package

Learning Side: You work in modules/{module_name}/{module_name}_dev.py
Building Side: Code exports to tinytorch.core.{destination}

# Final package structure:
from tinytorch.core.{destination} import {exported_classes}
from tinytorch.core.tensor import Tensor

Why this matters:

  • Learning: Focused modules for deep understanding
  • Production: Proper organization like industry frameworks
  • Consistency: Related functionality grouped together

Template Variables

Replace these placeholders in each module:

  • {module_name}: The module directory name (e.g., "tensor", "layers", "cnn")
  • {destination}: Where the code exports in the final package (e.g., "tensor", "layers", "activations")
  • {exported_classes}: The main classes/functions being exported (e.g., "Tensor", "Dense, Conv2D", "ReLU, Sigmoid")

Examples

Tensor Module

# Learning Side: modules/tensor/tensor_dev.py
# Building Side: tinytorch.core.tensor
from tinytorch.core.tensor import Tensor

Layers Module

# Learning Side: modules/layers/layers_dev.py
# Building Side: tinytorch.core.layers
from tinytorch.core.layers import Dense, Conv2D

CNN Module

# Learning Side: modules/cnn/cnn_dev.py
# Building Side: tinytorch.core.layers (Conv2D lives with Dense)
from tinytorch.core.layers import Dense, Conv2D

Usage Instructions

  1. Copy this template section into each module's *_dev.py file
  2. Replace the template variables with module-specific values
  3. Update the #| default_exp directive to match the destination
  4. Ensure the exported classes match what's actually being exported