ニューラルネットワーク層構築方法のpytorch

     ニューラルネットワークの層構造、主に二つの方法、(torch.nn.Moudleを継承)クラスを用いたものであり、一方は迅速torch.nn.Sequentialを構築するために使用されます。

   1)まず、データをロードします。

 
 
輸入トーチ
Fとしてインポートtorch.nn.functional
回帰 
X = torch.unsqueeze(torch.linspace(-1,1,100)、薄暗い= 1 
Y = x.pow(2)+ 0.2 * torch.rand(x.size())

   2)テンプレートの二つの方法:

     2.1:クラス(クラス):これは実質的に固定されているフォーマットは、initはフィードバックの前に実施される層ニューロンの数、前方に継承された、各ニューラル層にnn.Moudle機能をニューロンの数を定義する(プラス励起機能)  

法1の
クラスネット(torch.nn.Module):
     デフ __init__ (自己):
        スーパー(ネット、自己)。__init__ ()
         通過
    DEF フォワード(自己、X):
         合格

例えば:

法1の
クラスネット(torch.nn.Module):
     DEF  __init__ (自己):
        スーパー(ネット、セルフ)__init__ ()
        self.hidden = torch.nn.Linear(1,10 
        self.prediction = torch.nn。線形(10,1 DEF フォワード(セルフ、X):
        X = F.relu(self.hidden(X))  使用relu励起の関数として 
        X = self.prediction(X)      出力層への最後の隠れ層ではありません励起関数を使用して、あなたはまた、(通常は追加なし)を追加することができ
        、戻りXの
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)
)
「「」

    両方とも実質的に等しく、その場所にほとんど差が迅速に立設された励起関数(RELUは....)ニューラル層として見られます。

 

おすすめ

転載: www.cnblogs.com/carrollCN/p/11373528.html