जावास्क्रिप्ट पर मशीन लर्निंग: Node.js के लिए लाइब्रेरीज़
हालाँकि Python मशीन लर्निंग के क्षेत्र में प्रमुख भाषा बना हुआ है, जावास्क्रिप्ट (विशेष रूप से Node.js) का पारिस्थितिकी तंत्र सक्रिय रूप से विकसित हो रहा है और ML के लिए शक्तिशाली उपकरण प्रदान करता है। जावास्क्रिप्ट का उपयोग करके आप ML-समाधान बना सकते हैं जो वेब एप्लिकेशन के साथ आसानी से एकीकृत होते हैं, सर्वर पर रीयल-टाइम में काम करते हैं या ब्राउज़र में भी चलते हैं। यदि आपका प्रोजेक्ट पहले से Node.js का उपयोग करता है, तो मशीन लर्निंग लाइब्रेरीज़ को शामिल करना Python पर स्विच करने की तुलना में अधिक स्वाभाविक हो सकता है।
इस लेख में, हम जावास्क्रिप्ट (Node.js) पर मशीन लर्निंग के लिए प्रमुख लाइब्रेरीज़, उनकी विशेषताओं और उपयोग के उदाहरणों पर चर्चा करेंगे।
1. TensorFlow.js
TensorFlow.js जावास्क्रिप्ट पर मशीन लर्निंग के लिए सबसे शक्तिशाली और लोकप्रिय लाइब्रेरी है, जिसे मूल TensorFlow से पोर्ट किया गया है। यह ब्राउज़र और Node.js दोनों में मॉडल चलाने का समर्थन करता है, CUDA या WebGL के माध्यम से हार्डवेयर त्वरण का उपयोग करता है।
मुख्य क्षमताएँ:
- पूर्व-प्रशिक्षित मॉडल चलाना (MobileNet, BERT, YOLO)।
- शुरू से न्यूरल नेटवर्क प्रशिक्षित करना।
- ट्रांसफर लर्निंग (मौजूदा मॉडलों को फिर से प्रशिक्षित करना)।
- Node.js पर CUDA के माध्यम से GPU समर्थन।
- Python TensorFlow से मॉडल कन्वर्ट करना (TFJS प्रारूप)।
उदाहरण: TensorFlow.js के साथ लीनियर रिग्रेशन
const tf = require('@tensorflow/tfjs-node');
// डेटा: x -> y (y = 2x - 1)const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);const ys = tf.tensor2d([1, 3, 5, 7], [4, 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: 200}).then(() => { // x = 5 के लिए भविष्यवाणी model.predict(tf.tensor2d([5], [1, 1])).print();});2. Brain.js
Brain.js न्यूरल नेटवर्क के लिए एक सरल और सहज लाइब्रेरी है। यह शुरुआती और छोटे प्रोजेक्ट्स के लिए बहुत उपयुक्त है। यह मल्टी-लेयर परसेप्ट्रॉन (MLP), रिकरंट नेटवर्क (RNN) और लॉन्ग शॉर्ट-टर्म मेमोरी (LSTM) नेटवर्क का समर्थन करता है।
मुख्य क्षमताएँ:
- न्यूनतम प्रवेश सीमा — कुछ पंक्तियों में API।
- ब्लॉकिंग से बचने के लिए एसिंक्रोनस प्रशिक्षण का समर्थन।
- प्रशिक्षित मॉडलों को JSON में सहेजना और लोड करना।
- Node.js और ब्राउज़र दोनों में काम करता है।
उदाहरण: Brain.js के साथ XOR
const brain = require('brain.js');
const net = new brain.NeuralNetwork();
// XOR के लिए प्रशिक्षण डेटा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);3. Synaptic
Synaptic एक आर्किटेक्चर-स्वतंत्र न्यूरल नेटवर्क लाइब्रेरी है। यह लगभग किसी भी प्रकार के नेटवर्क बनाने की अनुमति देता है: परसेप्ट्रॉन, मल्टी-लेयर नेटवर्क, मेमोरी नेटवर्क (LSTM), हॉपफील्ड नेटवर्क और अन्य। इस लाइब्रेरी की कोई बाहरी निर्भरता नहीं है।
मुख्य क्षमताएँ:
- आर्किटेक्चर बनाने में लचीलापन।
- विभिन्न प्रशिक्षण एल्गोरिदम का समर्थन (SGD, Momentum, Nesterov)।
- नेटवर्क विज़ुअलाइज़र (ब्राउज़र में)।
- मॉडल सहेजने/लोड करने का समर्थन।
उदाहरण: Synaptic के साथ एक सरल न्यूरल नेटवर्क
const synaptic = require('synaptic');const {Layer, Network, Trainer} = synaptic;
const inputLayer = new Layer(2);const hiddenLayer = new Layer(3);const outputLayer = new Layer(1);
inputLayer.connect(hiddenLayer);hiddenLayer.connect(outputLayer);
const myNetwork = new Network({input: inputLayer, hidden: [hid