1.簡介
優點:
編程簡單,類似Numpy
只需要設置前向傳播,反向傳播過程梯度自動計算
動態圖,方便調試
2.基本組成元素
Tensor:基本數據單元,多維數組(data)
Vairable:等同於帶梯度的Tensor(data + grad + creator),高版本中與tenesor合並
nn:卷積、池化、激活函數等層的實現
Module:網絡結構,包含一系列Tensor和nn的計算過程
torch基本操作:運算
只保留葉子節點的梯度,或使用retain_grad(),保留中間變量的梯度
nn----卷積、池化、激活等層,function只定義一個操作,無法保存參數
帶有參數的放在網絡的初始化中,不帶參數的放在前向傳播中
3.構建神經網絡
步驟:
准備數據:Dataset Dataloader,可以快速、提前提取數據到內存中,提供框架,只需要寫核心函數,提供多種數據增廣支持
網絡設計:初始化、forward
損失函數:nn.entrophy, nn.MSELoss
參數更新:torch.optim optimizer = optimSGD(net.parameters(), lr=args.lr, momentum = 0.9, weight_decay=1e-4)
進階
1)多GPU並行,torch.nn.DataParallel單機多卡
2)cpp extension擴展,實現新的功能,加速。過程:使用.c實現,將其編譯成python可用的,最后加入pytorch(function, module)網絡中
3)tensorboardX可視化,安裝tensorflow,安裝tensorboardX,初始化,記錄,可視化