Добавил:
Кафедра ВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проект / НС_проект_презентация.pptx
Скачиваний:
6
Добавлен:
07.04.2023
Размер:
2.18 Mб
Скачать

Разработка модели нейронной сети для классификации изображений

Постановка задачи

Целями разработки проекта являются:

получение навыков работы со свёрточными нейронными сетями (CNN);

получение опыта подготовки датасета к обучению;

создание и анализ архитектур для нейронных сетей на Python.

Введение

1.Аугментация

2.Создание новой папочной структуры

3.Распаковка и определение меток класса

4.Разработка архитектур и обучение

Аугментация

01

Resize

Выбор случайного обреза 224x224

03

Random Flip

02

Random

Rotation

Случайный поворот на небольшой угол в 10*

04

Gauss Blur

Рандомное отражение

Применение

по горизонтиали

Гауссовского размытия

Создание новой папочной структуры

Принципы предыдущих

 

архитектур

 

Наследовани

Добавление

Вспомогательн

е класса

больших

ый класс

Dataset

блоков

 

Мы пытались создать

Мы пытались добавлять

Мы пытались

класс датасета для

как можно больше

добавить

упрощения работы с

блоков, но в таком

вспомогательный

файловой структурой.

случае возрастает

класс регулятора,

Однако из-за накладных

объём памяти модели

чтобы не считать

ограничений пришлось

(нехватка GPU), поэтому

коэффициенты

отказаться от этой идеи

мы отказались от этой

свёртки, но это, к

 

идеи

сожалению, не

 

 

помогло

Собственная архитектура

class Net3(nn.Module): def __init__(self):

super(Net3,self).__init__()

self.relu = nn.ReLU()

 

self.conv1

=

nn.Conv2d(3, 8, kernel_size =3, stride =1, padding = 1)

self.conv2

=

nn.Conv2d(8, 16, kernel_size =3, stride =1, padding= 1)

self.conv3

=

nn.Conv2d(16,

32, kernel_size =3, stride =1, padding= 1)

self.conv4

=

nn.Conv2d(32,

64, kernel_size =3, stride =1, padding= 1)

self.conv5

=

nn.Conv2d(64,

128, kernel_size =3, stride =1, padding= 1)

self.maxpool

= nn.MaxPool2d(2, 2)

self.drop1

=

nn.Dropout(p = 0.5)

self.fc1 =

nn.Linear(128 *

7 * 7, 6272)

self.fc2 =

nn.Linear(6272,

len(classes))

def forward(self, x): x = self.conv1(x) x = self.relu(x)

x = self.maxpool(x) x = self.drop1(x)

x = self.conv2(x) x = self.relu(x)

x = self.maxpool(x)

x = self.conv3(x) x = self.relu(x)

x = self.maxpool(x) x = self.drop1(x)

x = self.conv4(x)

x = self.maxpool(x)

x = self.conv5(x) x = self.relu(x)

x = self.maxpool(x)

x= x.view(x.size(0),-1)

x= self.relu(self.fc1(x))

x= self.fc2(x)

return torch.log_softmax(x, dim=1)

VGG11

MobileNet

Соседние файлы в папке Проект