20 Commits

Author SHA1 Message Date
Quinn
4c7b994a5e Abstract OpenBLAS calls into Tensor.madd() 2025-11-08 15:42:32 -06:00
Quinn
3ff2ec4f8b Chess FEN dataloading
Expects bullet-style text input
FEN | EVAL | WDL
2025-11-08 12:33:17 -06:00
Quinn
5f6946d5f5 Allow multi-channel inputs to CNNs 2025-11-04 18:01:02 -06:00
Quinn
7b48df4e23 Convolutional and maxpool layers
Also changes to allow multidimensional values for Layer::values
and allowing activations to have inputs of dimensionality >= 2
2025-11-03 18:17:10 -06:00
Quinn
c6d266f3c3 Switch to using OpenBLAS for forward() and backward() 2025-11-01 23:06:44 -05:00
Quinn
dea54ae1f7 Switch so that net.forward() now takes an entire batch all at once
A lot of performance is left on the table here
However this on it's own is a huge speedup
2025-11-01 22:47:19 -05:00
Quinn
25acae3ad3 Dyanmically sized tensors 2025-10-31 16:46:16 -05:00
Quinn
e293e0ea78 Rework tensors, switch to C++23 2025-10-29 22:35:12 -05:00
Quinn
1fa79d46c0 Add the number of learnable params to the network's << operator 2025-10-29 17:40:14 -05:00
Quinn
ebc4a53753 20x speedups
OpenBLAS, dataloader rewriting, complete overhaul of the threading system

Guido. It's time.
2025-10-27 22:52:46 -05:00
Quinn
bf75200d4c Simplify network construction for clarity 2025-10-26 21:49:29 -05:00
Quinn
c30b213ac9 Custom metrics for callbacks and an autosave callback 2025-10-26 21:49:27 -05:00
Quinn
648ffa1116 Simple save + load 2025-10-26 11:25:44 -05:00
Quinn
01c0c71175 Callbacks!
DropLROnPlateau(u64 patience, float factor)
StopWhenNoProgress(u64 patience)
2025-10-25 17:45:12 -05:00
Quinn
7d7466e79b Cross entropy loss 2025-10-24 20:07:27 -05:00
Quinn
66136d5f13 Adam optimizer 2025-10-24 18:55:55 -05:00
Quinn
0b85293c8d Multithreading 2025-10-22 22:38:53 -05:00
Quinniboi10
31f9c7b265 Working learner, dataloader, and optimizer 2025-10-22 17:31:36 -05:00
Quinniboi10
c691296a7b Minor bugfix and << overload for tensors 2025-10-19 00:24:15 -05:00
Quinniboi10
db8be206d5 Feed-forward network support 2025-10-18 23:26:26 -05:00