deepbox
Quick Start
Get up and running with Deepbox in minutes. This guide covers the most common operations across all modules.
tensor-basics.ts
import { tensor, add, parameter } from "deepbox/ndarray";// Create tensorsconst a = tensor([[1, 2], [3, 4]]);const b = tensor([[5, 6], [7, 8]]);const c = add(a, b);// c -> tensor([[6, 8], [10, 12]])// Automatic differentiationconst x = parameter([2, 3]);const y = x.mul(x).sum();y.backward();// x.grad -> tensor([4, 6]) (dy/dx = 2x)dataframe-basics.ts
import { DataFrame } from "deepbox/dataframe";const df = new DataFrame({ name: ["Alice", "Bob", "Charlie", "David"], age: [25, 30, 35, 28], salary: [50000, 60000, 75000, 55000], department: ["IT", "HR", "IT", "HR"],});const itDept = df.filter((row) => row.department === "IT");const avgSalary = df.groupBy("department").agg({ salary: "mean" });const sorted = df.sort("salary", false);ml-pipeline.ts
import { trainTestSplit, StandardScaler } from "deepbox/preprocess";import { RandomForestClassifier } from "deepbox/ml";import { accuracy, f1Score } from "deepbox/metrics";import { loadIris } from "deepbox/datasets";// Load dataconst { data: X, target: y } = loadIris();// Split and scaleconst [XTrain, XTest, yTrain, yTest] = trainTestSplit(X, y, { testSize: 0.2, randomState: 42,});const scaler = new StandardScaler();scaler.fit(XTrain);const XTrainScaled = scaler.transform(XTrain);const XTestScaled = scaler.transform(XTest);// Train and evaluateconst model = new RandomForestClassifier({ nEstimators: 100, maxDepth: 10 });model.fit(XTrainScaled, yTrain);const yPred = model.predict(XTestScaled);console.log("Accuracy:", accuracy(yTest, yPred));console.log("F1 Score:", f1Score(yTest, yPred));neural-network.ts
import { Sequential, Linear, ReLU, Dropout } from "deepbox/nn";import { Adam } from "deepbox/optim";import { parameter, GradTensor } from "deepbox/ndarray";const model = new Sequential( new Linear(10, 64), new ReLU(), new Dropout(0.2), new Linear(64, 32), new ReLU(), new Linear(32, 1));const optimizer = new Adam(model.parameters(), { lr: 0.01 });// Training dataconst xTrain = parameter(Array.from({ length: 4 }, () => Array.from({ length: 10 }, () => Math.random())));const yTrain = parameter([[1], [0], [1], [0]]);for (let epoch = 0; epoch < 100; epoch++) { optimizer.zeroGrad(); const output = model.forward(xTrain) as GradTensor; const diff = output.sub(yTrain); const loss = diff.mul(diff).mean(); // MSE loss loss.backward(); optimizer.step();}plotting.ts
import { scatter, plot, hist, heatmap, saveFig } from "deepbox/plot";import { tensor } from "deepbox/ndarray";scatter(tensor([1, 2, 3, 4, 5]), tensor([2, 4, 5, 4, 6]), { color: "#1f77b4" });plot(tensor([1, 2, 3, 4, 5]), tensor([2, 4, 5, 4, 6]), { color: "#ff7f0e" });hist(tensor([1, 2, 2, 3, 3, 3, 4, 4, 5]), { bins: 5 });heatmap(tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]]));saveFig("output.svg");