Mini-Model From Scratch: Two-Layer MLP
Here is a two-layer MLP for binary classification implementation on toy data, using no external libs. We’ll mimic TensorFlow logic: forward pass + backward gradients + updates. (This helps you understand what TF automates.)
TensorFlow would: (1) define layers, (2) run forward, (3) use a GradientTape to get grads, (4) call optimizer.apply_gradients. Everything else (placement, kernels, shapes) comes “for free.”
xxxxxxxxxx67
    train()import random, mathdef sigmoid(x): return 1/(1+math.exp(-x))def dsigmoid(y): return y*(1-y)def relu(x): return x if x>0 else 0.0def drelu(x): return 1.0 if x>0 else 0.0def dot(w, x): return sum(wi*xi for wi,xi in zip(w,x))def make_blobs(n=200, seed=0):    random.seed(seed)    X, Y = [], []    for _ in range(n//2):        X.append([random.gauss(-1,0.5), random.gauss(0,0.5)]); Y.append(0.0)    for _ in range(n//2):        X.append([random.gauss( 1,0.5), random.gauss(0,0.5)]); Y.append(1.0)    return X, Ydef train(hidden=8, epochs=800, lr=0.05):    X, Y = make_blobs()    in_dim = 2    W1 = [[random.uniform(-0.5,0.5) for _ in range(in_dim)] for _ in range(hidden)]    b1 = [0.0]*hidden    W2 = [random.uniform(-0.5,0.5) for _ in range(hidden)]    b2 = 0.0    for ep in range(epochs):        dW1 = [[0.0]*in_dim for _ in range(hidden)]        db1 = [0.0]*hiddenOUTPUT
:001 > Cmd/Ctrl-Enter to run, Cmd/Ctrl-/ to comment


