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'

সিপিইউ প্যাকেজের মতো, মডিউলটি টেনসরফ্লো সি বাইনারি দ্বারা ত্বরান্বিত হয়। কিন্তু জিপিইউ প্যাকেজটি CUDA সহ GPU-তে টেনসর অপারেশন চালায়, তাই এটি শুধুমাত্র লিনাক্সে উপলব্ধ। এই বাইন্ডিং অন্য বাইন্ডিং অপশনের তুলনায় কমপক্ষে একটি ক্রম দ্রুত হতে পারে।

বিশুদ্ধ জাভাস্ক্রিপ্টের জন্য টেনসরফ্লো

এছাড়াও TensorFlow.js এর একটি সংস্করণ রয়েছে যা CPU-তে বিশুদ্ধ জাভাস্ক্রিপ্ট চালায়। এটি নিম্নরূপ আমদানি করা যেতে পারে:

import * as tf from '@tensorflow/tfjs'

এই প্যাকেজটি একই প্যাকেজ যা আপনি ব্রাউজারে ব্যবহার করবেন। এই প্যাকেজে, অপারেশনগুলি CPU-তে ভ্যানিলা জাভাস্ক্রিপ্টে চালানো হয়। এই প্যাকেজটি অন্যদের তুলনায় অনেক ছোট কারণ এটির টেনসরফ্লো বাইনারি প্রয়োজন নেই, তবে এটি অনেক ধীর।

যেহেতু এই প্যাকেজটি TensorFlow-এর উপর নির্ভর করে না, এটি Node.js সমর্থন করে এমন আরও ডিভাইসে ব্যবহার করা যেতে পারে। এটি শুধুমাত্র Linux, Windows এবং macOS প্ল্যাটফর্মের মধ্যে সীমাবদ্ধ নয় যা TensorFlow সমর্থন করে।

উৎপাদন বিবেচনা

Node.js বাইন্ডিংগুলি TensorFlow.js-এর জন্য একটি ব্যাকএন্ড প্রদান করে যা সিঙ্ক্রোনাসভাবে ক্রিয়াকলাপ প্রয়োগ করে। এর মানে হল, উদাহরণস্বরূপ, আপনি যখন tf.matMul(a, b) এর মতো একটি অপারেশনকে কল করেন, এটি অপারেশনটি সম্পূর্ণ না হওয়া পর্যন্ত মূল থ্রেডটিকে ব্লক করবে।

এই কারণে, বাইন্ডিংগুলি স্ক্রিপ্ট এবং অফলাইন কাজের জন্য উপযুক্ত। আপনি যদি একটি ওয়েব সার্ভারের মতো একটি প্রোডাকশন অ্যাপ্লিকেশনে Node.js বাইন্ডিংগুলি ব্যবহার করতে চান, তাহলে আপনাকে একটি কাজের সারি সেট আপ করতে হবে বা কর্মী থ্রেডগুলি সেট আপ করতে হবে যাতে আপনার TensorFlow.js কোড মূল থ্রেডটিকে ব্লক না করে৷

এপিআই

আপনি উপরের যেকোনো বিকল্প ব্যবহার করে প্যাকেজটিকে tf হিসাবে আমদানি করলে, আমদানি করা মডিউলে সাধারণ TensorFlow.js চিহ্নগুলি উপস্থিত হয়।

tf.browser

tf.browser.* namespace-এ APIs Node.js-এ ব্যবহারযোগ্য নয় কারণ তারা ব্রাউজার-নির্দিষ্ট API-এর উপর নির্ভর করে। tf.browser API-এর তালিকার জন্য, ব্রাউজার দেখুন।

tf.node

দুটি Node.js প্যাকেজ একটি নেমস্পেসও প্রদান করে, tf.node , যেটিতে Node.js-নির্দিষ্ট APIs রয়েছে (উদাহরণস্বরূপ, 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();