← Open Source
danielsabinasz

TensorSlow

Re-implementation of TensorFlow in pure python, with an emphasis on code understandability.

TutorialsML/AI fundamentalsJupyter Notebook
Open on GitHub
Momentum
+0stars in 24 hours0.0%
678
Stars
87
Forks
+0
This week
1
Contributors
Created 2017-08-24 · Updated 2026-10-07 · #15113 today
Top developers
danielsabinasz

danielsabinasz/TensorSlow is ranked 15,113 with 678 stars.

Same-category comparison

danielsabinasz/TensorSlow is ranked 15,113 among these 8 peers; juliye2025/teaching-boyfriend-llm is ranked 15,103.

Same-category comparison
NameRankMetrics
planetlabs/notebooks15,095
Language:
Jupyter Notebook
Stars:
680
Forks:
332
Description:
interactive notebooks from Planet Engineering.
BrandPeng/Langchain1.0-Langgraph1.0-Learning15,097
Language:
Python
Stars:
679
Forks:
127
dataprofessor/streamlit_freecodecamp15,101
Language:
Jupyter Notebook
Stars:
679
Forks:
572
Description:
Build 12 Data Apps in Python with Streamlit.
juliye2025/teaching-boyfriend-llm15,103
Stars:
679
Forks:
47
benmoseley/harmonic-oscillator-pinn15,127
Language:
Jupyter Notebook
Stars:
677
Forks:
178
Description:
Code accompanying my blog post: So, what is a physics-informed neural network.
alan-ai/voice-assistant-scripts15,148
Language:
JavaScript
Stars:
675
Forks:
9
Description:
Example scripts for AI agents created with the Alan AI Platform.
blackinkkkxi/RAG_langchain15,149
Language:
Jupyter Notebook
Stars:
675
Forks:
105
yhangf/ML-NOTE15,162
Stars:
675
Forks:
134
Key parameters and specifications
Key parameters and specifications
ParameterValue
LanguageJupyter Notebook
CategoryTutorials
SubcategoryML/AI fundamentals
Stars678
Forks87
Contributors1
Created date2017-08-24
Updated date2026-10-07
Stars in 1 day0
Stars in 7 days0
Rank15,113
Previous rank14,940
Rank change-173
7-day stars rank14,812
Previous 7-day stars rank14,831
7-day stars rank change19
Total stars rank15,248
Previous total stars rank15,222
Total stars rank change-26
CountryGermany
README summary

TensorSlow A re-implementation of TensorFlow functionality in pure python TensorSlow is a minimalist machine learning API that mimicks the TensorFlow API, but is implemented in pure python (without a C backend). The source code has been built with maximal understandability in mind, rather than maximal efficiency. Therefore, TensorSlow should be used solely for educational purposes. If you want to understand how deep learning libraries like TensorFlow work under the hood, this may be your best shot. I have written

an article in my blog at deepideas. net that develops this library step by step, explaining all the math and algorithms on the way: Deep Learning From Scratch .

Frequently asked questions

How many stars and forks are recorded?

danielsabinasz/TensorSlow has 678 stars and 87 forks.

What is the repository rank?

danielsabinasz/TensorSlow is ranked 15,113.

What language and category are recorded?

danielsabinasz/TensorSlow has 678 stars, uses Jupyter Notebook and belongs to Tutorials.

Which repository is closest in rank?

danielsabinasz/TensorSlow is compared with juliye2025/teaching-boyfriend-llm, ranked 15,103 with 679 stars.

README

TensorSlow

A re-implementation of TensorFlow functionality in pure python

TensorSlow is a minimalist machine learning API that mimicks the TensorFlow API, but is implemented in pure python (without a C backend). The source code has been built with maximal understandability in mind, rather than maximal efficiency. Therefore, TensorSlow should be used solely for educational purposes. If you want to understand how deep learning libraries like TensorFlow work under the hood, this may be your best shot.

I have written an article in my blog at deepideas.net that develops this library step by step, explaining all the math and algorithms on the way: Deep Learning From Scratch.

How to use

Import:

import tensorslow as ts

Create a computational graph:

ts.Graph().as_default()

Create input placeholders:

training_features = ts.placeholder()
training_classes = ts.placeholder()

Build a model:

weights = ts.Variable(np.random.randn(2, 2))
biases = ts.Variable(np.random.randn(2))
model = ts.softmax(ts.add(ts.matmul(X, W), b))

Create training criterion:

loss = ts.negative(ts.reduce_sum(ts.reduce_sum(ts.multiply(training_classes, ts.log(model)), axis=1)))

Create optimizer:

optimizer = ts.train.GradientDescentOptimizer(learning_rate=0.01).minimize(J)

Create placeholder inputs:

feed_dict = {
	training_features: my_training_features,
	training_classes: my_training_classes
}

Create session:

session = ts.Session()

Train:

for step in range(100):
	loss_value = session.run(loss, feed_dict)
	if step % 10 == 0:
		print("Step:", step, " Loss:", loss_value)
	session.run(optimizer, feed_dict)

Retrieve model parameters:

weights_value = session.run(weigths)
biases_value = session.run(biases)

Check out the examples directory for more.

Nearby in the ranking
Similar items