টেনসর হলো ডিপ লার্নিং এবং মেশিন লার্নিংয়ের জন্য একটি অত্যন্ত গুরুত্বপূর্ণ ডেটা স্ট্রাকচার। এটি এক বা একাধিক মাত্রার অ্যারে হিসেবে কাজ করে এবং PyTorch এ এটি মূল ডেটা স্ট্রাকচার হিসেবে ব্যবহৃত হয়। টেনসরকে আপনি সহজে এক বা একাধিক মাত্রা (dimensional) দিয়ে তৈরি করতে পারেন, যা সাধারণত স্কেলার, ভেক্টর, ম্যাট্রিক্স, এবং মাল্টি-ডাইমেনশনাল অ্যারে হিসেবে ব্যবহার করা হয়।
১. PyTorch এ টেনসর তৈরি করা
PyTorch এ টেনসর তৈরি করার জন্য মূলত torch.Tensor() অথবা torch.tensor() ব্যবহার করা হয়। এছাড়া কিছু টেনসর তৈরি করার অন্যান্য মেথডও রয়েছে, যেমন torch.zeros(), torch.ones(), torch.rand(), torch.arange(), torch.eye() ইত্যাদি।
বিভিন্ন ধরনের টেনসর তৈরি করার পদ্ধতি:
স্কেলার টেনসর তৈরি করা: একটি স্কেলার হল একমাত্রার টেনসর, যেখানে একটি মাত্রা থাকে এবং একটি একক মান থাকে।
import torch scalar_tensor = torch.tensor(5) # scalar tensor with a single value print(scalar_tensor)ভেক্টর টেনসর তৈরি করা: একটি ভেক্টর টেনসর হল একমাত্রার অ্যারে যা একাধিক উপাদান ধারণ করে। উদাহরণস্বরূপ:
vector_tensor = torch.tensor([1, 2, 3, 4, 5]) # 1D tensor print(vector_tensor)ম্যাট্রিক্স টেনসর তৈরি করা: একটি ম্যাট্রিক্স টেনসর হল দুটি মাত্রার টেনসর, যা সারি এবং কলাম ধারণ করে।
matrix_tensor = torch.tensor([[1, 2], [3, 4], [5, 6]]) # 2D tensor print(matrix_tensor)মাল্টি-ডাইমেনশনাল টেনসর তৈরি করা: একটি মাল্টি-ডাইমেনশনাল টেনসর হল যে কোন সংখ্যক মাত্রার টেনসর। উদাহরণস্বরূপ:
multi_dim_tensor = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) # 3D tensor print(multi_dim_tensor)
টেনসর তৈরি করার অন্যান্য পদ্ধতি:
torch.zeros(): এটি একটি টেনসর তৈরি করে, যার সমস্ত উপাদান শূন্য (zero) থাকে।zeros_tensor = torch.zeros(2, 3) # 2x3 tensor with zeros print(zeros_tensor)torch.ones(): এটি একটি টেনসর তৈরি করে, যার সমস্ত উপাদান এক (one) থাকে।ones_tensor = torch.ones(3, 4) # 3x4 tensor with ones print(ones_tensor)torch.rand(): এটি একটি টেনসর তৈরি করে, যার উপাদানগুলো 0 থেকে 1 এর মধ্যে র্যান্ডমভাবে মান দেওয়া হয়।random_tensor = torch.rand(2, 2) # 2x2 tensor with random values between 0 and 1 print(random_tensor)torch.arange(): এটি একটি টেনসর তৈরি করে যা একটি নির্দিষ্ট রেঞ্জের মান ধারণ করে।arange_tensor = torch.arange(0, 10, 2) # tensor with values from 0 to 10 with step 2 print(arange_tensor)torch.eye(): এটি একটি ইউনিট ম্যাট্রিক্স (identity matrix) তৈরি করে।identity_tensor = torch.eye(3) # 3x3 identity matrix print(identity_tensor)
২. টেনসর এর বৈশিষ্ট্য
একটি টেনসর সাধারণত নীচের বৈশিষ্ট্যগুলো ধারণ করে:
আকৃতি (Shape): টেনসরের আকৃতি হল তার মাত্রাগুলোর সংখ্যা এবং প্রতিটি মাত্রার আকার। একে
shapeহিসেবে উল্লেখ করা হয়। আপনিtensor.shapeব্যবহার করে টেনসরের আকৃতি দেখতে পারেন।print(tensor.shape)ডেটা টাইপ (Data Type): টেনসরের ডেটা টাইপ সেট করা থাকে যেমন int, float, ইত্যাদি। আপনি
tensor.dtypeব্যবহার করে টেনসরের ডেটা টাইপ দেখতে পারেন।print(tensor.dtype)ডিভাইস (Device): টেনসরটি কোথায় সংরক্ষিত তা
deviceদ্বারা নির্ধারণ করা হয়, যেমন CPU বা GPU। আপনিtensor.deviceব্যবহার করে ডিভাইস দেখতে পারেন।print(tensor.device)টেনসরের আকার পরিবর্তন (Reshaping): টেনসরের আকৃতি পরিবর্তন করতে
tensor.view()বাtensor.reshape()ব্যবহার করা হয়।reshaped_tensor = tensor.view(2, 3) print(reshaped_tensor)- অপারেশন (Operations): টেনসরগুলোর উপর বিভিন্ন গণনা অপারেশন যেমন যোগ, গুণফল, গড়, ম্যাক্সিমাম ইত্যাদি করা যায়। উদাহরণস্বরূপ:
যোগফল (Addition):
tensor1 = torch.tensor([1, 2, 3]) tensor2 = torch.tensor([4, 5, 6]) sum_tensor = tensor1 + tensor2 print(sum_tensor)গুণফল (Multiplication):
product_tensor = tensor1 * tensor2 print(product_tensor)
কপি (Copying): টেনসর কপি করতে
tensor.clone()বাtensor.detach()ব্যবহার করা হয়।cloned_tensor = tensor.clone() print(cloned_tensor)
সারাংশ
টেনসর PyTorch এবং ডিপ লার্নিংয়ের জন্য একটি অত্যন্ত গুরুত্বপূর্ণ ডেটা স্ট্রাকচার। এটি এক বা একাধিক মাত্রায় ডেটা ধারণ করতে সক্ষম, এবং বিভিন্ন পদ্ধতিতে তৈরি করা যায় যেমন torch.tensor(), torch.zeros(), torch.ones() ইত্যাদি। টেনসরের আকৃতি, ডেটা টাইপ, ডিভাইস, অপারেশন এবং আকার পরিবর্তন সবই খুব সহজে পরিচালনা করা যায় PyTorch এর মাধ্যমে।
Read more