নোডে TensorFlow.js

টেনসরফ্লো সিপিইউ

TensorFlow CPU প্যাকেজটি নিম্নরূপ আমদানি করা যেতে পারে:

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

এই প্যাকেজ থেকে TensorFlow.js আমদানি করার সময়, আপনি যে মডিউলটি পাবেন তা TensorFlow C বাইনারি দ্বারা ত্বরান্বিত হবে এবং CPU-তে চলবে। সিপিইউতে টেনসরফ্লো হার্ডওয়্যার ত্বরণ ব্যবহার করে হুডের নীচে রৈখিক বীজগণিত গণনাকে ত্বরান্বিত করতে।

এই প্যাকেজটি Linux, Windows এবং Mac প্ল্যাটফর্মে কাজ করবে যেখানে TensorFlow সমর্থিত।

টেনসরফ্লো জিপিইউ

TensorFlow GPU প্যাকেজটি নিম্নরূপ আমদানি করা যেতে পারে:

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

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

ভ্যানিলা সিপিইউ

ভ্যানিলা সিপিইউ অপারেশনের সাথে চলমান TensorFlow.js এর সংস্করণটি নিম্নরূপ আমদানি করা যেতে পারে:

import * as tf from '@tensorflow/tfjs'

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

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

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

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

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

এপিআই

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

tf.browser

স্বাভাবিক TensorFlow.js প্যাকেজের মধ্যে মধ্যে প্রতীক tf.browser.* নামস্থান না Node.js উপভোগ্য হিসাবে তারা ব্রাউজার-নির্দিষ্ট API গুলি ব্যবহার করা হবে।

বর্তমানে, এগুলি হল:

  • tf.browser.fromPixels
  • tf.browser.toPixels

tf.node

দুই Node.js প্যাকেজ একটি নামস্থান প্রদান tf.node , যা নোড-নির্দিষ্ট API গুলি ধারণ করে।

TensorBoard হল Node.js-নির্দিষ্ট API-এর একটি উল্লেখযোগ্য উদাহরণ।

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 purpose.
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();