Node.js में TensorFlow.js

यह मार्गदर्शिका Node.js के लिए उपलब्ध TensorFlow.js पैकेज और API का वर्णन करती है।

Node.js में TensorFlow.js को कैसे इंस्टॉल करें, यह जानने के लिए सेटअप ट्यूटोरियल देखें। इंस्टॉलेशन और समर्थन पर अतिरिक्त जानकारी के लिए, Node.js रिपॉजिटरी के लिए TensorFlow.js देखें।

टेन्सरफ्लो सीपीयू

TensorFlow CPU पैकेज को निम्नानुसार आयात किया जा सकता है:

import * as tf from '@tensorflow/tfjs-node'

जब आप इस पैकेज से TensorFlow.js आयात करते हैं, तो आपको एक मॉड्यूल मिलता है जो TensorFlow C बाइनरी द्वारा त्वरित होता है और CPU पर चलता है। CPU पर TensorFlow रैखिक बीजगणित गणना को अनुकूलित करने के लिए हार्डवेयर त्वरण का उपयोग करता है।

यह पैकेज Linux, Windows और macOS प्लेटफ़ॉर्म पर काम करता है जहाँ TensorFlow समर्थित है।

टेन्सरफ्लो जीपीयू

TensorFlow GPU पैकेज को निम्नानुसार आयात किया जा सकता है:

import * as tf from '@tensorflow/tfjs-node-gpu'

सीपीयू पैकेज की तरह, मॉड्यूल को टेन्सरफ्लो सी बाइनरी द्वारा त्वरित किया जाता है। लेकिन GPU पैकेज CUDA के साथ GPU पर टेंसर ऑपरेशन चलाता है, इसलिए यह केवल Linux पर उपलब्ध है। यह बाइंडिंग अन्य बाइंडिंग विकल्पों की तुलना में कम से कम तीव्रता का एक क्रम हो सकता है।

शुद्ध जावास्क्रिप्ट के लिए TensorFlow

TensorFlow.js का एक संस्करण भी है जो सीपीयू पर शुद्ध जावास्क्रिप्ट चलाता है। इसे इस प्रकार आयात किया जा सकता है:

import * as tf from '@tensorflow/tfjs'

यह पैकेज वही पैकेज है जिसे आप ब्राउज़र में उपयोग करेंगे। इस पैकेज में, ऑपरेशन सीपीयू पर वेनिला जावास्क्रिप्ट में चलाए जाते हैं। यह पैकेज दूसरों की तुलना में बहुत छोटा है क्योंकि इसमें TensorFlow बाइनरी की आवश्यकता नहीं है, लेकिन यह बहुत धीमा भी है।

क्योंकि यह पैकेज TensorFlow पर निर्भर नहीं है, इसका उपयोग Node.js का समर्थन करने वाले अधिक उपकरणों में किया जा सकता है। यह Linux, Windows और macOS प्लेटफ़ॉर्म तक सीमित नहीं है जो TensorFlow का समर्थन करते हैं।

उत्पादन संबंधी विचार

Node.js बाइंडिंग TensorFlow.js के लिए एक बैकएंड प्रदान करती है जो संचालन को समकालिक रूप से लागू करती है। इसका मतलब यह है कि, उदाहरण के लिए, जब आप tf.matMul(a, b) जैसे किसी ऑपरेशन को कॉल करते हैं, तो यह ऑपरेशन पूरा होने तक मुख्य थ्रेड को ब्लॉक कर देगा।

इस कारण से, बाइंडिंग स्क्रिप्ट और ऑफ़लाइन कार्यों के लिए उपयुक्त हैं। यदि आप वेब सर्वर जैसे उत्पादन एप्लिकेशन में Node.js बाइंडिंग का उपयोग करना चाहते हैं, तो आपको एक जॉब कतार स्थापित करनी चाहिए या वर्कर थ्रेड सेट अप करना चाहिए ताकि आपका TensorFlow.js कोड मुख्य थ्रेड को ब्लॉक न करे।

शहद की मक्खी

जब आप उपरोक्त किसी भी विकल्प का उपयोग करके पैकेज को tf के रूप में आयात करते हैं, तो सभी सामान्य TensorFlow.js प्रतीक आयातित मॉड्यूल पर दिखाई देते हैं।

tf.ब्राउज़र

tf.browser.* नेमस्पेस में एपीआई Node.js में उपयोग करने योग्य नहीं हैं क्योंकि वे ब्राउज़र-विशिष्ट एपीआई पर निर्भर करते हैं। tf.browser API की सूची के लिए, ब्राउज़र देखें।

tf.नोड

दो Node.js पैकेज एक नेमस्पेस, tf.node भी प्रदान करते हैं, जिसमें Node.js-विशिष्ट API (उदाहरण के लिए, TensorBoard) शामिल हैं।

यहां Node.js में TensorBoard को सारांश निर्यात करने का एक उदाहरण दिया गया है:

const model = tf.sequential();
model.add(tf.layers.dense({ units: 1, inputShape: [200] }));
model.compile({
  loss: 'meanSquaredError',
  optimizer: 'sgd',
  metrics: ['MAE']
});

// Generate some random fake data for demo purposes.
const xs = tf.randomUniform([10000, 200]);
const ys = tf.randomUniform([10000, 1]);
const valXs = tf.randomUniform([1000, 200]);
const valYs = tf.randomUniform([1000, 1]);

// Start model training process.
async function train() {
  await model.fit(xs, ys, {
    epochs: 100,
    validationData: [valXs, valYs],
    // Add the tensorBoard callback here.
    callbacks: tf.node.tensorBoard('/tmp/fit_logs_1')
  });
}
train();