কম্পিউটার টিউটোরিয়াল

পাইথনে TensorFlow-এ লিনিয়ার রিগ্রেশন কীভাবে কাজ করে

TensorFlow হল Google প্রদত্ত একটি মেশিন লার্নিং ফ্রেমওয়ার্ক। এটি একটি ওপেন-সোর্স ফ্রেমওয়ার্ক যা পাইথনের সাথে সংযোগে অ্যালগরিদম, ডিপ লার্নিং অ্যাপ্লিকেশন ইত্যাদি বাস্তবায়নে ব্যবহৃত হয়। এটি গবেষণা এবং প্রোডাকশন উদ্দেশ্যে ব্যবহৃত হয়। এতে জটিল গাণিতিক অপারেশন দ্রুত সম্পাদনের জন্য অপ্টিমাইজেশন কৌশল রয়েছে। এটি NumPy এবং মাল্টি-ডাইমেনশনাল অ্যারে ব্যবহার করার কারণে। এই মাল্টি-ডাইমেনশনাল অ্যারেগুলোকে 'টেনসর'ও বলা হয়।

ফ্রেমওয়ার্কটি ডিপ নিউরাল নেটওয়ার্কের সাথে কাজ করা সাপোর্ট করে। এটি অত্যন্ত স্কেলেবল এবং অনেক জনপ্রিয় ডেটাসেট নিয়ে আসে। এটি GPU কম্পিউটেশন ব্যবহার করে এবং রিসোর্স ম্যানেজমেন্ট অটোমেট করে। এতে অসংখ্য মেশিন লার্নিং লাইব্রেরি থাকে এবং এটি ভালোভাবে ডকুমেন্টেড এবং সাপোর্টেড। ফ্রেমওয়ার্কটিতে ডিপ নিউরাল নেটওয়ার্ক মডেল চালানো, সেগুলো ট্রেন করা এবং প্রাসঙ্গিক ডেটাসেটের বৈশিষ্ট্য পূর্বাভাস করার অ্যাপ্লিকেশন তৈরি করার ক্ষমতা রয়েছে।

'tensorflow' প্যাকেজটি উইন্ডোজে নিচের কোড দিয়ে ইনস্টল করা যায়:

pip install tensorflow

টেনসর TensorFlow-এ ব্যবহৃত একটি ডেটা স্ট্রাকচার। এটি একটি ফ্লো ডায়াগ্রামে এজ সংযোগ করতে সাহায্য করে। এই ফ্লো ডায়াগ্রামকে 'Data flow graph' বলা হয়। টেনসরসমূহ আসলে মাল্টি-ডাইমেনশনাল অ্যারে বা একটি লিস্ট।

একটি উদাহরণ নিচে দেওয়া হল:

উদাহরণ

def linear_reg(x):
    return A * x + b

def mean_square_error(y_pred, y_true):
    return tf.reduce_mean(tf.square(y_pred - y_true))

optimizer = tf.optimizers.SGD(learning_rate)

def run_optimization():
    with tf.GradientTape() as g:
        pred = linear_reg(X)
        loss = mean_square_error(pred, Y)
    gradients = g.gradient(loss, [A, b])
    optimizer.apply_gradients(zip(gradients, [A, b]))

কোড ক্রেডিট: https://github.com/aymericdamien/TensorFlow-Examples/blob/master/tensorflow_v2/notebooks/2_BasicModels/linear_regression.ipynb

আউটপুট

A linear regression function that is defined, is called on the data. Once the optimal data points have been computed, the mean square error function is calculated. The gradient descent function is used to find the optimal weights. These values are displayed on the console.

ব্যাখ্যা

  • 'weight' এবং 'bias' মানগুলো যাদুকরে ইনিশিয়ালাইজ করা হয়। ট্রেনিং সম্পূর্ণ হলে এগুলো অপ্টিমাল মান নিয়ে আপডেট হবে।

  • লিনিয়ার সমীকরণের সাধারণ ফরম্যাট 'Ax + b' যেখানে 'A' হল 'weight' এবং 'b' হল 'bias' মান।

  • মিন স্কোয়ার এরর ক্যালকুলেট করার ফাংশন সংজ্ঞায়িত করা হয়।

  • স্টোকাস্টিক গ্রেডিয়েন্ট ডিসেন্ট অপ্টিমাইজারও সংজ্ঞায়িত করা হয়।

  • অপ্টিমাইজেশনের জন্য একটি ফাংশন সংজ্ঞায়িত করা হয়, যা গ্রেডিয়েন্ট কম্পিউট করে এবং ওজন ও বায়াসের মান আপডেট করে।

  • ডেটা নির্দিষ্ট সংখ্যক স্টেপের জন্য ট্রেন করা হয়।

  1. ডেটা স্ক্র্যাপিং কীভাবে কাজ করে?

  2. ডেটা অ্যাগ্রিগেশন কীভাবে কাজ করে?

  3. Bokeh (Python)-এ ইমেজ নিয়ে কাজ করার পদ্ধতি

  4. পাইথন মডিউলে ভেরিয়েবল স্কোপ কীভাবে কাজ করে?