From 83417d4b4c842e6db28e48eed019a8b0711ae72a Mon Sep 17 00:00:00 2001 From: George Hotz Date: Sun, 18 Oct 2020 12:48:17 -0700 Subject: [PATCH] readme and dirs --- README.md | 31 ++++++++++++++++++++++++++++++- mnist.py => test/mnist.py | 7 +++++-- test.py => test/test.py | 2 +- tensor.py => tinygrad/tensor.py | 0 4 files changed, 36 insertions(+), 4 deletions(-) rename mnist.py => test/mnist.py (94%) rename test.py => test/test.py (96%) rename tensor.py => tinygrad/tensor.py (100%) diff --git a/README.md b/README.md index 0e7a7584f9..67011886ef 100644 --- a/README.md +++ b/README.md @@ -2,5 +2,34 @@ For something in between a grad and a karpathy/micrograd -Requires numpy +The Tensor class is a wrapper around a numpy array + +### Example + +```python +import numpy as np +from tinygrad.tensor import Tensor + +x = Tensor(np.eye(3)) +y = Tensor(np.array([[2.0,0,-2.0]])) +z = y.dot(x).sum() +z.backward() + +print(x.grad) # dz/dx +print(y.grad) # dz/dy +``` + +### Same example in torch + +```python +import torch + +x = torch.eye(3, requires_grad=True) +y = torch.tensor([[2.0,0,-2.0]], requires_grad=True) +z = y.matmul(x).sum() +z.backward() + +print(x.grad) # dz/dx +print(y.grad) # dz/dy +``` diff --git a/mnist.py b/test/mnist.py similarity index 94% rename from mnist.py rename to test/mnist.py index d278bcb956..389ab07e84 100644 --- a/mnist.py +++ b/test/mnist.py @@ -1,6 +1,6 @@ #!/usr/bin/env python import numpy as np -from tensor import Tensor +from tinygrad.tensor import Tensor from tqdm import trange # load the mnist dataset @@ -74,5 +74,8 @@ def numpy_eval(): Y_test_preds = np.argmax(Y_test_preds_out, axis=1) return (Y_test == Y_test_preds).mean() -print("test set accuracy is %f" % numpy_eval()) +accuracy = numpy_eval() +print("test set accuracy is %f" % accuracy) +assert accuracy > 0.95 + diff --git a/test.py b/test/test.py similarity index 96% rename from test.py rename to test/test.py index 558d3794e8..7dff035cd2 100644 --- a/test.py +++ b/test/test.py @@ -1,6 +1,6 @@ import numpy as np import torch -from tensor import Tensor +from tinygrad.tensor import Tensor x_init = np.random.randn(1,3).astype(np.float32) W_init = np.random.randn(3,3).astype(np.float32) diff --git a/tensor.py b/tinygrad/tensor.py similarity index 100% rename from tensor.py rename to tinygrad/tensor.py