First commit.

This commit is contained in:
2025-11-19 10:42:46 +01:00
commit 22c29a8939
33 changed files with 5985 additions and 0 deletions

27
source/mnist_loader.js Normal file
View File

@@ -0,0 +1,27 @@
export async function loadMNIST(device, sampleCount = 1000) {
async function loadFile(path) {
const res = await fetch(path);
return new Uint8Array(await res.arrayBuffer());
}
const imgRaw = await loadFile("../../models/train-images-idx3-ubyte");
const lblRaw = await loadFile("../../models/train-labels-idx1-ubyte");
const header = 16;
const fullCount = lblRaw.length - 8;
const count = Math.min(sampleCount, fullCount);
const images = new Float32Array(count * 28 * 28);
const labels = new Uint32Array(count);
for (let i = 0; i < count; i++) {
labels[i] = lblRaw[8 + i];
const src = header + i * 784;
const dst = i * 784;
for (let j = 0; j < 784; j++) {
images[dst + j] = imgRaw[src + j] / 255;
}
}
return { images, labels, count };
}