Dycosystem — Devlog
What’s up guys! Big one this time — the network can actually think now.
Wired the Neural_network class up to a real feedforward pass. Before this it was just remembering how many nodes it had — now it actually takes an input and produces a guess.
Feedforward is alive
- Added weight matrices between input→hidden and hidden→output, plus bias matrices for each layer, all randomized on creation
- Added a sigmoid activation function so the outputs squash into a usable range instead of just raw numbers
-
feedforward(input)now does the full pass: multiply by weights, add the bias, squash through sigmoid, twice (once per layer), and hands back a real guess
Ran it with a plain input array [1, 0] and got an actual output back. First time this thing has done anything resembling thinking, even if the “thinking” is currently just random weights.
Matrix got two new helpers
-
Matrix.make_from_array()turns a plain array into a column matrix -
make_to_array()turns a matrix back into a plain array
Needed both since the network has to convert real inputs into matrix form to do the math, then convert the result back into something normal code can use.
Also fixed something small
randomize_matrix() used to fill values with random integers 0-9, which makes no sense for neural network weights. Changed it to random floats between -1 and 1, which is the actual range weights should start in.
What’s still missing
train() exists but it’s empty right now — the network can guess, it just can’t learn from being wrong yet. That’s next.
Genuinely exciting one, this is the first time the neural network side of the project has produced output instead of just being scaffolding. Thanks for reading, see you in the next one!
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.