目錄
PyTorch 動態神經網絡 (莫煩 Python 教學)
pytorch教程系列 | 莫煩Python
PyTorch 簡介
最大優點就是建立的神經網絡是動態的。另外,更容易理解底層代碼。
PyTorch 會安裝兩個模塊, 一個是 torch, 一個 torchvision。torch 是主模塊, 用來搭建神經網絡的;torchvision 是輔模塊, 有數據庫, 還有一些已經訓練好的神經網絡等着你直接用, 比如 (VGG, AlexNet, ResNet).
PyTorch 神經網絡基礎
- numpy.ndarray和torch.Tensor之間轉換:
torch_data = torch.from_numpy(np_data)
np_data = torch_data.numpy()
- 矩陣運算最重要!!
- 激勵函數。
建造第一個神經網絡
關係擬合(迴歸)
- 建立數據集
- 建立神經網絡 torch.nn.Module
- 訓練網絡 torch.optim. 和 torch.nn.MSELoss()
optimizer.zero_grad() # 清空上一步的殘餘更新參數值
loss.backward() # 誤差反向傳播, 計算參數更新值
optimizer.step() # 將參數更新值施加到 net 的 parameters 上
區分類型(分類)
- 建立數據集
- 建立神經網絡
- 訓練網絡 torch.nn.CrossEntropyLoss()
快速搭建法
torch.nn.Sequential()
保存和提取
def save():
def restore_net(): 提取整個神經網絡, 網絡大的時候可能會比較慢
def restore_params(): 提取所有的參數
批訓練
torch.utils.data
TensorDataset(x , y)
DataLoader()
優化器:加速神經網絡訓練
SGD Momentum AdaGrad RMSProp Adam等
高級神經網絡結構
CNN
Conv2d() —— ReLU() —— MaxPool2d()
RNN:序列數據
分類
迴歸
LSTM
輸入控制
輸出控制
忘記控制
AutoEncoder
壓縮與解壓
DQN 強化學習
神經網絡 + Q learning
GAN
Generator:由隨機數生成有意義的數據
Discriminator:判斷真實數據和虛擬數據
高階內容
pytorch
動態
GPU加速
過擬合
增加數據量
正則化 L1 L2 dropout
批標準化
mini-batch