PyTorch (1)
Quick to start
Pytorch vs Tensorflow
- Pytorch + Caffine2 :
- FaceBook開發
- 一邊推一邊算
- 靈活,方便調適,主要學術界
- Tensorflow2.0+Karis :
- Google開發
- 先寫公式,在代數字
- 開發時間早,生態好,主要工業界
創建 Models
繼承 nn.Module
def __init__(self,)
: 定義網路 每層結構(layer)
def forward(self)
: 資料如何在網路中傳遞
super()
= super(className,self)
,找到MOR裡,claaaName後,最先有__init__
ex:
python
1 | class MyNetWork(nn.Module): |
查看
plaintext
1 | model = MyNetWork() |
Optimizing(最佳化) Model Parameters
訓練模型需要:
- Loss Function
- Optimizer
python
1 | loss_fn = nn.CrossEntropyLoss() |
在單個訓練循環中,模型對訓練數據集(分批輸入)進行預測,並反向傳播預測誤差以調整模型的參數。
py
1 | def train(dataloader, model, loss_fn, optimizer): |
訓練可在cpu或gpu
py
1 | device = "cuda" if torch.cuda.is_available() else "cpu" |
we can put instance to cpu or gpu
plaintext
1 | model = className().to(device) |
對比模型在test dataset以確保學習
py
1 | def test(dataloader, model, loss_fn): |
每個epoch 模型
我們會打印模型accuracy和loss
py
1 | epochs = 5 |
保存模型
py
1 | torch.save(model.state_dict(), "model.pth") |
加載模型
py
1 | model = NeuralNetwork() |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 OPH BLOG!
評論
ValineDisqus
Powered By Valine
v1.5.2
v1.5.2