Режим обучения в PyTorch
Пока сеть учат на примерах, модуль
держат в режиме обучения. Метод
train включает его
для всего дерева подмодулей:
import torch
import torch.nn as nn
class TinyNet(nn.Module):
def __init__(self):
super().__init__()
self.layer = nn.Linear(2, 3)
def forward(self, x):
return self.layer(x)
net = TinyNet()
net.train()
print(net.training) # выведет True
После вызова атрибут training
становится истинным. Режим проверки
без подгонки весов разберём
в следующем уроке. Новый объект
по умолчанию тоже готов к обучению:
import torch
import torch.nn as nn
class TinyNet(nn.Module):
def __init__(self):
super().__init__()
self.layer = nn.Linear(2, 3)
def forward(self, x):
return self.layer(x)
net = TinyNet()
print(net.training) # выведет True
Создайте модуль с линейным слоем
2 на 1. Включите
режим, при котором модель готовят
к шагам обучения, и выведите
значение служебного флага объекта.
Соберите модуль с одним линейным слоем на три входа и два выхода. Переведите его в состояние для учёбы по данным и выведите, истинен ли флаг режима у объекта.
Опишите класс с линейным слоем
4 на 4. После
создания объекта явно включите
режим обучения и выведите флаг
режима модели.