একটি PyTorch টেনসর হল একটি n-মাত্রিক অ্যারে (ম্যাট্রিক্স) যাতে একটি একক ডেটা টাইপের উপাদান থাকে। একটি টেনসর নামপাই অ্যারের মতো। নামপাই অ্যারে এবং PyTorch টেনসরের পার্থক্য হল টেনসরগুলো GPUs ব্যবহার করে সংখ্যাগত 계산을 দ্রুত করে। দ্রুত 계산을 জন্য, ছবিগুলো টেনসরে রূপান্তর করা হয়।
একটি ছবিকে PyTorch টেনসরে রূপান্তর করতে, আমরা নিচের পদক্ষেপগুলো নিতে পারি:
পদক্ষেপসমূহ
প্রয়োজনীয় লাইব্রেরি আমদানি করুন। প্রয়োজনীয় লাইব্রেরিগুলি হল torch, torchvision, Pillow.
ছবিটি পড়ুন। ছবিটি অবশ্যই একটি PIL ছবি বা numpy.ndarray (HxWxC) হতে হবে [০, ২৫৫] রেঞ্জে। এখানে H, W, এবং C হলো ছবির উচ্চতা, প্রস্থ এবং চ্যানেলের সংখ্যা।
ছবিকে টেনসরে রূপান্তর করার জন্য একটি ট্রান্সফর্ম সংজ্ঞায়িত করুন। আমরা transforms.ToTensor() ব্যবহার করে একটি ট্রান্সফর্ম সংজ্ঞায়িত করি।
উপরের সংজ্ঞায়িত ট্রান্সফর্ম ব্যবহার করে ছবিকে টেনসরে রূপান্তর করুন।
ইনপুট ছবি

উদাহরণ ১
# প্রয়োজনীয় লাইব্রেরি আমদানি করুন import torch from PIL import Image import torchvision.transforms as transforms # ছবিটি পড়ুন image = Image.open('Penguins.jpg') # ছবিকে টেনসরে রূপান্তর করার ট্রান্সফর্ম সংজ্ঞায়িত করুন transform = transforms.ToTensor() # ছবিকে PyTorch টেনসরে রূপান্তর করুন tensor = transform(image) # রূপান্তরিত ছবি টেনসর প্রিন্ট করুন print(tensor)আউটপুট
tensor([[[0.4510, 0.4549, 0.4667, ..., 0.3333, 0.3333, 0.3333], [0.4549, 0.4510, 0.4627, ..., 0.3373, 0.3373, 0.3373], [0.4667, 0.4588, 0.4667, ..., 0.3451, 0.3451, 0.3412], ..., [0.6706, 0.5020, 0.5490, ..., 0.4627, 0.4275, 0.3333], [0.4196, 0.5922, 0.6784, ..., 0.4627, 0.4549, 0.3569], [0.3569, 0.3529, 0.4784, ..., 0.3922, 0.4314, 0.3490]], [[0.6824, 0.6863, 0.7020, ..., 0.6392, 0.6392, 0.6392], [0.6863, 0.6824, 0.6980, ..., 0.6314, 0.6314, 0.6314], [0.6980, 0.6902, 0.6980, ..., 0.6392, 0.6392, 0.6353], ..., [0.7255, 0.5412, 0.5765, ..., 0.5255, 0.5020, 0.4157], [0.4706, 0.6314, 0.7098, ..., 0.5255, 0.5294, 0.4392], [0.4196, 0.3961, 0.5020, ..., 0.4510, 0.5059, 0.4314]], [[0.8157, 0.8196, 0.8353, ..., 0.7922, 0.7922, 0.7922], [0.8196, 0.8157, 0.8314, ..., 0.7882, 0.7882, 0.7882], [0.8314, 0.8235, 0.8314, ..., 0.7961, 0.7961, 0.7922], ..., [0.6235, 0.5059, 0.6157, ..., 0.4863, 0.4941, 0.4196], [0.3922, 0.6000, 0.7176, ..., 0.4863, 0.5216, 0.4431], [0.3686, 0.3647, 0.4863, ..., 0.4235, 0.4980, 0.4353]]])
উপরের পাইথন প্রোগ্রামে, আমরা একটি PIL ছবিকে টেনসরে রূপান্তর করেছি।
উদাহরণ ২
আমরা OpenCV ব্যবহার করেও ছবি পড়তে পারি। OpenCV ব্যবহার করে পড়া ছবিগুলো numpy.ndarray টাইপের। আমরা transforms.ToTensor() ব্যবহার করে একটি numpy.ndarray-কে টেনসরে রূপান্তর করতে পারি। নিচের উদাহরণটি দেখুন।
# প্রয়োজনীয় লাইব্রেরি আমদানি করুন import torch import cv2 import torchvision.transforms as transforms # ছবিটি পড়ুন image = cv2.imread('Penguins.jpg') image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # ছবিকে টেনসরে রূপান্তর করার ট্রান্সফর্ম সংজ্ঞায়িত করুন transform = transforms.ToTensor() # ছবিকে PyTorch টেনসরে রূপান্তর করুন tensor = transform(image) # রূপান্তরিত ছবি টেনসর প্রিন্ট করুন print(tensor)আউটপুট
tensor([[[0.4510, 0.4549, 0.4667, ..., 0.3333, 0.3333, 0.3333], [0.4549, 0.4510, 0.4627, ..., 0.3373, 0.3373, 0.3373], [0.4667, 0.4588, 0.4667, ..., 0.3451, 0.3451, 0.3412], ..., [0.6706, 0.5020, 0.5490, ..., 0.4627, 0.4275, 0.3333], [0.4196, 0.5922, 0.6784, ..., 0.4627, 0.4549, 0.3569], [0.3569, 0.3529, 0.4784, ..., 0.3922, 0.4314, 0.3490]], [[0.6824, 0.6863, 0.7020, ..., 0.6392, 0.6392, 0.6392], [0.6863, 0.6824, 0.6980, ..., 0.6314, 0.6314, 0.6314], [0.6980, 0.6902, 0.6980, ..., 0.6392, 0.6392, 0.6353], ..., [0.7255, 0.5412, 0.5765, ..., 0.5255, 0.5020, 0.4157], [0.4706, 0.6314, 0.7098, ..., 0.5255, 0.5294, 0.4392], [0.4196, 0.3961, 0.5020, ..., 0.4510, 0.5059, 0.4314]], [[0.8157, 0.8196, 0.8353, ..., 0.7922, 0.7922, 0.7922], [0.8196, 0.8157, 0.8314, ..., 0.7882, 0.7882, 0.7882], [0.8314, 0.8235, 0.8314, ..., 0.7961, 0.7961, 0.7922], ..., [0.6235, 0.5059, 0.6157, ..., 0.4863, 0.4941, 0.4196], [0.3922, 0.6000, 0.7176, ..., 0.4863, 0.5216, 0.4431], [0.3686, 0.3647, 0.4863, ..., 0.4235, 0.4980, 0.4353]]])