Нейронные сети метод строительства слоя pytorch

     структуры слоя нейронной сети, в основном, два способа, один с использованием класса (унаследованный torch.nn.Moudle), один используется для быстрого создания torch.nn.Sequential.

   1) Во-первых, мы загружаем данные:

 
 
импорт факел 
импорта torch.nn.functional , как F
# Регрессионный 
Х = torch.unsqueeze (torch.linspace (-1,1,100), DIM =. 1 ) 
Y = x.pow (2) + 0,2 * torch.rand (x.size ())

   2) два метода шаблона:

     2.1: класс (класс): Это, по существу, фиксированный формат, инициализации определяют количество нейронов в каждом слое нейронного, количество слоев и нейронов, вперед унаследовала nn.Moudle функцию, которая будет реализован до обратной связи (плюс возбуждение функция)  

# Method1 
класса Net (torch.nn.Module):
     Защита  __init__ (Я): 
        супер (Net, самость). __init__ ()
         передать 
    Защиту вперед (я, х):
         пропуск

Например:

# Method1 
класса Net (torch.nn.Module):
     DEF  __init__ (Self): 
        . Супер (Net, Self) __init__ () 
        self.hidden = torch.nn.Linear (1,10 )      
        self.prediction = torch.nn. Линейный (10,1 )
     DEF вперед (Я, Х): 
        Х = F.relu (self.hidden (Х))   # использование Relu как функция возбуждения 
        X = self.prediction (Х)       # последнего скрытого слоя к выходному слою не с помощью функции возбуждения, вы можете также добавить ( как правило , без добавления) 
        возвращение X 
NET = Net ()
 для печати (NET)
 «» ' 
# выходной: 
Net (
  (Скрытый): Линейный (in_features = 1, out_features = 10, смещение = True) #hidden является self.hidden, нет особого смысла, вы не можете назвать другого 
  (прогноз): Линейный (in_features = 10, out_features = 1, смещение Правда =) 
) 
'' '

    2,2: быстро построить

   Шаблон:

NET2 = torch.nn.Sequential ()

  Например: NET2 = torch.nn.Sequential (

 
 
net2 = torch.nn.Sequential(
    torch.nn.Linear ( 1, 10 ), 
    torch.nn.ReLU (), 
    torch.nn.Linear ( 10, 1 ) 
) 
печати (NET2)
''»
Sequential (
  (0): Linear (1 -> 10)
  (1): ReLU ()
  (2): Linear (10 -> 1)
)
«»»

    И по существу равно, небольшая разница в том, что на месте быстро возвела функцию возбуждения (РЕЛ ....) рассматривается как нейронный слой.

 

рекомендация

отwww.cnblogs.com/carrollCN/p/11373528.html