اصول Pytorch: یک راهنمای دوستانه مبتدی

اگر سفر خود را در هوش مصنوعی (AI) یا یادگیری عمیق شروع می کنید ، Pytorch یکی از بهترین چارچوب ها برای یادگیری است. به دلیل انعطاف پذیری و سهولت استفاده ، در تحقیقات و صنعت بسیار مورد استفاده قرار می گیرد. Pytorch به دلیل سادگی ، کارآیی و پشتیبانی قوی جامعه ، برای کارهایی مانند دید رایانه ، پردازش زبان طبیعی و یادگیری تقویت استفاده می شود. در این وبلاگ ، اصول اولیه Pytorch را به زبان ساده طی خواهیم کرد.
Pytorch چیست؟
Pytorch یک چارچوب یادگیری عمیق منبع باز است که توسط فیس بوک ساخته شده است. این ماده عمدتاً برای ساختن شبکه های عصبی و انجام محاسبات در مجموعه داده های بزرگ استفاده می شود. Pytorch محبوب است زیرا:
- این است استفاده آسان و یک نحو ساده دارد.
- پشتیبانی می کند نمودارهای محاسباتی پویا، به این معنی که می توانید هنگام اجرای آن ، مدل خود را تغییر دهید.
- خوب با ادغام پایتون و نوپی، ساخت آن دوستانه مبتدی.
- آن را فراهم می کند شتاب GPU، که به آموزش سریعتر مدل ها کمک می کند.
نصب پیتورچ
اگر نمی خواهید Pytorch را به صورت محلی نصب کنید ، می توانید استفاده کنید Google Colab، که یک محیط مبتنی بر ابر را با Pytorch که از قبل نصب شده است فراهم می کند. این به شما امکان می دهد کد Pytorch را بدون هیچ گونه تنظیم در دستگاه محلی خود اجرا کنید. به سادگی به Google Colab بروید و یک نوت بوک جدید ایجاد کنید.
قبل از استفاده از Pytorch ، باید آن را نصب کنید. می توانید Pytorch را با استفاده از PIP نصب کنید:
pip install torch torchvision torchaudio
یا اگر از آناکوندا استفاده می کنید:
conda install pytorch torchvision torchaudio -c pytorch
برای اطلاعات بیشتر ، راهنمای رسمی نصب را بررسی کنید.
Tensors: بلوک های ساختمان Pytorch
بوها تنشور یک ساختار داده اساسی در Pytorch است. این شبیه به یک آرایه NUMPY است اما برای محاسبات سریعتر از این مزیت استفاده می کند.
ایجاد تانسور
با استفاده از:
import torch
tensor1 = torch.tensor([1, 2, 3, 4])
print(tensor1)
برای درک عمیق تر از تنش ها ، به مستندات Tensor Pytorch مراجعه کنید.
دستکاری تانسور در پیتورچ
پس از ایجاد تانسور ، اغلب نیاز به اصلاح یا انجام عملیات بر روی آنها دارید. این شامل می شود حساب اصلیبا تغییر شکلبا هماهنگی، و بیشتر
عملیات اساسی حساب
شما می توانید عملیات عناوین مانند اضافه ، تفریق ، ضرب و تقسیم را انجام دهید.
tensor_a = torch.tensor([2, 4, 6])
tensor_b = torch.tensor([1, 2, 3])
# Addition
sum_tensor = tensor_a + tensor_b
print(sum_tensor) # Output: tensor([3, 6, 9])
# Subtraction
diff_tensor = tensor_a - tensor_b
print(diff_tensor) # Output: tensor([1, 2, 3])
# Element-wise Multiplication
mul_tensor = tensor_a * tensor_b
print(mul_tensor) # Output: tensor([2, 8, 18])
# Element-wise Division
div_tensor = tensor_a / tensor_b
print(div_tensor) # Output: tensor([2., 2., 2.])
ضرب ماتریس
ضرب ماتریس با ضرب عناصر متفاوت است. در Pytorch می توانید استفاده کنید torch.matmul()
یا @
اپراتور
matrix1 = torch.tensor([[1, 2], [3, 4]])
matrix2 = torch.tensor([[5, 6], [7, 8]])
# Matrix multiplication
matmul_result = torch.matmul(matrix1, matrix2)
print(matmul_result)
# Alternatively, using the @ operator
matmul_result2 = matrix1 @ matrix2
print(matmul_result2)
تغییر شکل تانسور
تغییر شکل هنگام تبدیل داده ها به قالب صحیح برای آموزش مدل مفید است.
tensor_c = torch.arange(9) # Creates a tensor with values from 0 to 8
print(tensor_c)
reshaped_tensor = tensor_c.view(3, 3) # Reshape to 3x3
print(reshaped_tensor)
تانسور در حال گسترش و هماهنگ کردن
می توانید ابعاد تنشور را تغییر داده یا چندین تنش را ترکیب کنید.
tensor_d = torch.tensor([[1, 2], [3, 4]])
# Expand dimensions
expanded_tensor = tensor_d.unsqueeze(0) # Adds a new dimension at index 0
print(expanded_tensor.shape) # Output: torch.Size([1, 2, 2])
# Concatenate tensors along a specific dimension
tensor_e = torch.tensor([[5, 6]])
concatenated_tensor = torch.cat((tensor_d, tensor_e), dim=0)
print(concatenated_tensor)
نمایه سازی و برش تانسور
با استفاده از فهرست بندی می توانید به عناصر خاص یک تانسور دسترسی پیدا کنید:
tensor_f = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Access a single element
print(tensor_f[0, 1]) # Output: 2
# Slice a tensor (get first row)
print(tensor_f[0, :]) # Output: tensor([1, 2, 3])
برای اطلاعات بیشتر ، مستندات فهرست بندی Tensor را بررسی کنید.
با استفاده از GPU در Pytorch
Pytorch به شما امکان می دهد تا برای محاسبات سریعتر تانسور را روی یک GPU اجرا کنید. می توانید بررسی کنید که آیا یک پردازنده گرافیکی با استفاده از آن در دسترس است:
if torch.cuda.is_available():
print("GPU is available!")
device = torch.device("cuda")
else:
print("Using CPU")
device = torch.device("cpu")
با استفاده از: می توانید یک تانسور را به GPU منتقل کنید:
tensor_gpu = tensor1.to(device)
print(tensor_gpu)
برای اطلاعات بیشتر در مورد شتاب GPU ، به مستندات CUDA مراجعه کنید.
ساختن یک شبکه عصبی ساده در پیتورچ
یک شبکه عصبی در Pytorch با استفاده از torch.nn
ماژول در اینجا یک مثال ساده از یک شبکه عصبی اساسی با یک لایه پنهان آورده شده است:
import torch.nn as nn
# Define a simple neural network
class SimpleNN(nn.Module):
def __init__(self):
super(SimpleNN, self).__init__()
self.layer1 = nn.Linear(2, 3)
self.layer2 = nn.Linear(3, 1)
def forward(self, x):
x = torch.relu(self.layer1(x))
x = self.layer2(x)
return x
# Create an instance of the model
model = SimpleNN()
print(model)
برای اطلاعات بیشتر در مورد شبکه های عصبی ، مستندات ماژول Pytorch NN را بررسی کنید.
پایان
Pytorch یک چارچوب قدرتمند و مبتدی برای یادگیری عمیق است. در این وبلاگ ، ما را پوشش دادیم:
- Pytorch چیست و چرا مفید است.
- نحوه نصب Pytorch.
- تانسور و عملیات اساسی.
- دستکاری تانسور: حسابی ، تغییر شکل ، نمایه سازی و ضرب ماتریس.
- استفاده از GPU برای محاسبات سریعتر.
- ساختن یک شبکه عصبی ساده.
این فقط آغاز است! در وبلاگ های بعدی ، ما با کاوش عمیق تر به Pytorch شیرجه می زنیم:
- DataSet و Dataloader برای دستیابی به داده های بزرگ به طور کارآمد.
- آموزش مدلهای یادگیری عمیق گام به گام.
- ویژگی های پیشرفته Pytorch مانند autograd ، ارزیابی مدل و تکنیک های بهینه سازی.
برای قسمت بعدی این سری Pytorch با ما همراه باشید! برنامه نویسی مبارک!