Maschinelles Lernen mit TypeScript: Überblick über Bibliotheken und Werkzeuge
TypeScript ist nicht nur eine strenge Typisierung für JavaScript. Dank seines Ökosystems und der Kompatibilität mit JS wird es zu einer leistungsstarken Plattform für maschinelles Lernen (ML) direkt im Browser oder auf dem Server (Node.js). In diesem Artikel betrachten wir vier Schlüsselbibliotheken, mit denen Sie ML-Modelle in TypeScript entwickeln, trainieren und ausführen können.
1. TensorFlow.js — das Flaggschiff von ML in TypeScript
TensorFlow.js ist ein Port des beliebten Frameworks TensorFlow auf JavaScript/TypeScript. Es unterstützt sowohl den Browser als auch Node.js. Der Hauptvorteil ist die Möglichkeit, Training und Inferenz (Ausgabe) direkt auf der Client-Seite durchzuführen, ohne Daten an den Server zu senden.
Installation
npm install @tensorflow/tfjsnpm install @tensorflow/tfjs-node // für Node.js mit CPU-Beschleunigungnpm install @tensorflow/tfjs-node-gpu // für GPUBeispiel: Lineare Regression in TypeScript
import * as tf from '@tensorflow/tfjs';
// Einfaches Modell erstellen: y = 2x - 1const model = tf.sequential();model.add(tf.layers.dense({ units: 1, inputShape: [1] }));
// Kompilierungmodel.compile({ optimizer: 'sgd', loss: 'meanSquaredError' });
// Trainingsdatenconst xs = tf.tensor2d([0, 1, 2, 3, 4], [5, 1]);const ys = tf.tensor2d([-1, 1, 3, 5, 7], [5, 1]);
// Trainingmodel.fit(xs, ys, { epochs: 250 }).then(() => { // Vorhersage für x=5 const output = model.predict(tf.tensor2d([5], [1, 1])) as tf.Tensor; output.print(); // ≈ 9 (2*5 - 1)});TensorFlow.js unterstützt auch das Laden vortrainierter Modelle (z. B. MobileNet zur Bildklassifikation) und die Arbeit mit Berechnungsgraphen.
2. ML5.js — ML für kreative Projekte
ML5.js baut auf TensorFlow.js auf und ist auf einfache Bedienung ausgelegt. Ideal für Künstler, Designer und ML-Neulinge. Die Bibliothek bietet High-Level-APIs für Aufgaben wie Klassifikation, Textgenerierung, Gestenerkennung usw.
Installation
npm install ml5Beispiel: Bildklassifikation (MobileNet)
import * as ml5 from 'ml5';
// Vortrainiertes MobileNet-Modell ladenconst classifier = ml5.imageClassifier('MobileNet');
// Bild per URL klassifizierenconst img = new Image();img.crossOrigin = 'anonymous';img.src = 'https://example.com/cat.jpg';
img.onload = () => { classifier.classify(img, (err: Error | null, results: any[]) => { if (err) { console.error(err); return; } console.log('Ergebnisse:', results); // [{ label: 'tabby cat', confidence: 0.98 }, ...] });};ML5.js lädt automatisch die Modellgewichte und bietet einen einfachen Callback. Hervorragend geeignet für schnelle Prototypen und interaktive Installationen.
3. Brain.js — neuronale Netze ohne Komplexität
Brain.js ist eine Bibliothek zur Erstellung neuronaler Netze mit minimalem Codeaufwand. Unterstützt Feedforward-Netze, LSTM und RNN. Funktioniert sowohl im Browser als auch in Node.js.
Installation
npm install brain.jsBeispiel: XOR-Funktion (exklusives Oder)
import * as brain from 'brain.js';
const net = new brain.NeuralNetwork();
net.train([ { input: [0, 0], output: [0] }, { input: [0, 1], output: [1] }, { input: [1, 0], output: [1] }, { input: [1, 1], output: [0] }], { iterations: 10000, errorThresh: 0.005});
const output = net.run([1, 0]); // ≈ 0.98 (nahe 1)console.log(`Ergebnis: ${output}`);Brain.js normalisiert Daten automatisch und unterstützt das Speichern/Laden trainierter Modelle im JSON-Format.
4. Synaptic — architektonische Flexibilität
Synaptic ist eine Bibliothek zur Erstellung komplexer neuronaler Netzarchitekturen: Perzeptronen, mehrschichtige Netze
Auch in der Bibliothek
Rate Limiting in C++: Bibliotheken und Implementierung zum Schutz von APIs
Generierung von PDF-Berichten in Go (Golang): Bibliotheken und Beispiele
Reaktive Programmierung in Swift: Combine und RxSwift für iOS/macOS
Arbeiten mit Markdown in C++: Bibliotheken, Parser und Werkzeuge