WHAT IS PYTORCH?
এটি একটি পাইথন ভিত্তিক বৈজ্ঞানিক কম্পিউটিং প্যাকেজ যা দর্শকদের দুটি সেট লক্ষ্যবস্তু:
- GPUগুলির শক্তি ব্যবহার করতে NumPy জন্য একটি প্রতিস্থাপন।
- একটি deep learning গবেষণা প্ল্যাটফর্ম যা সর্বাধিক নমনীয়তা এবং গতি সরবরাহ করে।
শুরু হচ্ছে
Tensors
টেনসরগুলি NumPy এর ndarrays এর সাথে সমান, সংযোজন হ'ল টেনারগুলিও একটি জিপিইউতে কম্পিউটিং ত্বরান্বিত করতে ব্যবহৃত হতে পারে।
from __future__ import print_function
import torch
বিঃদ্রঃ
একটি uninitialized matrix ঘোষণা করা হয়, তবে এটি ব্যবহারের আগে নির্দিষ্ট জ্ঞাত মান থাকে না। যখন একটি uninitialized matrix তৈরি করা হয়, তখন নির্ধারিত মেমরিতে যা কিছু মান ছিল তা প্রাথমিক মান হিসাবে উপস্থিত হবে।
একটি 5x3 ম্যাট্রিক্স নির্মাণ করুন, uninitialized matrix:
x = torch.empty(5, 3)
print(x)
output:
tensor([[1.0880e-19, 1.0874e-19, 2.5443e+30],
[9.4727e+21, 2.4835e+27, 2.5428e+30],
[1.0877e-19, 1.5163e+23, 2.2012e+12],
[3.7899e+22, 5.2480e+05, 1.0175e+31],
[9.7056e+24, 1.6283e+32, 3.7913e+22]])
এলোমেলোভাবে আরম্ভ করা ম্যাট্রিক্স তৈরি করুন:
x = torch.rand(5, 3)
print(x)
output:
tensor([[0.3274, 0.3683, 0.7389],
[0.1115, 0.2912, 0.5122],
[0.7146, 0.9849, 0.4620],
[0.2165, 0.3735, 0.0335],
[0.7342, 0.2523, 0.4083]])
একটি ম্যাট্রিক্স ভরা জিরো এবং লম্বা টাইপের আকার তৈরি করুন:
x = torch.zeros(5, 3, dtype=torch.long)
print(x)
output:
tensor([[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
সরাসরি ডেটা থেকে একটি টেনসর তৈরি করুন:
x = torch.tensor([5.5, 3])
print(x)
output:
tensor([5.5000, 3.0000])
বা বিদ্যমান টেন্সরের উপর ভিত্তি করে একটি সেন্সর তৈরি করুন। এই পদ্ধতিগুলি ইনপুট টেনসারের বৈশিষ্ট্যগুলি পুনরায় ব্যবহার করবে, উদাহরণস্বরূপ dtype, যদি না ব্যবহারকারী দ্বারা নতুন মান সরবরাহ করা হয়
x = x.new_ones(5, 3, dtype=torch.double) # new_* methods take in sizes
print(x)
x = torch.randn_like(x, dtype=torch.float) # override dtype!
print(x) # result has the same size
বাইরে:
tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], dtype=torch.float64)
tensor([[ 1.3116, -0.4424, -0.1813],
[-1.3512, -1.5031, -0.5416],
[-0.4603, 0.6212, -1.0390],
[ 1.3685, 0.2972, 0.4173],
[ 1.8396, 1.7736, 0.2708]])
এর আকার পান:
print(x.size())
বাইরে:
torch.Size([5, 3])
বিঃদ্রঃ
torch.Size
আসলে এটি একটি tuple টুপল, তাই এটি সমস্ত টুপল অপারেশনগুলিকে সমর্থন করে।অপারেশনস
অপারেশনের জন্য একাধিক বাক্য গঠন রয়েছে। নিম্নলিখিত উদাহরণে, আমরা সংযোজন অপারেশনটি একবার দেখব।
সংযোজন: বাক্য গঠন ১
y = torch.rand(5, 3)
print(x + y)
বাইরে:
tensor([[ 1.9627, -0.1169, 0.6470],
[-0.6775, -1.0125, -0.4355],
[-0.2652, 0.7214, -0.0991],
[ 1.5633, 0.4468, 0.8694],
[ 2.6277, 2.5232, 0.5638]])
সংযোজন: বাক্য গঠন 2
print(torch.add(x, y))
বাইরে:
tensor([[ 1.9627, -0.1169, 0.6470],
[-0.6775, -1.0125, -0.4355],
[-0.2652, 0.7214, -0.0991],
[ 1.5633, 0.4468, 0.8694],
[ 2.6277, 2.5232, 0.5638]])
সংযোজন: আর্গুমেন্ট হিসাবে আউটপুট সেন্সর সরবরাহ করা
result = torch.empty(5, 3)
torch.add(x, y, out=result)
print(result)
বাইরে:
tensor([[ 1.9627, -0.1169, 0.6470],
[-0.6775, -1.0125, -0.4355],
[-0.2652, 0.7214, -0.0991],
[ 1.5633, 0.4468, 0.8694],
[ 2.6277, 2.5232, 0.5638]])
সংযোজন: স্থান
# adds x to y
y.add_(x)
print(y)
বাইরে:
tensor([[ 1.9627, -0.1169, 0.6470],
[-0.6775, -1.0125, -0.4355],
[-0.2652, 0.7214, -0.0991],
[ 1.5633, 0.4468, 0.8694],
[ 2.6277, 2.5232, 0.5638]])
বিঃদ্রঃ
যে কোনও ক্রিয়াকলাপ একটি স্থানে টেনসরকে পরিবর্তিত করে এটি একটি সহ পোস্ট-ফিক্সড
_
। উদাহরণস্বরূপ: x.copy_(y)
,, x.t_()
পরিবর্তন হবে x
।
আপনি সমস্ত ঘণ্টা এবং হুইসেল সহ স্ট্যান্ডার্ড নম্পপি-এর মতো সূচক ব্যবহার করতে পারেন!
print(x[:, 1])
বাইরে:
tensor([-0.4424, -1.5031, 0.6212, 0.2972, 1.7736])
আকার পরিবর্তন: আপনি যদি টেনসরকে পুনরায় আকার দিতে / পুনরায় আকার দিতে চান তবে আপনি ব্যবহার করতে পারেন
torch.view
:x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8) # the size -1 is inferred from other dimensions
print(x.size(), y.size(), z.size())
বাইরে:
torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])
আপনার যদি একটি এক উপাদান উপাদান রয়েছে
.item()
তবে পাইথন নম্বর হিসাবে মানটি ব্যবহার করুনx = torch.randn(1)
print(x)
print(x.item())
বাইরে:
tensor([-0.3687])
-0.3686990439891815
পরে পড়ুন:
NumPy Bridge/নুমপি ব্রিজ
একটি টর্চ টেনসরকে একটি নম্পপি অ্যারে এবং তার বিপরীতে রূপান্তর করা বাতাস is
টর্চ টেনসর এবং নুমপি অ্যারে তাদের অন্তর্নিহিত মেমরি অবস্থানগুলি ভাগ করে নেবে (যদি টর্চ টেনসর সিপিইউতে থাকে), এবং একটি পরিবর্তন করলে অন্যটির পরিবর্তন হবে।
একটি টর্চ টেনসরকে একটি নামপ্য অ্যারেতে রূপান্তর করা
a = torch.ones(5)
print(a)
বাইরে:
tensor([1., 1., 1., 1., 1.])
b = a.numpy()
print(b)
বাইরে:
[1. 1. 1. 1. 1.]
দেখুন কীভাবে নাম্বার অ্যারের মান পরিবর্তন হয়েছিল।
a.add_(1)
print(a)
print(b)
বাইরে:
tensor([2., 2., 2., 2., 2.])
[2. 2. 2. 2. 2.]
NumPy অ্যারে টর্চ টেনসারে রূপান্তর করা
কীভাবে এনপি অ্যারে পরিবর্তন করা হচ্ছে তা স্বয়ংক্রিয়ভাবে টর্চ টেনশারকে পরিবর্তন করেছে
import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print(a)
print(b)
বাইরে:
[2. 2. 2. 2. 2.]
tensor([2., 2., 2., 2., 2.], dtype=torch.float64)
চার্টেন্সর সমর্থন ব্যতীত সিপিইউতে সমস্ত টেনসর নুমপি এবং পিছনে রূপান্তর করে।
CUDA Tensorsচুডা টেনেসর
.to
পদ্ধতি ব্যবহার করে টেনারগুলি যে কোনও ডিভাইসে সরানো যেতে পারে ।# let us run this cell only if CUDA is available
# We will use ``torch.device`` objects to move tensors in and out of GPU
if torch.cuda.is_available():
device = torch.device("cuda") # a CUDA device object
y = torch.ones_like(x, device=device) # directly create a tensor on GPU
x = x.to(device) # or just use strings ``.to("cuda")``
z = x + y
print(z)
print(z.to("cpu", torch.double)) # ``.to`` can also change dtype together!
বাইরে:
tensor([0.6313], device='cuda:0')
tensor([0.6313], dtype=torch.float64)
স্ক্রিপ্টের মোট চলমান সময়: (0 মিনিট 7.649 সেকেন্ড)
0 comments:
Post a Comment