TypeScript पर मशीन लर्निंग: 2024 में ML के लिए लाइब्रेरियों का अवलोकन
TypeScript न केवल वेब डेवलपमेंट बल्कि Data Science में भी मजबूती से अपनी जगह बना रहा है। स्टैटिक टाइपिंग और JavaScript के साथ संगतता के कारण, यह मशीन लर्निंग (ML) मॉडल बनाने के लिए एक सुविधाजनक उपकरण बन जाता है जो सीधे ब्राउज़र या सर्वर (Node.js) पर काम करते हैं। इस लेख में, हम TypeScript पर मशीन लर्निंग के लिए प्रमुख लाइब्रेरियों, उनकी विशेषताओं, कोड उदाहरणों और उपयोग के परिदृश्यों पर चर्चा करेंगे।
1. TensorFlow.js — ब्राउज़र में ML के लिए मुख्य फ्रेमवर्क
TensorFlow.js लोकप्रिय TensorFlow फ्रेमवर्क का JavaScript/TypeScript पोर्ट है। यह ब्राउज़र और Node.js दोनों में मॉडलों के प्रशिक्षण और अनुमान को चलाने की अनुमति देता है। लाइब्रेरी WebGL और WebGPU के माध्यम से GPU त्वरण का समर्थन करती है, जो प्रदर्शन को बढ़ाता है।
मुख्य विशेषताएं:
- उच्च-स्तरीय API (tf.sequential, tf.model) के साथ न्यूरल नेटवर्क बनाना।
- TensorFlow Hub से पूर्व-प्रशिक्षित मॉडल लोड करना।
- Python संस्करण के TensorFlow से मॉडलों को .json प्रारूप में बदलना।
- टेंसर, ऑप्टिमाइज़र और लेयर्स के साथ काम करना।
उदाहरण: TypeScript पर लीनियर रिग्रेशन
import * as tf from '@tensorflow/tfjs';
// डेटा: संबंध y = 2x - 1const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);
// मॉडल बनानाconst model = tf.sequential();model.add(tf.layers.dense({units: 1, inputShape: [1]}));
// कंपाइल करनाmodel.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
// प्रशिक्षणmodel.fit(xs, ys, {epochs: 250}).then(() => { model.predict(tf.tensor2d([10], [1, 1])).print(); // आउटपुट: ~19 (2*10 - 1 = 19 के करीब)});2. ML5.js — क्रिएटिव ML के लिए लाइब्रेरी
ML5.js TensorFlow.js के ऊपर बनाई गई है और उपयोग में आसानी पर केंद्रित है। यह छवि पहचान, ध्वनि, टेक्स्ट और जेस्चर के लिए तैयार मॉडल प्रदान करती है। यह शैक्षिक परियोजनाओं और प्रोटोटाइपिंग के लिए आदर्श है।
उदाहरण: छवि वर्गीकरण
import * as ml5 from 'ml5';
// पूर्व-प्रशिक्षित MobileNet मॉडल लोड करनाconst classifier = ml5.imageClassifier('MobileNet');
// छवि का वर्गीकरणconst img = document.getElementById('myImage') as HTMLImageElement;classifier.classify(img, (err: Error | null, results: any[]) => { if (err) console.error(err); else console.log('परिणाम:', results[0].label);});3. Brain.js — Node.js और ब्राउज़र के लिए न्यूरल नेटवर्क
Brain.js JavaScript/TypeScript पर न्यूरल नेटवर्क बनाने के लिए एक हल्की लाइब्रेरी है। यह विभिन्न आर्किटेक्चर का समर्थन करती है: LSTM, RNN, GRU। यह समय श्रृंखला पूर्वानुमान और टेक्स्ट प्रोसेसिंग कार्यों के लिए उपयुक्त है।
उदाहरण: XOR के लिए सरल न्यूरल नेटवर्क
import 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] }]);
const output = net.run([1, 0]); // ~0.99console.log(output);4. Synaptic — आर्किटेक्चरल रूप से लचीली लाइब्रेरी
Synaptic किसी भी आर्किटेक्चर के न्यूरल नेटवर्क बनाने की अनुमति देता है, जिसमें मल्टी-लेयर परसेप्ट्रॉन, फीडबैक नेटवर्क और सेल्फ-ऑर्गनाइज़िंग कोहोनन मैप शामिल हैं। इसे किसी निर्भरता की आवश्यकता नहीं है और यह ब्राउज़र में काम करता है।
उदाहरण: परसेप्ट्रॉन बनाना
import { Architect, Trainer } from 'synaptic';
const network = new Architect.Perceptron(2, 3, 1);const trainer = new Trainer(network);
trainer.train([ { input: [0, 0], output: [0] }, { input: [0, 1], output: [1] }, { input: [1, 0], output: [1] }, { input: [1, 1], output: [0] }], { iterations: 1000 });
console.log(network.activate([1, 0])); // ~0.98