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

টেনসরফ্লো ব্যবহার করে স্ট্যাকওভারফ্লো প্রশ্ন ডেটাসেট লোড করা


টেনসরফ্লো পরিচিতি

টেনসরফ্লো (TensorFlow) গুগল প্রদত্ত একটি মেশিন লার্নিং ফ্রেমওয়ার্ক। এটি একটি ওপেন-সোর্স ফ্রেমওয়ার্ক যা পাইথনের সাথে मिलে অ্যালগরিদম, ডিপ লার্নিং অ্যাপ্লিকেশন ইত্যাদি বাস্তবায়নে ব্যবহৃত হয়। গবেষণা ও প্রোডাকশন-উভয় উদ্দেশ্যে এটি পופুলার। জটিল গাণিতিক অপারেশন দ্রুত সম্পাদনের জন্য এটি NumPy এবং মাল্টি-ডাইমেনশনাল অ্যারে (টেনসর) ব্যবহার করে।

টেনসরফ্লো ডিপ নিউরাল নেটওয়ার্ক সাপোর্ট করে, অত্যন্ত স্কেলেবল, GPU কম্পিউটেশন সক্ষম, এবং বিশাল এমএল লাইব্রেরির সংগ্রহ دارد। এটি ডিপ নিউরাল নেটওয়ার্ক মডেল রান, ট্রেন এবং প্রিডিক্টিভ অ্যাপ্লিকেশন তৈরি করতে সক্ষম।

ইনস্টলেশন

pip install tensorflow

গুগল কোল্যাব (Google Colab) ব্যবহার

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

স্ট্যাকওভারফ্লো প্রশ্ন ডেটাসেট লোড করা

import tensorflow as tf
from tensorflow.keras import preprocessing

batch_size = 32
seed = 42
train_dir = "path/to/stackoverflow/dataset"  # ডেটাসেট ডিরেক্টরি পাথ

print("প্রশিক্ষণের প্যারামিটার সংজ্ঞায়িত হয়েছে")

raw_train_ds = preprocessing.text_dataset_from_directory(
    train_dir,
    batch_size=batch_size,
    validation_split=0.25,
    subset='training',
    seed=seed)

# প্রথম ব্যাচ থেকে ১০টি নমুনা প্রদর্শন
for text_batch, label_batch in raw_train_ds.take(1):
    for i in range(10):
        print("প্রশ্ন:", text_batch.numpy()[i][:100].decode('utf-8'), '...')
        print("লেবেল:", label_batch.numpy()[i])

আউটপুট নমুনা

প্রশিক্ষণের প্যারামিটার সংজ্ঞায়িত হয়েছে
Found 8000 files belonging to 4 classes.
Using 6000 files for training.
প্রশ্ন: "my tester is going to the wrong constructor i am new to programming so if i ask a question that can' ... লেবেল: 1
প্রশ্ন: "blank code slow skin detection this code changes the color space to lab and using a threshold finds' ... লেবেল: 3
প্রশ্ন: "option and validation in blank i want to add a new option on my system where i want to add two text' ... লেবেল: 1
প্রশ্ন: "exception: dynamic sql generation for the updatecommand is not supported against a selectcommand th' ... লেবেল: 0
প্রশ্ন: "parameter with question mark and super in blank, i've come across a method that is formatted like t' ... লেবেল: 1
প্রশ্ন: 'call two objects wsdl the first time i got a very strange wsdl. ..i would like to call the object (i' ... লেবেল: 0
প্রশ্ন: 'how to correctly make the icon for systemtray in blank using icon sizes of any dimension for systemt' ... লেবেল: 0
প্রশ্ন: "is there a way to check a variable that exists in a different script than the original one? i'm try' ... লেবেল: 3
প্রশ্ন: "blank control flow i made a number which asks for 2 numbers with blank and responds with the corre' ... লেবেল: 0
প্রশ্ন: "credentials cannot be used for ntlm authentication i am getting org.apache.commons.httpclient.auth.' ... লেবেল: 1

কোড ব্যাখ্যা

  • ডেটা লোডিং: ডেটা ডিস্ক থেকে লোড করে প্রশিক্ষণের উপযোগী ফরম্যাটে রূপান্তর করা হয়েছে।
  • text_dataset_from_directory: এই ইউটিলিটি লেবেলযুক্ত ডেটাসেট তৈরি করতে ব্যবহৃত হয়েছে। ডিরেক্টরি কাঠামোতে ক্লাস অনুযায়ী সাব-ফোল্ডার থাকা উচিত।
  • tf.data API: ইনপুট পাইপলাইন তৈরির জন্য শক্তিশালী টুলকিট।
  • ব্যালিডেশন স্প্লিট: validation_split=0.25 দিয়ে ২৫% ডেটা ব্যালিডেশন সেটে আলাদা করা হয়েছে।
  • লেবেল: ৪টি ক্লাস (০, ১, ২, ৩) وجود دارد, যা স্ট্যাকওভারফ্লো ট্যাগ/বিষয়কে নির্দেশ করে।
  • ব্যাচ প্রসেসিং: batch_size=32 দিয়ে মিনি-ব্যাচে ডেটা প্রসেস করা হয়েছে।

দ্রষ্টব্য

  • ডেটাসেট ডিরেক্টরির কাঠামো অবশ্যই train_dir/class_name/file.txt ফরম্যাটে হতে হবে।
  • seed ফিক্স রাখলে প্রতিবার একই ট্রেইন/ব্যালিডেশন স্প্লিট পাওয়া যায়।
  • বড় ডেটাসেটের জন্য prefetch এবং cache ব্যবহার করে পারফরম্যান্স বাড়ানো যায়।
  1. পাইথনে টেনসরফ্লো দিয়ে ফলাফল প্লট করা

  2. টেনসরফ্লো (TensorFlow) কীভাবে পাইথনে মডেল ট্রেন (train) করতে ব্যবহৃত হয়?

  3. টেনসরফ্লো (TensorFlow) কীভাবে পাইথনে ডেটা ভিজুয়ালাইজ (visualize) করতে ব্যবহৃত হয়?

  4. টেনসরফ্লোতে ফ্লাওয়ার ডেটাসেট ভিজ্যুয়ালাইজ করা