Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PyTorchで簡単なNN作り

betashort
May 09, 2020
140

 PyTorchで簡単なNN作り

betashort

May 09, 2020
Tweet

Transcript

  1. 2. モデルの定義 class NNNet(nn.Module): def __init__(self, in_features, num_class=2): super(NNNet, self).__init__()

    self.net = nn.Sequential( nn.Linear(5, 3), nn.ReLU(), nn.Linear(3, 2), ) def forward(self, x): out = self.net(x) return out input output forward
  2. 3. 学習の⼿順-⽤意するもの- 1. 損失関数(LossFunction) #==== 損失関数の定義 ==== criterion = nn.CrossEntropyLoss()

    #==== Optimizerの定義 ==== learning_rate = 0.01 optimizer = torch.optim.Adam( model.parameters(), lr=learning_rate) 2. 最適化アルゴリズム(Optimizer) Loss Function input output correct loss optimize
  3. 3. 学習の⼿順-更新- #==== Optimizerの初期化 ==== optimizer.zero_grad() forward backward input output

    Loss Function optimize #==== forward processing ==== outputs = model(images) #==== Loss calcuration ==== loss = criterion(outputs, labels) #==== backward processing ==== loss.backward() #==== update optimizer ==== optimizer.step()
  4. 5. モデルの保存とロード • 学習が終わったモデルは、再現できるように保存する #====== 保存 ======= torch.save(model.state_dict(), "model.pth") •

    学習済みのモデルを、読み込む model = NNNet(64) #====== ロード ======= model.load_state_dict(torch.load("model.pth", map_location=device))