深度學習基本流程(pytorch pycharm)

2021-08-19 11:41:00 字數 2113 閱讀 3838

標頭檔案:

import torch as t

import torchvision as tv

import torchvision.transforms as transforms

from torch.autograd import variable

import torch.nn as nn

import 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 安裝技巧...