Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Нейронные сети

Автор:   •  Январь 15, 2023  •  Лабораторная работа  •  1,580 Слов (7 Страниц)  •  90 Просмотры

Страница 1 из 7

Министерство образования и науки России
ФГБОУ ВО Ульяновский государственный университет

Факультет Математики, информационных и авиационных технологий
Кафедра Телекоммуникационные технологии и сети

Лабораторная работа №4

По дисциплине «Интеллектуальные системы и технологии»

Нейронные сети

Выполнил студент                   ИС-0-18/1                                 Гиматдинов М.А.
                                                                         
                                                         

Преподаватель                            Доцент                                 Липатова С.В.

               


Ульяновск
2021 г.

Цель: получение практических навыков программирования нейронных сетей на языке Python с использованием библиотеки PyTorch.

Задание: используя программу Jupiter Notebook, язык программирования Python, библиотеку PyTorch построить нейронную сеть по варианту и использовать для получения результата.

[pic 1]

Код:

import torch

import torch.nn as nn

import torchvision.transforms as transforms

import torchvision.datasets as dsets

import matplotlib.pyplot as plt

    # Загрузка / генерация данных для обучения НС

#Создаем обучающую и тестовую выборки на базе CIFAR10

train_dataset = dsets.CIFAR10(root = './data', 

                            train = True, 

                            transform = transforms.ToTensor(), 

                            download = True)

test_dataset = dsets.CIFAR10(root = './data',

                           train = False,

                           transform = transforms.ToTensor())

#Задаем параметры

#Размер партии

batch_size = 256

#Количество итераций

n_iters = 1100

#Количество эпох

num_epochs = n_iters / (len(train_dataset) / batch_size)

num_epochs = int(num_epochs)

#Подаем данные в загрузчик

train_loader = torch.utils.data.DataLoader(dataset = train_dataset,

                                           batch_size = batch_size,

                                           shuffle = True)

test_loader = torch.utils.data.DataLoader(dataset = test_dataset,

                                          batch_size = batch_size,

                                          shuffle = False)

    # Построения НС

#Определяем рекуррентную нейронную сеть

class RNNModel(nn.Module):

    def __init__(self, input_dim, hidden_dim, layer_dim, output_dim):

        super(RNNModel, self).__init__()

        

         #Размерность скрытых слоев

        self.hidden_dim = hidden_dim

        

         #Количество скрытых слоев

        self.layer_dim = layer_dim

        self.rnn = nn.RNN(input_dim, hidden_dim, layer_dim, batch_first=True,

                          nonlinearity='tanh')

        

         #Слой считывания

        self.fc = nn.Linear(hidden_dim, output_dim)

        

    def forward(self, x):

        h0 = torch.zeros(self.layer_dim, x.size(0), self.hidden_dim).requires_grad_()

        out, hn = self.rnn(x, h0.detach())

        out = self.fc(out[:, -1, :])

        return out

    #Задаем параметры НС

#Количество входов

input_dim = 16

#Размерность скрытого слоя

hidden_dim = 30

#Количество скрытых слоев

layer_dim = 2

#Количество выходов

output_dim = 10

#Обучаемость

learning_rate = 0.001

...

Скачать:   txt (8 Kb)   pdf (220 Kb)   docx (135.4 Kb)  
Продолжить читать еще 6 страниц(ы) »
Доступно только на Essays.club