Loading [MathJax]/jax/output/CommonHTML/jax.js
Skill

টেনসর এবং অপারেশনস

Latest Technologies - টর্চ (Torch)
70
70

টেনসর এবং অপারেশনস

টেনসর হল মাল্টিডাইমেনশোনাল অ্যারে, যা সংখ্যা বা ডেটা ধারণ করে। মেশিন লার্নিং ও ডিপ লার্নিংয়ে টেনসরের ব্যবহার অত্যন্ত গুরুত্বপূর্ণ। টেনসর সাধারণত নিম্নলিখিত ধরনের হয়:

  1. স্কেলার (0D টেনসর): একটি একক সংখ্যা (যেমন 5)।
  2. ভেক্টর (1D টেনসর): একটি একমাত্রিক অ্যারে (যেমন [1, 2, 3])।
  3. ম্যাট্রিক্স (2D টেনসর): একটি দ্বিমাত্রিক অ্যারে (যেমন [[1, 2], [3, 4]])।
  4. 3D বা আরও উচ্চ মাত্রার টেনসর: এটি বিভিন্ন মাত্রায় বাড়তে পারে, যেমন ছবি, ভিডিও ইত্যাদি।

টেনসর তৈরি করা

Torch ব্যবহার করে টেনসর তৈরি করার কিছু উদাহরণ:

import torch

# স্কেলার টেনসর
scalar = torch.tensor(5)

# ভেক্টর
vector = torch.tensor([1, 2, 3])

# ম্যাট্রিক্স
matrix = torch.tensor([[1, 2], [3, 4]])

# 3D টেনসর
tensor_3d = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

অপারেশনস

টেনসরের ওপর বিভিন্ন অপারেশন করা যায়। নিচে কিছু সাধারণ অপারেশন উল্লেখ করা হল:

১. মৌলিক গণনা

  • যোগ (Addition):
a = torch.tensor([1, 2])
b = torch.tensor([3, 4])
result = a + b  # [4, 6]
  • বিয়োগ (Subtraction):
result = a - b  # [-2, -2]
  • গুণফল (Multiplication):
result = a * b  # [3, 8]
  • ভাগফল (Division):
result = a / b  # [0.3333, 0.5]

২. গাণিতিক ফাংশন

  • মোট (Sum):
total = torch.sum(vector)  # 6
  • গড় (Mean):
mean = torch.mean(vector.float())  # 2.0
  • ম্যাক্সিমাম (Maximum):
max_value = torch.max(vector)  # 3

৩. রিসাইজিং

টেনসরের আকৃতি পরিবর্তন করতে পারেন:

reshaped_tensor = matrix.view(4)  # [1, 2, 3, 4]

৪. ডট প্রোডাক্ট

dot_product = torch.dot(a, b)  # 11

৫. অ্যাক্সিস ব্যবহার

অ্যাক্সিস অনুযায়ী অপারেশন করা যায়:

matrix_sum = torch.sum(matrix, dim=0)  # [4, 6]

সারসংক্ষেপ

টেনসর হল ডেটা স্টোর করার একটি মৌলিক গঠন, যা ডিপ লার্নিংয়ে ব্যাপকভাবে ব্যবহৃত হয়। Torch টেনসরের উপর বিভিন্ন গাণিতিক অপারেশন সমর্থন করে, যা মেশিন লার্নিং মডেল তৈরিতে অত্যন্ত কার্যকর। মৌলিক অপারেশন, গাণিতিক ফাংশন, রিসাইজিং এবং ডট প্রোডাক্ট টেনসরের সাথে কাজ করার জন্য প্রধান টুলস।

Tensor কী এবং তার ভূমিকা

104
104

টেনসর হল একটি মাল্টি-ডাইমেনশনাল ডেটা স্ট্রাকচার যা মূলত গাণিতিক ও ক্যালকুলেশনাল প্রসেসে ব্যবহৃত হয়। এটি ডেটা সংরক্ষণ এবং বিভিন্ন গাণিতিক অপারেশনে কাজ করার জন্য অত্যন্ত কার্যকরী। টেনসর বিভিন্ন ডেটা টাইপ যেমন সংখ্যা, স্ট্রিং, বা অন্য টেনসর ধারণ করতে পারে।

টেনসরের প্রকারভেদ:

স্কেলার: একটি মাত্রা বিশিষ্ট টেনসর (0D) যা কেবল একটি সংখ্যা ধারণ করে। উদাহরণ: 555

ভেক্টর: একমাত্রা বিশিষ্ট টেনসর (1D) যা সংখ্যা বা ডেটার একটি তালিকা। উদাহরণ: [1,2,3][1, 2, 3][1,2,3]

ম্যাট্রিক্স: দুই মাত্রা বিশিষ্ট টেনসর (2D) যা সারি এবং কলামের আকারে সংখ্যা ধারণ করে। উদাহরণ:

  1. (1234)(1234)(13​24​)

হাইরার্ক্যাল টেনসর: তিন বা ততোধিক মাত্রা বিশিষ্ট টেনসর (3D এবং তার উপরে)। উদাহরণ: একটি RGB চিত্র যা তিনটি চ্যানেল (লাল, সবুজ, নীল) ধারণ করে।

টেনসরের ভূমিকা:

গাণিতিক অপারেশন: টেনসরের মাধ্যমে গাণিতিক এবং লিনিয়ার আলজেব্রার বিভিন্ন অপারেশন যেমন যোগ, বিয়োগ, গুণফল এবং ডিভিশন করা হয়।

ডিপ লার্নিং: নিউরাল নেটওয়ার্ক এবং ডিপ লার্নিং অ্যালগরিদমে টেনসর ব্যবহার করা হয়, যেখানে ইনপুট ডেটা টেনসরের আকারে দেওয়া হয় এবং নিউরাল নেটওয়ার্কের লেয়ারগুলির মধ্য দিয়ে প্রবাহিত হয়।

ডেটা প্রক্রিয়াকরণ: টেনসরগুলি ডেটা প্রক্রিয়াকরণের জন্য অত্যন্ত কার্যকর। যেমন, একাধিক চিত্র, শব্দ বা টেক্সট ডেটা টেনসর আকারে মডেল করা হয়।

অটোগ্রেডিয়েন্ট: ডিপ লার্নিং মডেল প্রশিক্ষণের সময় টেনসর ব্যবহার করে গ্রেডিয়েন্ট হিসাব করা হয়, যা অটোমেটেড ডিফারেনশিয়েশনের মাধ্যমে ঘটে।

গণনা সংস্থান ব্যবস্থাপনা: টেনসর ব্যবহার করে বিভিন্ন ডেটা এবং মডেল অপারেশনগুলিকে কার্যকরভাবে ব্যবস্থাপনা করা যায়, যা GPU এবং CPU উভয় ব্যবহার করে।

সারসংক্ষেপে, টেনসর গাণিতিক মডেলিং, ডিপ লার্নিং এবং ডেটা প্রক্রিয়াকরণের জন্য একটি মৌলিক উপাদান, যা কম্পিউটেশনাল টাস্কগুলোকে কার্যকরভাবে সম্পন্ন করতে সহায়ক।

Tensor Initialization, Shape এবং Data Types

76
76

PyTorch-এ টেনসর ইনিশিয়ালাইজেশন, শেপ এবং ডেটা টাইপগুলি বুঝা খুব গুরুত্বপূর্ণ, কারণ এগুলি ডীপ লার্নিং এবং মেশিন লার্নিং মডেল তৈরি করতে সহায়ক। নিচে এই তিনটি বিষয় বিস্তারিতভাবে আলোচনা করা হলো:

১. টেনসর ইনিশিয়ালাইজেশন

টেনসর তৈরি করার জন্য PyTorch বিভিন্ন পদ্ধতি প্রদান করে। কিছু সাধারণ পদ্ধতি হলো:

নিউ টেনসর তৈরি করা:

import torch

# জিরো টেনসর
zero_tensor = torch.zeros(3, 3)  # 3x3 জিরো টেনসর

# এক্স টেনসর
ones_tensor = torch.ones(2, 2)  # 2x2 এক্স টেনসর

# র্যান্ডম টেনসর
random_tensor = torch.rand(4, 4)  # 4x4 র্যান্ডম টেনসর

অবজেক্ট থেকে টেনসর তৈরি করা:

# লিস্ট থেকে টেনসর
list_tensor = torch.tensor([[1, 2, 3], [4, 5, 6]])  # 2x3 টেনসর

২. টেনসরের শেপ

টেনসরের শেপ হল এর ডাইমেনশন বা আকার। টেনসরের শেপ জানতে shape অ্যাট্রিবিউট ব্যবহার করা হয়।

# টেনসরের শেপ দেখা
print(random_tensor.shape)  # আউটপুট: torch.Size([4, 4])

শেপের গুরুত্ব:

  • শেপ টেনসরের আকার এবং বিভিন্ন অপারেশনের সময় ডেটার ফিটিং বা অ্যালাইনমেন্ট বুঝতে সাহায্য করে।
  • নিউরাল নেটওয়ার্কের লেয়ারগুলোর মধ্যে টেনসরের আকার সঠিক থাকতে হবে।

৩. ডেটা টাইপ

PyTorch বিভিন্ন ধরনের ডেটা টাইপ সমর্থন করে, যেমন:

  • torch.float32: সাধারণভাবে ব্যবহৃত ফ্লোট ডেটা টাইপ।
  • torch.int64: পূর্ণসংখ্যার জন্য ব্যবহৃত।
  • torch.bool: বুলিয়ান মান (True/False) ধারণ করার জন্য ব্যবহৃত।

টেনসরের ডেটা টাইপ সেট করতে বা জানতে:

# ডেটা টাইপ সেট করা
float_tensor = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)

# ডেটা টাইপ জানা
print(float_tensor.dtype)  # আউটপুট: torch.float32

সারসংক্ষেপ

  • টেনসর ইনিশিয়ালাইজেশন: টেনসর তৈরি করার বিভিন্ন পদ্ধতি।
  • টেনসরের শেপ: টেনসরের আকার, যা অপারেশন এবং মডেল আর্কিটেকচারের জন্য গুরুত্বপূর্ণ।
  • ডেটা টাইপ: টেনসরের মানের ধরনের ওপর ভিত্তি করে টেনসরের ব্যবহারের ধরন নির্ধারণ করে।

এই বিষয়গুলো বুঝতে পারলে PyTorch-এ কাজ করা অনেক সহজ হবে। যদি আরো বিস্তারিত জানতে চান, জানাবেন!

Basic Operations: Addition, Multiplication, Transpose

77
77

PyTorch (Torch) ব্যবহার করে কিছু সাধারণ অপারেশন যেমন যোগ (Addition), গুণ (Multiplication), এবং ট্রান্সপোজ (Transpose) কিভাবে করা যায়, তা নিচে ব্যাখ্যা করা হলো:

১. যোগ (Addition)

Torch টেনসরগুলোর মধ্যে উপাদান ভিত্তিক যোগ করতে ব্যবহৃত হয়।

import torch

# দুটি টেনসর তৈরি করা
a = torch.tensor([[1, 2], [3, 4]])
b = torch.tensor([[5, 6], [7, 8]])

# টেনসরগুলোর যোগ
result = a + b
# বা torch.add() ফাংশন ব্যবহার করা যায়
result = torch.add(a, b)

print(result)

আউটপুট:

tensor([[ 6,  8],
        [10, 12]])

২. গুণ (Multiplication)

Torch-এ টেনসরগুলোর মধ্যে উপাদান ভিত্তিক (Element-wise) গুণ করা যায়, আবার ম্যাট্রিক্স মাল্টিপ্লিকেশনও করা যায়।

উপাদান ভিত্তিক গুণ:

# উপাদান ভিত্তিক গুণ
result = a * b
# বা torch.mul() ফাংশন ব্যবহার করা যায়
result = torch.mul(a, b)

print(result)

আউটপুট:

tensor([[ 5, 12],
        [21, 32]])

ম্যাট্রিক্স মাল্টিপ্লিকেশন:

# ম্যাট্রিক্স মাল্টিপ্লিকেশন
result = torch.mm(a, b)

print(result)

আউটপুট:

tensor([[19, 22],
        [43, 50]])

৩. ট্রান্সপোজ (Transpose)

Torch টেনসরের ট্রান্সপোজ করার জন্য torch.t() বা tensor.T ব্যবহার করা হয় (2D টেনসরের ক্ষেত্রে)।

# একটি টেনসরের ট্রান্সপোজ
a = torch.tensor([[1, 2, 3], [4, 5, 6]])

# ট্রান্সপোজ করা
result = a.t()
# বা result = a.T

print(result)

আউটপুট:

tensor([[1, 4],
        [2, 5],
        [3, 6]])

এই বেসিক অপারেশনগুলো PyTorch-এ টেনসর নিয়ে কাজ করার জন্য খুবই গুরুত্বপূর্ণ। এগুলো ব্যবহার করে আরও জটিল অপারেশন এবং মডেল তৈরি করা যায়।

উদাহরণসহ Tensor ব্যবহার করা

53
53

Tensor হল PyTorch-এর একটি মূল ডেটা স্ট্রাকচার, যা মাল্টিডাইমেনশনাল অ্যারে হিসেবে কাজ করে। এটি NumPy এর মত, তবে এটি GPU তে দ্রুত গণনা করার ক্ষমতা রাখে। নিচে Tensor ব্যবহার করার কিছু উদাহরণ দেওয়া হলো।

১. Tensor তৈরি করা

১.১. ১ডি Tensor

import torch

# ১ডি Tensor তৈরি
tensor_1d = torch.tensor([1, 2, 3, 4, 5])
print("১ডি Tensor:")
print(tensor_1d)

১.২. ২ডি Tensor

# ২ডি Tensor তৈরি
tensor_2d = torch.tensor([[1, 2, 3], [4, 5, 6]])
print("\n২ডি Tensor:")
print(tensor_2d)

১.৩. ৩ডি Tensor

# ৩ডি Tensor তৈরি
tensor_3d = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("\n৩ডি Tensor:")
print(tensor_3d)

২. Tensor এর আকার দেখা

# Tensor এর আকার দেখা
print("\nTensor এর আকার:")
print(tensor_2d.shape)  # ২ডি Tensor এর জন্য

৩. Tensor গণনা

৩.১. মৌলিক গাণিতিক অপারেশন

# দুইটি Tensor তৈরি
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])

# যোগফল
sum_tensor = a + b
print("\nযোগফল:")
print(sum_tensor)

# গুণফল
prod_tensor = a * b
print("\nগুণফল:")
print(prod_tensor)

৩.২. অন্যান্য গাণিতিক অপারেশন

# গড় বের করা
mean_value = torch.mean(a.float())  # float() ব্যবহার করে Integer থেকে Float এ রূপান্তর
print("\nগড়:")
print(mean_value)

# ম্যাট্রিক্স গুণফল
matrix_a = torch.tensor([[1, 2], [3, 4]])
matrix_b = torch.tensor([[5, 6], [7, 8]])
matrix_product = torch.mm(matrix_a, matrix_b)
print("\nম্যাট্রিক্স গুণফল:")
print(matrix_product)

৪. Tensor এর রূপান্তর

# Tensor কে NumPy অ্যারে তে রূপান্তর করা
numpy_array = tensor_1d.numpy()
print("\nNumPy অ্যারে:")
print(numpy_array)

# NumPy অ্যারে থেকে Tensor তে রূপান্তর করা
new_tensor = torch.from_numpy(numpy_array)
print("\nTensor পুনরায় তৈরি:")
print(new_tensor)

৫. GPU তে Tensor ব্যবহার

# CUDA ব্যবহার করে GPU তে Tensor তৈরি করা
if torch.cuda.is_available():
    tensor_gpu = tensor_1d.to('cuda')
    print("\nGPU তে Tensor:")
    print(tensor_gpu)
else:
    print("\nGPU উপলব্ধ নয়।")

সারসংক্ষেপ

উপরের উদাহরণগুলি Tensor তৈরির, গণনা করার এবং রূপান্তর করার বিভিন্ন পদ্ধতি দেখায়। Tensor ব্যবহারের মাধ্যমে আপনি ডিপ লার্নিং মডেল তৈরি করার জন্য প্রয়োজনীয় বিভিন্ন গাণিতিক অপারেশন সহজে করতে পারবেন।

টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion