<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Numpy on Sanketh's Blog</title><link>https://sankethbk.github.io/blog/tags/numpy/</link><description>Recent content in Numpy on Sanketh's Blog</description><generator>Hugo -- 0.166.0</generator><language>en-us</language><lastBuildDate>Mon, 14 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://sankethbk.github.io/blog/tags/numpy/index.xml" rel="self" type="application/rss+xml"/><item><title>Training a 2-Layer Network in NumPy: From Scalar to Vectorized Backprop</title><link>https://sankethbk.github.io/blog/posts/ml/2026-09-14-1-training-a-2-layer-network-in-numpy/</link><pubDate>Mon, 14 Sep 2026 00:00:00 +0000</pubDate><guid>https://sankethbk.github.io/blog/posts/ml/2026-09-14-1-training-a-2-layer-network-in-numpy/</guid><description>&lt;h1 id="training-a-2-layer-network-in-numpy-from-scalar-to-vectorized-backprop"&gt;Training a 2-Layer Network in NumPy: From Scalar to Vectorized Backprop&lt;/h1&gt;
&lt;p&gt;The &lt;a href="https://sankethbk.github.io/blog/posts/ml/2026-09-12-3-backpropagation-in-a-fully-connected-network"&gt;previous note&lt;/a&gt; did the backward pass for a small 2-layer network by hand, one scalar at a time. That is the best way to understand what backprop actually does.&lt;/p&gt;
&lt;p&gt;This note takes the next step: turn that scalar walk into compact, vectorized NumPy code. The math is unchanged; the only thing that changes is notation. I will introduce every matrix slowly — what its rows and columns mean, where the division by the batch size comes from, and why it is exactly the same algorithm you already did by hand.&lt;/p&gt;</description></item><item><title>ML Refresher: Linear and Logistic Regression</title><link>https://sankethbk.github.io/blog/posts/ml/2026-09-07-ml-refresher-linear-logistic-regression/</link><pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate><guid>https://sankethbk.github.io/blog/posts/ml/2026-09-07-ml-refresher-linear-logistic-regression/</guid><description>&lt;h1 id="ml-refresher-linear-and-logistic-regression"&gt;ML Refresher: Linear and Logistic Regression&lt;/h1&gt;
&lt;p&gt;This is the first note in the ML → Deep Learning → Transformers → LLMs series. The goal is to rebuild working memory of the basics before we get to neural networks: what a model is, how a loss function measures error, and how gradient descent tunes parameters.&lt;/p&gt;
&lt;p&gt;We will implement linear regression and logistic regression from scratch in NumPy, then compare with scikit-learn. If the code and gradients feel obvious, you are ready for the next note (computational graphs and backprop). If not, this is exactly the foundation to lock down first.&lt;/p&gt;</description></item></channel></rss>