Amaliy ish 6 Bajardi: Sirojiddinov Z




Download 302,46 Kb.
Sana22.12.2023
Hajmi302,46 Kb.
#127081

MUHAMMAD AL-XORAZMIY NOMIDAGI


TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI




Robotexnikada sun’iy intellektga kirish
Amaliy ish - 6
Bajardi: Sirojiddinov Z.
Tekshirdi: Xasanov Umidjon


Toshkent 2023
Mavzu: Chuqur o’qitish (Deep Learning) algoritmlari asosida masala yechish
Chuqur o‘qitish algoritmlari ham neyron tarmog‘i ishlab chiqishda muhim rol o‘ynaydi. Bu algoritmlar kompyuter tizimlarini o‘qitib, ma’lumotlarni tushunish, tasavvurlash, va boshqa vazifalarni bajarishda foydalaniladi. Ular umumiy ravishda neyron tarmog‘ining strukturasi va uzluksizligini o‘rganish, ya'ni boshqa so‘z bilan aytganda, kompyuter tizimlarini biroz "o‘zini o‘rganish" orqali ma’lumotlarni tushunish va bajargan vazifalarni boshqarishni o‘rganishni o‘z ichiga oladi.

Bu algoritmlarning bir qismini endi faqatgina tushunishim mumkin, chunki men ham birorta bir mutaxassislik sohibi emasman. Lekin, bu sohadagi ilmiy literaturadan, onlayn kurslardan yoki ma’lumotlarni tarqatuvchi resurslardan foydalanib, shu sohani o‘rganishingiz mumkin. Chuqur o‘qitish algoritmlari ko‘p o‘rnatilgan tizimlarning yaratilishida, axborotni tushunish va baholashda, ta'limda va boshqa sohalar bilan bog‘liq vazifalarni bajarishda ishlatiladi.



Bu jarayon o‘rganish uchun sabrli va tizimli ishlashni talab qiladi, lekin natijaga erishish uchun qulay va foydali bo‘ladi. Bo‘lgan ma’lumotlarni amaliyotga o‘tish, tajribani olish, va so‘ngra xotirjamlikni o‘rganish, bu yo‘nalishda rivojlanish uchun muhimdir.

import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import Dataset, DataLoader
class KemalarDataset(Dataset):
def init(self, data_path):
self.data = torch.tensor(data_path, dtype=torch.float32)
def len(self):
return len(self.data)
def getitem(self, idx):
sample = self.data[idx, :-1]
label = int(self.data[idx, -1])
return sample, label
class KemalarModel(nn.Module):
def init(self, input_size, hidden_size, output_size):
super(KemalarModel, self).init()
self.fc1 = nn.Linear(input_size, hidden_size)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(hidden_size, output_size)
def forward(self, x):
x = self.fc1(x)
x = self.relu(x)
x = self.fc2(x)
return x
def train(model, dataloader, criterion, optimizer, num_epochs=1000):
for epoch in range(num_epochs):
for inputs, labels in dataloader:
outputs = model(inputs)
loss = criterion(outputs, labels)
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (epoch + 1) % 100 == 0:
print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')
data_path = [
[150, 130, 290, 0],
[150, 155, 340, 0],
[150, 166, 332, 0],
[111, 110, 60, 1],
[110, 96, 44, 1],
[92, 95, 41, 1],
[44, 36, 12, 2],
[38, 36, 8, 2],
[33, 23, 6, 2],
]
dataset =KemalarDataset(data_path)
dataloader = DataLoader(dataset, batch_size=8, shuffle=True)
input_size = 3 # Uzunlik, balandlik, og'irlik
hidden_size = 16
output_size = 3
model = KemalarModel(input_size, hidden_size, output_size)
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
train(model, dataloader, criterion, optimizer, num_epochs=1000)
with torch.no_grad():
test_data = torch.tensor([[210,170,395]], dtype=torch.float32)
predicted_class = torch.argmax(model(test_data))
print(f'Bashoratli sinf: {predicted_class.item()}')

Sizning kodingizni ko'rib, siz ma'lumotlarni sinovdan o'tkazish uchun ikkita sinf tuzib olamiz.MashinaSet sinfi, datani o'z ichiga oladi va PyTorch Dataset protokoliga muvofiq bo'lgan metodlarni implement qiladi. Bu sinfning maqsadi, datani tugunlarga ajratib qo'yish va u haqida ma'lumotlarni berish.Mashinalar sinfi, bir necha liniyali qatlamli (fully connected) neyron tarmoqini (network) ifodalaydi. Bu tarmoqda ReLU aktivatsiya funktsiyasi ham ishlatilgan.Sizning train funktsiyangiz esa modelni o'qitish jarayonini (training loop) ifodalaydi. Uning orqali, har bir epoch uchun ma'lumotlarni o'qitib, modelni yangilaydi.



Endi, torch.no_grad() blokida test qilishni amalga oshirgan bo'lib, berilgan test ma'lumotini modelga sig'magan holda bajarishni ko'rish uchun.


Download 302,46 Kb.




Download 302,46 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Amaliy ish 6 Bajardi: Sirojiddinov Z

Download 302,46 Kb.