From 9535cc859aabd6b0f19359ae39d80a65c5eb9a9f Mon Sep 17 00:00:00 2001 From: Jacky Date: Thu, 29 Aug 2024 01:11:19 -0400 Subject: [PATCH] FEAT: added module 1 --- README.md | 53 ++++++++++++++++++++---- figs/task1.5.png | Bin 0 -> 203342 bytes minitorch/autodiff.py | 62 +++++++++++++++++++++++++--- minitorch/operators.py | 20 ++++----- minitorch/scalar.py | 49 ++++++++++++---------- minitorch/scalar_functions.py | 74 +++++++++++++++++++--------------- tests/test_autodiff.py | 66 ++++++++++++++++++++++-------- tests/test_scalar.py | 34 +++++++++++++++- 8 files changed, 263 insertions(+), 95 deletions(-) create mode 100644 figs/task1.5.png diff --git a/README.md b/README.md index 6edb6f8..fa88587 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# minitorch -This repository is part of my journey to learn the underlying concepts of deep learning systems through implementing a minimal version of PyTorch library. +# MiniTorch: A DIY Course on Machine Learning Engineering +This repository is part of my journey to learn the underlying engineering concepts of deep learning systems through implementing a minimal version of PyTorch library. If you're interested in learning more, I highly recommend checking out the excellent [MiniTorch lectures](https://minitorch.github.io) and [Youtube playlist](https://www.youtube.com/playlist?list=PLO45-80-XKkQyROXXpn4PfjF1J2tH46w8) by [Prof. Rush](https://rush-nlp.com), and the [self-study guide](https://github.com/mukobi/Minitorch-Self-Study-Guide-SAIA/tree/main) by [Gabriel Mukobi](https://gabrielmukobi.com) that answers some common questions. ## Setup -My venv is Python 3.8. +My virtual environment is based on Python 3.8. Install dependencies ```bash @@ -60,15 +60,52 @@ To access the autograder: - [x] Modules - [x] Visualization +To run visualization for Module 0, use: +``` bash +streamlit run project/app.py -- 0 +``` + +Then you should be able to see interactive data visualizations and you could "turn the knobs" of the parameters to explore model behaviour. ![task0.5](./figs/task0.5.png) ## Module 1 - Autodiff -- [ ] Numerical Derivatives -- [ ] Scalars -- [ ] Chain Rule -- [ ] Backpropagation -- [ ] Training +- [x] Numerical Derivatives +- [x] Scalars +- [x] Chain Rule +- [x] Backpropagation +- [x] Training + +PyTorch terminology in computational graph: +- Leaf nodes: variables created from scratch on the left hand side (e.g., `minitorch.Scalar(0.0)` ) +- Non-leaf nodes: variables created with a Function +- Constant nodes: terms that passed in that is not a variable (scalars without a history, e.g., `minitorch.Scalar(0.0, None)` ) + +Backpropagation algorithm: +1. Call topological sort. The result should start from the right of the computational graph (i.e., the output) +2. Create a dict of variables and derivatives +3. For each node in topological sort + 1. If variable is a leaf, then add its final derivative + 2. If the variable is not a leaf + 1. Call backward with its derivative as $d$ + 2. Loop through all the variables and derivative + 3. Accumulate derivatives for the variable + +To run visualization for Module 1, use: +``` bash +streamlit run project/app.py -- 1 +``` + +Here's the training result for the XOR dataset. +![task1.5](./figs/task1.5.png) + +The parameters are +``` +PTS = 50 +DATASET = minitorch.datasets["Xor"](PTS) +HIDDEN = 10 +RATE = 0.5 +``` ## Module 2 - Tensors diff --git a/figs/task1.5.png b/figs/task1.5.png new file mode 100644 index 0000000000000000000000000000000000000000..b55fdeedacafb27f960678a0869c67e400fcf8e4 GIT binary patch literal 203342 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 Any: r""" Computes an approximation to the derivative of `f` with respect to one arg. + $f'(x) \approx \frac{f(x + \epsilon) - f(x - \epsilon)}{2 \epsilon}a$ See :doc:`derivative` or https://en.wikipedia.org/wiki/Finite_difference for more details. @@ -22,8 +23,11 @@ def central_difference(f: Any, *vals: Any, arg: int = 0, epsilon: float = 1e-6) Returns: An approximation of $f'_i(x_0, \ldots, x_{n-1})$ """ - # TODO: Implement for Task 1.1. - raise NotImplementedError("Need to implement for Task 1.1") + # raise NotImplementedError("Need to implement for Task 1.1") + vals_1, vals_0 = list(vals), list(vals) + vals_1[arg] += epsilon + vals_0[arg] -= epsilon + return (f(*vals_1) - f(*vals_0)) / (2 * epsilon) variable_count = 1 @@ -61,8 +65,33 @@ def topological_sort(variable: Variable) -> Iterable[Variable]: Returns: Non-constant Variables in topological order starting from the right. """ - # TODO: Implement for Task 1.4. - raise NotImplementedError("Need to implement for Task 1.4") + # raise NotImplementedError("Need to implement for Task 1.4") + + #### Pseudocode for topo sort + ## visit(last) + ## function visit(node n): + ## if n has a mark then return + ## for each node m with an edge from n to m, do: + ## visit(m) + ## mark n with a permanent mark + ## add n to list + + result: List[Variable] = [] + visited = set() + + def visit(var: Variable) -> None: + id = var.unique_id + if id in visited or var.is_constant(): + return + if not var.is_leaf(): + for m in var.parents: + if not m.is_constant(): + visit(m) + visited.add(id) + result.insert(0, var) + + visit(variable) + return result def backpropagate(variable: Variable, deriv: Any) -> None: @@ -76,8 +105,29 @@ def backpropagate(variable: Variable, deriv: Any) -> None: No return. Should write to its results to the derivative values of each leaf through `accumulate_derivative`. """ - # TODO: Implement for Task 1.4. - raise NotImplementedError("Need to implement for Task 1.4") + # raise NotImplementedError("Need to implement for Task 1.4") + + # get sorted computational graph, where the first element is the output (right of the computational graph) + queue = topological_sort(variable) + derivatives = {} # key: var_id; value: $\diffp{variable}{var_id}$ + derivatives[variable.unique_id] = deriv + + for var in queue: + # for each variable `var`, find its derivative `deriv` + deriv = derivatives[var.unique_id] + if var.is_leaf(): + # if `var` is a leaf, update its `derivative` attribute + var.accumulate_derivative(deriv) + else: + # if `var` is created by a function, + # calculate derivatives for all inputs using chain rule. + # `deriv` is the partial derivative of output, w.r.t. `var` + for v, d in var.chain_rule(deriv): + # if input is a constant, ignore + if v.is_constant(): + continue + # if input is a variable, accumulate its derivative + derivatives[v.unique_id] = derivatives.get(v.unique_id, 0.0) + d @dataclass diff --git a/minitorch/operators.py b/minitorch/operators.py index 47c5962..1ffdc37 100644 --- a/minitorch/operators.py +++ b/minitorch/operators.py @@ -13,25 +13,25 @@ def mul(x: float, y: float) -> float: "$f(x, y) = x * y$" # raise NotImplementedError("Need to implement for Task 0.1") - return x * y + return float(x * y) def id(x: float) -> float: "$f(x) = x$" # raise NotImplementedError("Need to implement for Task 0.1") - return x + return float(x) def add(x: float, y: float) -> float: "$f(x, y) = x + y$" # raise NotImplementedError("Need to implement for Task 0.1") - return x + y + return float(x + y) def neg(x: float) -> float: "$f(x) = -x$" # raise NotImplementedError("Need to implement for Task 0.1") - return -x + return -1.0 * x def lt(x: float, y: float) -> float: @@ -49,13 +49,13 @@ def eq(x: float, y: float) -> float: def max(x: float, y: float) -> float: "$f(x) =$ x if x is greater than y else y" # raise NotImplementedError("Need to implement for Task 0.1") - return x if x > y else y + return float(x) if x > y else float(y) def is_close(x: float, y: float) -> float: "$f(x) = |x - y| < 1e-2$" # raise NotImplementedError("Need to implement for Task 0.1") - return abs(x - y) < 1e-2 + return 1.0 if abs(x - y) < 1e-2 else 0.0 def sigmoid(x: float) -> float: @@ -81,7 +81,7 @@ def relu(x: float) -> float: (See https://en.wikipedia.org/wiki/Rectifier_(neural_networks) .) """ # raise NotImplementedError("Need to implement for Task 0.1") - return x if x > 0 else 0.0 + return float(x) if x > 0 else 0.0 EPS = 1e-6 @@ -100,7 +100,7 @@ def exp(x: float) -> float: def log_back(x: float, d: float) -> float: r"If $f = log$ as above, compute $d \times f'(x)$" # raise NotImplementedError("Need to implement for Task 0.1") - return d / x + return d / float(x) def inv(x: float) -> float: @@ -112,13 +112,13 @@ def inv(x: float) -> float: def inv_back(x: float, d: float) -> float: r"If $f(x) = 1/x$ compute $d \times f'(x)$" # raise NotImplementedError("Need to implement for Task 0.1") - return -d * (x ** (-2)) + return -float(d) * (x ** (-2)) def relu_back(x: float, d: float) -> float: r"If $f = relu$ compute $d \times f'(x)$" # raise NotImplementedError("Need to implement for Task 0.1") - return d if x > 0 else 0 + return float(d) if x > 0 else 0.0 # ## Task 0.3 diff --git a/minitorch/scalar.py b/minitorch/scalar.py index f5abbe9..1bec19f 100644 --- a/minitorch/scalar.py +++ b/minitorch/scalar.py @@ -18,6 +18,7 @@ ReLU, ScalarFunction, Sigmoid, + wrap_tuple, ) ScalarLike = Union[float, int, "Scalar"] @@ -92,31 +93,31 @@ def __rtruediv__(self, b: ScalarLike) -> Scalar: return Mul.apply(b, Inv.apply(self)) def __add__(self, b: ScalarLike) -> Scalar: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return Add.apply(self, b) def __bool__(self) -> bool: return bool(self.data) def __lt__(self, b: ScalarLike) -> Scalar: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return LT.apply(self, b) def __gt__(self, b: ScalarLike) -> Scalar: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return LT.apply(b, self) def __eq__(self, b: ScalarLike) -> Scalar: # type: ignore[override] - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return EQ.apply(self, b) def __sub__(self, b: ScalarLike) -> Scalar: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return Add.apply(self, Neg.apply(b)) def __neg__(self) -> Scalar: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return Neg.apply(self) def __radd__(self, b: ScalarLike) -> Scalar: return self + b @@ -125,20 +126,20 @@ def __rmul__(self, b: ScalarLike) -> Scalar: return self * b def log(self) -> Scalar: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return Log.apply(self) def exp(self) -> Scalar: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return Exp.apply(self) def sigmoid(self) -> Scalar: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return Sigmoid.apply(self) def relu(self) -> Scalar: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return ReLU.apply(self) # Variable elements for backprop @@ -168,13 +169,17 @@ def parents(self) -> Iterable[Variable]: return self.history.inputs def chain_rule(self, d_output: Any) -> Iterable[Tuple[Variable, Any]]: + "Calculates derivative for each input variable" h = self.history assert h is not None assert h.last_fn is not None assert h.ctx is not None - # TODO: Implement for Task 1.3. - raise NotImplementedError("Need to implement for Task 1.3") + # raise NotImplementedError("Need to implement for Task 1.3") + deriv = h.last_fn._backward(h.ctx, d_output) + return [ + (x, y) for x, y in zip(h.inputs, wrap_tuple(deriv)) if (not x.is_constant()) + ] def backward(self, d_output: Optional[float] = None) -> None: """ diff --git a/minitorch/scalar_functions.py b/minitorch/scalar_functions.py index d8d2307..5bcfde5 100644 --- a/minitorch/scalar_functions.py +++ b/minitorch/scalar_functions.py @@ -103,13 +103,15 @@ class Mul(ScalarFunction): @staticmethod def forward(ctx: Context, a: float, b: float) -> float: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + ctx.save_for_backward(a, b) + return operators.mul(a, b) @staticmethod def backward(ctx: Context, d_output: float) -> Tuple[float, float]: - # TODO: Implement for Task 1.4. - raise NotImplementedError("Need to implement for Task 1.4") + # raise NotImplementedError("Need to implement for Task 1.4") + a, b = ctx.saved_values + return b * d_output, a * d_output class Inv(ScalarFunction): @@ -117,13 +119,15 @@ class Inv(ScalarFunction): @staticmethod def forward(ctx: Context, a: float) -> float: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + ctx.save_for_backward(a) + return operators.inv(a) @staticmethod def backward(ctx: Context, d_output: float) -> float: - # TODO: Implement for Task 1.4. - raise NotImplementedError("Need to implement for Task 1.4") + # raise NotImplementedError("Need to implement for Task 1.4") + (a,) = ctx.saved_values + return operators.inv_back(a, d_output) class Neg(ScalarFunction): @@ -131,13 +135,13 @@ class Neg(ScalarFunction): @staticmethod def forward(ctx: Context, a: float) -> float: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return operators.neg(a) @staticmethod def backward(ctx: Context, d_output: float) -> float: - # TODO: Implement for Task 1.4. - raise NotImplementedError("Need to implement for Task 1.4") + # raise NotImplementedError("Need to implement for Task 1.4") + return -d_output class Sigmoid(ScalarFunction): @@ -145,13 +149,15 @@ class Sigmoid(ScalarFunction): @staticmethod def forward(ctx: Context, a: float) -> float: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + ctx.save_for_backward(a) + return operators.sigmoid(a) @staticmethod def backward(ctx: Context, d_output: float) -> float: - # TODO: Implement for Task 1.4. - raise NotImplementedError("Need to implement for Task 1.4") + # raise NotImplementedError("Need to implement for Task 1.4") + (a,) = ctx.saved_values + return d_output * operators.sigmoid(a) * (1 - operators.sigmoid(a)) class ReLU(ScalarFunction): @@ -159,13 +165,15 @@ class ReLU(ScalarFunction): @staticmethod def forward(ctx: Context, a: float) -> float: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + ctx.save_for_backward(a) + return operators.relu(a) @staticmethod def backward(ctx: Context, d_output: float) -> float: - # TODO: Implement for Task 1.4. - raise NotImplementedError("Need to implement for Task 1.4") + # raise NotImplementedError("Need to implement for Task 1.4") + (a,) = ctx.saved_values + return operators.relu_back(a, d_output) class Exp(ScalarFunction): @@ -173,13 +181,15 @@ class Exp(ScalarFunction): @staticmethod def forward(ctx: Context, a: float) -> float: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + ctx.save_for_backward(a) + return operators.exp(a) @staticmethod def backward(ctx: Context, d_output: float) -> float: - # TODO: Implement for Task 1.4. - raise NotImplementedError("Need to implement for Task 1.4") + # raise NotImplementedError("Need to implement for Task 1.4") + (a,) = ctx.saved_values + return operators.exp(a) * d_output class LT(ScalarFunction): @@ -187,13 +197,13 @@ class LT(ScalarFunction): @staticmethod def forward(ctx: Context, a: float, b: float) -> float: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return operators.lt(a, b) @staticmethod def backward(ctx: Context, d_output: float) -> Tuple[float, float]: - # TODO: Implement for Task 1.4. - raise NotImplementedError("Need to implement for Task 1.4") + # raise NotImplementedError("Need to implement for Task 1.4") + return 0.0, 0.0 class EQ(ScalarFunction): @@ -201,10 +211,10 @@ class EQ(ScalarFunction): @staticmethod def forward(ctx: Context, a: float, b: float) -> float: - # TODO: Implement for Task 1.2. - raise NotImplementedError("Need to implement for Task 1.2") + # raise NotImplementedError("Need to implement for Task 1.2") + return operators.eq(a, b) @staticmethod def backward(ctx: Context, d_output: float) -> Tuple[float, float]: - # TODO: Implement for Task 1.4. - raise NotImplementedError("Need to implement for Task 1.4") + # raise NotImplementedError("Need to implement for Task 1.4") + return 0.0, 0.0 diff --git a/tests/test_autodiff.py b/tests/test_autodiff.py index fc40f00..5beb65f 100644 --- a/tests/test_autodiff.py +++ b/tests/test_autodiff.py @@ -4,6 +4,11 @@ import minitorch from minitorch import Context, ScalarFunction, ScalarHistory +from minitorch.autodiff import topological_sort + +# from minitorch.scalar_functions import Log, Exp +# from minitorch.scalar import Scalar +import math # ## Task 1.3 - Tests for the autodifferentiation machinery. @@ -36,44 +41,62 @@ def backward(ctx: Context, d_output: float) -> Tuple[float, float]: return d_output * (y + 1), d_output * x +class Function3(ScalarFunction): + @staticmethod + def forward(ctx: Context, x: float, y: float) -> float: + "$f(x, y) = log(xy) + exp(xy)$" + return math.log(x * y) + math.exp(x * y) + + @staticmethod + def backward(ctx: Context, d_output: float) -> Tuple[float, float]: + "Derivatives are $f'_x(x, y) = \frac{1}{x} + exp(xy) \times y$ and $f'_y(x, y) = \frac{1}{y} + exp(xy) \times x$" + x, y = ctx.saved_values + return d_output * (1 / x + math.exp(x * y) * y), d_output * ( + 1 / y + math.exp(x * y) * x + ) + + # Checks for the chain rule function. @pytest.mark.task1_3 def test_chain_rule1() -> None: - x = minitorch.Scalar(0.0) - constant = minitorch.Scalar( - 0.0, ScalarHistory(Function1, ctx=Context(), inputs=[x, x]) - ) - back = constant.chain_rule(d_output=5) - assert len(list(back)) == 2 + "Check that constants are ignored." + constant = minitorch.Scalar(0.0, None) + + y = Function1.apply(constant, constant) + + back = y.chain_rule(d_output=5) + assert len(list(back)) == 0 @pytest.mark.task1_3 def test_chain_rule2() -> None: - var = minitorch.Scalar(0.0, ScalarHistory()) - constant = minitorch.Scalar( - 0.0, ScalarHistory(Function1, ctx=Context(), inputs=[var, var]) - ) - back = constant.chain_rule(d_output=5) + "Check that constants are ignored and variables get derivatives." + var = minitorch.Scalar(0.0) + constant = minitorch.Scalar(0.0, None) + + y = Function1.apply(var, constant) + + back = y.chain_rule(d_output=5) back = list(back) - assert len(back) == 2 + assert len(back) == 1 variable, deriv = back[0] assert deriv == 5 @pytest.mark.task1_3 def test_chain_rule3() -> None: - "Check that constrants are ignored and variables get derivatives." - constant = 10 + "Check that constants are ignored and variables get derivatives." var = minitorch.Scalar(5) + constant = minitorch.Scalar(10, None) y = Function2.apply(constant, var) back = y.chain_rule(d_output=5) back = list(back) - assert len(back) == 2 - variable, deriv = back[1] + assert len(back) == 1 + variable, deriv = back[0] # assert variable.name == var.name assert deriv == 5 * 10 @@ -141,3 +164,14 @@ def test_backprop4() -> None: var4 = Function1.apply(var2, var3) var4.backward(d_output=5) assert var0.derivative == 10 + + +@pytest.mark.task1_4 +def test_backprop5() -> None: + # Example 5: F2(F2(0, v1), F2(0, v1)) + var1 = minitorch.Scalar(2) + var2 = Function2.apply(1, var1) + var3 = Function2.apply(1, var1) + var4 = Function2.apply(var2, var3) + var4.backward(d_output=1) + assert var1.derivative == 7 diff --git a/tests/test_scalar.py b/tests/test_scalar.py index 38ffc00..2194345 100644 --- a/tests/test_scalar.py +++ b/tests/test_scalar.py @@ -65,7 +65,39 @@ def test_simple(a: float, b: float) -> None: c = Scalar(a).relu() + Scalar(b).relu() assert_close(c.data, minitorch.operators.relu(a) + minitorch.operators.relu(b)) - # Add others if you would like... + # Simple sigmoid + c = Scalar(a).sigmoid() + Scalar(b).sigmoid() + assert_close( + c.data, minitorch.operators.sigmoid(a) + minitorch.operators.sigmoid(b) + ) + + # Simple exp + c = Scalar(a).exp() + Scalar(b).exp() + assert_close(c.data, minitorch.operators.exp(a) + minitorch.operators.exp(b)) + + # Simple log + if a > 0: + c = Scalar(a).log() + assert_close(c.data, minitorch.operators.log(a)) + if b > 0: + c = Scalar(b).log() + assert_close(c.data, minitorch.operators.log(b)) + + # Simple lt + c = Scalar(a) < Scalar(b) + assert_close(c.data, a < b) + + # Simple gt + c = Scalar(a) > Scalar(b) + assert_close(c.data, a > b) + + # Simple eq + c = Scalar(a) == Scalar(b) + assert_close(c.data, a == b) + + # Simple sub + c = Scalar(a) - Scalar(b) + assert_close(c.data, a - b) one_arg, two_arg, _ = MathTestVariable._comp_testing()