1. 程式人生 > >pytorch入門(2)-------神經網路的構建

pytorch入門(2)-------神經網路的構建

https://blog.csdn.net/broken_promise/article/details/81174760

一、神經網路的構建:

激勵函式的選擇,如果層數較少的神經網路,激勵函式有多種選擇,在影象卷積神經網路中,激勵函式選擇ReLu,在迴圈神經網路中,選擇ReL或者Tanh。

所有的層結構和損失函式都來自於torch.nn,所有的模型構建都是從這個基類nn.Module繼承的。

 

 定義完模型, 來定義損失函式, 常見的損失函式都定義在 nn 中. 這樣我們就能求得輸出和真是目標之間的損失函式.

criterion = nn.CrossEntropyLoss()
loss 
= criterion(output, target)

二、神經網路的優化:

optimizer = torch.optim(model.parameters(), lr=0.01, momentum=0.9) 

三、模型的儲存和載入:

       在 Pytorch 中使用 torch.save 來儲存模型的結構和引數,有兩種方式
          1. 儲存整個模型的結構資訊和引數資訊, 儲存的物件是模型 model
          2. 儲存模型的引數, 儲存的物件是模型的狀態 model.state_dict()
       save 的第一個引數是儲存的物件, 第二個是儲存的路徑及名稱

torch.save(model, './model.pth')   # 方式1
torch.save(model.state_dict(), './model_state.pth') # 方式2

    載入模型對應兩種儲存方式也有兩種
          1. 載入完整的模型結構和引數資訊, 使用 load_model = torch.load(‘model.pth’) 在網路較大的時候記載時間教程, 儲存空間較大
          2. 載入模型引數資訊, 需要先匯入模型的結構, 然後通過 model.load_state_dict(torch.load(‘model_state.pth’)) 來匯入.