টেনসর (Tensor) হলো একটি মৌলিক ডেটা স্ট্রাকচার যা PyTorch লাইব্রেরিতে ব্যবহৃত হয়। এটি মূলত একটি মাল্টি-ডাইমেনশনাল অ্যারে, যা সিস্টেমের বিভিন্ন গণনা কাজকে দক্ষভাবে পরিচালনা করতে সাহায্য করে। আপনি যেমন নামপাই অ্যারে ব্যবহার করেন, ঠিক তেমনি PyTorch টেনসর ব্যবহৃত হয়, তবে টেনসর GPU তে কাজ করতে সক্ষম, যা কোডের কার্যক্ষমতা বৃদ্ধি করে।
টেনসরগুলো মেশিন লার্নিং এবং ডিপ লার্নিং এর জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি ডেটা প্রক্রিয়া, গণনা এবং মডেল ট্রেনিংয়ের জন্য ব্যবহৃত হয়।
টেনসর এর বিভিন্ন ডাইমেনশন
0D টেনসর (Scalar):
- এটি একটি একক মান ধারণ করে। যেমন একটি একক সংখ্যা
5।
import torch scalar = torch.tensor(5) print(scalar)আউটপুট:
tensor(5)- এটি একটি একক মান ধারণ করে। যেমন একটি একক সংখ্যা
1D টেনসর (Vector):
- এটি এক ধরনের একমাত্রিক অ্যারে, অর্থাৎ এর মধ্যে এক বা একাধিক উপাদান থাকতে পারে। যেমন
[1, 2, 3, 4]।
vector = torch.tensor([1, 2, 3, 4]) print(vector)আউটপুট:
tensor([1, 2, 3, 4])- এটি এক ধরনের একমাত্রিক অ্যারে, অর্থাৎ এর মধ্যে এক বা একাধিক উপাদান থাকতে পারে। যেমন
2D টেনসর (Matrix):
- এটি একটি দ্বিমাত্রিক অ্যারে, যেখানে সারি এবং স্তম্ভ থাকে। যেমন একটি ম্যাট্রিক্স:
matrix = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(matrix)আউটপুট:
tensor([[1, 2, 3], [4, 5, 6]])3D টেনসর এবং এর অধিক (Higher Dimensional Tensors):
- টেনসর এর ৩D বা অধিক মাত্রা থাকতে পারে, যেমন একটি ৩D টেনসর (হাইপার-কিউব) যা স্লাইস বা মেট্রিক্সের চেয়েও বেশি আয়তন ধারণ করে।
tensor3d = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print(tensor3d)আউটপুট:
tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
PyTorch টেনসর এর সুবিধা
- GPU সাপোর্ট: PyTorch টেনসরগুলো GPU তে দ্রুত কাজ করতে পারে, ফলে মডেল ট্রেনিং অনেক দ্রুত হয়।
- Autograd: PyTorch টেনসরের সাথে Autograd সিস্টেম রয়েছে, যা স্বয়ংক্রিয়ভাবে গ্র্যাডিয়েন্ট ক্যালকুলেশন করে, যা ব্যাকপ্রোপাগেশন এবং অপটিমাইজেশন প্রক্রিয়া সহজ করে।
- NumPy এর সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ: PyTorch টেনসরের সাথে NumPy এর মতো অপারেশনগুলো ব্যবহার করা যায় এবং আপনি সহজেই NumPy অ্যারে এবং PyTorch টেনসরের মধ্যে রূপান্তর করতে পারেন।
টেনসর অপারেশন
যোগফল (Addition):
tensor1 = torch.tensor([1, 2, 3]) tensor2 = torch.tensor([4, 5, 6]) result = tensor1 + tensor2 print(result)আউটপুট:
tensor([5, 7, 9])গুণফল (Multiplication):
tensor1 = torch.tensor([1, 2, 3]) tensor2 = torch.tensor([4, 5, 6]) result = tensor1 * tensor2 print(result)আউটপুট:
tensor([ 4, 10, 18])রূপান্তর (Reshape): টেনসরের আকার পরিবর্তন করা:
tensor = torch.tensor([1, 2, 3, 4, 5, 6]) reshaped_tensor = tensor.view(2, 3) print(reshaped_tensor)আউটপুট:
tensor([[1, 2, 3], [4, 5, 6]])CPU এবং GPU তে স্থানান্তর: আপনি একটি টেনসরকে CPU থেকে GPU তে এবং বিপরীতভাবে স্থানান্তর করতে পারেন:
tensor = torch.tensor([1, 2, 3, 4, 5]) if torch.cuda.is_available(): tensor = tensor.to('cuda') # GPU তে স্থানান্তর print(tensor)
সারাংশ
PyTorch টেনসর হলো একটি মাল্টি-ডাইমেনশনাল অ্যারে যা ডেটা প্রক্রিয়া, গণনা এবং ডিপ লার্নিং মডেল ট্রেনিংয়ে ব্যবহৃত হয়। এটি CPU এবং GPU উভয়েই কাজ করতে পারে এবং PyTorch এর সাথে সহজেই সংযুক্ত হতে পারে। আপনি যখন মেশিন লার্নিং বা ডিপ লার্নিং মডেল তৈরি করেন, তখন টেনসরের অপারেশন এবং ট্রেনিং প্রক্রিয়া খুব গুরুত্বপূর্ণ ভূমিকা পালন করে।
Read more