Семинар. Нейронная сеть на Pytorch
Прежде чем начать создание нейронной сети на Pytorch, необходимо убедиться, что у вас установлен Python и Pytorch. Если вы еще не установили Pytorch, вы можете сделать это с помощью следующей команды:
pip install torch torchvision torchaudio
После установки Pytorch давайте создадим нейронную сеть. Ниже приведен пример создания простой нейронной сети с одним скрытым слоем.
import torch
import torch.nn as nn
import torch.optim as optim
import numpy as np
# Создание примерных данных
X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
y = np.array([0, 1, 1, 0])
# Преобразование данных в тензоры
X = torch.Tensor(X)
y = torch.Tensor(y).view(-1, 1)
# Создание нейронной сети
class NeuralNetwork(nn.Module):
def __init__(self):
super(NeuralNetwork, self).__init__()
self.layer1 = nn.Linear(2, 3)
self.layer2 = nn.Linear(3, 1)
def forward(self, x):
x = torch.sigmoid(self.layer1(x))
x = torch.sigmoid(self.layer2(x))
return x
# Обучение нейронной сети
model = NeuralNetwork()
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.1)
for epoch in range(1000):
optimizer.zero_grad()
output = model(X)
loss = criterion(output, y)
loss.backward()
optimizer.step()
# Проверка работы нейронной сети
with torch.no_grad():
print(model(X).round())
Это простой пример создания нейронной сети на Pytorch. В данном случае мы создали нейронную сеть с одним скрытым слоем и использовали функцию активации сигмоид для обоих слоев. Мы также использовали среднеквадратичную ошибку в качестве функции потерь и стохастический градиентный спуск в качестве оптимизатора.
Мы обучили нейронную сеть на примерных данных и проверили ее работоспособность, выведя округленные предсказания модели.
Этот пример дает вам базовое представление о том, как создать нейронную сеть на Pytorch. Однако, существует множество других возможностей и методов обучения нейронных сетей на Pytorch, которые вы можете изучить и применить в своих проектах. Надеемся, что этот семинар поможет вам начать работу с Pytorch и построить более сложные нейронные сети в будущем.
Хорошие лекции, но объяснений крайне мало, или нужна офигенная база, или надо дополнительно по несколько часов изучать документацию
Неприятный семинарист. Надеюсь, курс DL когда-нибудь перезапишут с нормальным качеством микрофонов и лучшими лекторами и семинаристами…
Почему в данном примере features = 784?
13:41 забыли вставить nn.ReLu() между линейными слоями
Всё хорошо. Только мало объясняет. Как работает код.
спасибо за лекцию. Александр, красавчик: всё доступно и чётко
Ребята конечно хорошие, сразу видно что с С++ пришли, раз отступы делают по 2 символа. (см PEP-8 🙂 Use 4 spaces per indentation level. )
Большое спасибо за лекцию
Что он дрыгает мышкой вверх-вниз, приходится каждые 5 секунд на паузу ставить, чтобы прочитать код