readme and dirs
MODIFY
README.md
README.md
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
+```

RENAME
mnist.py
test/mnist.py
#!/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
+

RENAME
test.py
test/test.py
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)

RENAME
tensor.py
tinygrad/tensor.py
readme and dirs