標頭檔案:
import torch as timport torchvision as tv
import torchvision.transforms as transforms
from torch.autograd import variable
import torch.nn as nnimport torch.nn.functional as f
1.資料載入及預處理
1)主要函式:
t.utils.data.dataloader:匯入資料,制定batch_size
tv.transform.compose:資料預處理的操作集,如將資料轉為tensor格式,歸一化等
主要需要載入訓練集和測試集
2)一些技巧:
資料載入:如果是常見開源庫,可以用torchvision載入;
載入完以後視覺化看一下
2.定義網路(net)
用乙個名為net的類定義
需要繼承torch.nn中的nn.module(注意m大寫)
net類包括初始化函式和forward函式兩部分
1)初始化:_init__(self): 放置有可學習引數的層(注意init前後均是兩個下劃線)
a)對nn.module初始化: super(net, self)__init__()
b)定義卷積和全連線操作(用到nn.conv2d(), nn.linear())
2)前向操作:forward(self, x)
輸入x,按照網路前向傳播步驟,呼叫初始化中定義的卷積和全連線操作,得到最後輸出,並return
3.定義損失函式和優化器
損失函式評估結果與label間的差距,通過backward損失函式,可以計算出每個引數的梯度,然後通過優化器調整引數
損失函式nn中已定義好
import torch.optim as optim優化器在optim中定義好,呼叫即可
4.訓練網路(目的是得出最佳引數的網路)
epoch
i,data
1)獲取訓練資料和標籤
2)資料輸入網路,前向傳播
3)網路輸出和標籤輸入損失函式,求得損失
4)清零優化器
5)損失反向傳播
6)更新優化器,更新引數
7)累加損失,資訊列印,用於監測每個batch的平均損失,主要看損失有沒有變小
訓練好網路類後建立乙個網路,即net=net()
5.測試網路
看實際標籤和**結果
把測試資料輸入網路,將其輸出和label比較,看二者一致樣本佔全部樣本比重,即為測試結果
6.在gpu訓練
將網路、資料、標籤都轉為cuda
7.其他:4.26前的pytorch版本,網路輸入為variable,資料在輸入net前需要從tensor轉為variable,需要from
torch.autograd
import
variable
4.26 pytorch中variable和tensor區別不大,無需再轉換
pytorch基本流程
tensor格式轉換 主要是講numpy格式轉換為tensor格式 x train,y train,x valid,y valid map torch.tensor,x train,y train,x valid,y valid torch.nn.finction模組與torch.nn.module...
pytorch 深度學習
pytorch深度學習實踐 訓練集 開發集 模型評估 測試集。f x wx b f x wx b f x w x bloss 乙個樣本 cost mean square error training set 區域性最優,不一定全域性最優。鞍點 梯度為0,但無法繼續迭代。w w c ost ww w ...
深度學習 安裝pytorch
1 官網 2 cmd中執行 注意 直接複製run this command 裡面的安裝 注意 把pip3的3刪除 第一步 pip install i 第二步 pip install torchvision 注意 第一步和第二步可以合併為pip install i torchvision 3 安裝技巧...