← all repositories
danielsabinasz/TensorSlow

TensorFlow's guts, dissected in 500 lines of Python

A readable from-scratch rebuild for anyone who's stared at TensorFlow and wondered "but how does any of this actually work?"

679 stars Jupyter Notebook ML FrameworksLearning
TensorSlow
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does

TensorSlow rebuilds core TensorFlow abstractions—computational graphs, placeholders, variables, sessions, automatic differentiation, gradient descent—in pure Python, no C++ backend in sight. The API deliberately mirrors TensorFlow’s so you can map concepts one-to-one. It trains models. Slowly.

The interesting bit

The author pairs the code with a step-by-step blog series that walks through the math and algorithms as the library grows. This isn’t a stripped-down toy; it’s a pedagogical deconstruction where understandability is the explicit design goal, not a side effect.

Key highlights

  • Full forward and backward pass through a computational graph built from Python objects
  • Automatic differentiation via reverse-mode autodiff (the actual mechanism, not a black box)
  • Session-based execution with feed_dict, matching TensorFlow 1.x patterns
  • Softmax classifier example included; more in the examples directory
  • Companion article series develops the library line-by-line with theory

Caveats

  • Explicitly “solely for educational purposes”; the author warns against using it for real work
  • No GPU support, no graph optimizations, no eager execution—performance is not the point
  • README contains a typo (weigths) and the code snippets have inconsistent variable naming (X/W vs. training_features/weights), suggesting limited maintenance

Verdict

Worth a few hours if you’re teaching deep learning, interviewing for ML infrastructure roles, or just tired of treating frameworks as magic. Skip it if you need to train anything larger than a toy dataset this decade.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.