NDArray দিয়ে টেনসর তৈরি, রূপান্তর, এবং ম্যানিপুলেশন

NDArray এবং টেনসর ম্যানিপুলেশন - অ্যাপাচি এমএক্সনেট (Apache mxnet) - Machine Learning

354

MXNetNDArray (N-dimensional Array) ব্যবহার করে আপনি টেনসর তৈরি, রূপান্তর, এবং ম্যানিপুলেশন করতে পারবেন। NDArray হল MXNet-এর মৌলিক ডেটা কাঠামো, যা আপনি মেশিন লার্নিং এবং ডিপ লার্নিং অপারেশনগুলোতে ব্যবহার করবেন।

এখানে NDArray দিয়ে টেনসর তৈরি, রূপান্তর, এবং ম্যানিপুলেশন এর কিছু মূল কার্যাবলী আলোচনা করা হয়েছে।


১. NDArray দিয়ে টেনসর তৈরি

NDArray ব্যবহার করে টেনসর তৈরি করার জন্য mx.nd.array() ফাংশন ব্যবহার করা হয়। এটি একটি N-dimensional array তৈরি করতে সহায়ক।

১.১ NDArray দিয়ে টেনসর তৈরি করা

import mxnet as mx

# একটি 1D টেনসর তৈরি (একটি ভেক্টর)
a = mx.nd.array([1, 2, 3, 4, 5])
print(a)

এটি আউটপুট হিসেবে একটি 1D টেনসর তৈরি করবে:

[1. 2. 3. 4. 5.]
<NDArray 5 @cpu(0)>

১.২ 2D টেনসর তৈরি

# একটি 2D টেনসর (ম্যাট্রিক্স) তৈরি
b = mx.nd.array([[1, 2], [3, 4], [5, 6]])
print(b)

এটি একটি 2D টেনসর তৈরি করবে:

[[1. 2.]
 [3. 4.]
 [5. 6.]]
<NDArray 3x2 @cpu(0)>

১.৩ টেনসর তৈরির অন্যান্য উপায়

  • শূন্য টেনসর:

    zeros_tensor = mx.nd.zeros((3, 3))  # 3x3 শূন্য টেনসর
    print(zeros_tensor)
    
  • এক টেনসর:

    ones_tensor = mx.nd.ones((2, 4))  # 2x4 এক টেনসর
    print(ones_tensor)
    
  • এ случай বৈধ র্যান্ডম টেনসর:

    random_tensor = mx.nd.random.uniform(low=0, high=10, shape=(3, 3))
    print(random_tensor)
    

২. NDArray রূপান্তর (Conversion)

NDArray থেকে অন্যান্য ডেটা টাইপে রূপান্তর করা খুবই সহজ। এটি পাইটনের বিভিন্ন ডেটা স্ট্রাকচারে রূপান্তর করতে সহায়ক।

২.১ NDArray থেকে পাইটন লিস্টে রূপান্তর

python_list = a.asnumpy().tolist()  # NDArray থেকে পাইটন লিস্টে রূপান্তর
print(python_list)

২.২ NDArray থেকে পাইটন টিউপলে রূপান্তর

python_tuple = tuple(a.asnumpy())  # NDArray থেকে পাইটন টিউপলে রূপান্তর
print(python_tuple)

২.৩ NDArray থেকে NumPy Array-তে রূপান্তর

NDArray কে NumPy array-তে রূপান্তর করতে asnumpy() ফাংশন ব্যবহার করা হয়। এটি পাইটন ভিত্তিক গণনা বা ভিজ্যুয়ালাইজেশন টুলগুলির সাথে কাজ করতে উপকারী।

import numpy as np

numpy_array = a.asnumpy()  # NDArray থেকে NumPy array-তে রূপান্তর
print(numpy_array)

৩. NDArray ম্যানিপুলেশন

NDArray তে বিভিন্ন ম্যানিপুলেশন অপারেশন যেমন যোগ, বিয়োগ, গুণ, ভাগ, রূপান্তর ইত্যাদি করা যায়।

৩.১ অ্যাডিশন এবং সাবট্র্যাকশন

# দুটি NDArray যোগ করা
c = mx.nd.add(a, b)
print(c)

# দুটি NDArray বিয়োগ করা
d = mx.nd.subtract(a, b)
print(d)

৩.২ গুণ এবং ভাগ

# দুটি NDArray গুণ করা
e = mx.nd.multiply(a, b)
print(e)

# দুটি NDArray ভাগ করা
f = mx.nd.divide(a, b)
print(f)

৩.৩ অন্যান্য অপারেশন

  • ট্রান্সপোজ (Transpose):

    g = b.T  # 2D টেনসরের ট্রান্সপোজ
    print(g)
    
  • ম্যাথ অপারেশন:

    h = mx.nd.sqrt(a)  # প্রতিটি উপাদানের স্কয়ার রুট
    print(h)
    
  • ম্যাক্সিমাম এবং মিনিমাম:

    max_val = mx.nd.max(a)  # টেনসর থেকে সর্বোচ্চ মান
    min_val = mx.nd.min(a)  # টেনসর থেকে সর্বনিম্ন মান
    print(max_val, min_val)
    

৩.৪ রূপান্তর (Reshape)

# 2D টেনসরকে 1D টেনসরে রূপান্তর করা
reshaped = b.reshape((6,))
print(reshaped)

৩.৫ স্ট্যাকিং (Stacking) এবং ক্যাটিং (Concatenation)

  • স্ট্যাকিং: টেনসরগুলিকে নতুন দিক থেকে একত্রিত করা।

    stacked = mx.nd.stack(a, b)
    print(stacked)
    
  • ক্যাটিং: টেনসরগুলিকে একটি নতুন দিক থেকে একত্রিত করা।

    concatenated = mx.nd.concat(a, b, dim=0)  # dim=0 বরাবর সংযুক্তি
    print(concatenated)
    

৪. NDArray এর GPU সমর্থন

MXNet এর NDArray GPU ব্যবহার করতে সহায়ক। আপনি mx.nd.array() ব্যবহার করে একটি টেনসর তৈরি করতে পারেন এবং এর কন্টেক্সট (যেমন, CPU বা GPU) নির্ধারণ করতে পারেন।

৪.১ GPU-তে NDArray তৈরি করা

a_gpu = mx.nd.array([1, 2, 3, 4, 5], ctx=mx.gpu(0))  # GPU 0-এ টেনসর তৈরি
print(a_gpu)

৪.২ GPU এবং CPU এর মধ্যে রূপান্তর

# CPU-তে রূপান্তর
a_cpu = a_gpu.as_in_context(mx.cpu())
print(a_cpu)

# GPU-তে রূপান্তর
a_gpu_2 = a_cpu.as_in_context(mx.gpu(0))
print(a_gpu_2)

সারাংশ

  • NDArray হল MXNet এর একটি অত্যন্ত গুরুত্বপূর্ণ ডেটা কাঠামো যা N-dimensional array (টেনসর) তৈরি এবং পরিচালনা করতে ব্যবহৃত হয়।
  • টেনসর তৈরি: mx.nd.array() ব্যবহার করে টেনসর তৈরি করা যায়, যা একাধিক ডাইমেনশনে হতে পারে।
  • রূপান্তর: NDArray থেকে Python লিস্ট, NumPy array, বা টিউপলে রূপান্তর করা সম্ভব।
  • ম্যানিপুলেশন: অ্যাডিশন, সাবট্র্যাকশন, গুণ, ভাগ, রূপান্তর (reshape), স্ট্যাকিং, এবং ক্যাটিং-এর মতো বিভিন্ন ম্যানিপুলেশন করা যায়।
  • GPU সমর্থন: NDArray GPU সমর্থন করে এবং আপনি সহজেই CPU এবং GPU এর মধ্যে ডেটা স্থানান্তর করতে পারেন।

এগুলি MXNet এর NDArray এর প্রধান কার্যাবলী, যা ডিপ লার্নিং মডেল তৈরির সময় খুবই দরকারী।

Content added By
Promotion

Are you sure to start over?

Loading...