深度學習PyTorch 03

2021-10-03 04:39:15 字數 2572 閱讀 1213

1.對全連線層做批量歸一化

位置:全連線層中的仿射變換和啟用函式之間。

2.對卷積層做批量歸⼀化

位置:卷積計算之後、應⽤啟用函式之前。

3.**時的批量歸⼀化

訓練:以batch為單位,對每個batch計算均值和方差。

**:用移動平均估算整個訓練資料集的樣本均值和方差。

殘差塊(residual block)

恒等對映:

左邊:f(x)=x

右邊:f(x)-x=0 (易於捕捉恒等對映的細微波動)

resnet模型

卷積(64,7x7,3)

批量一體化

最大池化(3x3,2)

殘差塊x4 (通過步幅為2的殘差塊在每個模組之間減小高和寬)

優化方法目標:訓練集損失函式值

深度學習目標:測試集損失函式值(泛化性)

優化在深度學習中的挑戰:區域性最小值;鞍點;梯度消失

jensen 不等式:

性質:無區域性極小值;與凸集的關係;二階條件

簡介實現:

def

train_pytorch_ch7

(optimizer_fn, optimizer_hyperparams, features, labels,

batch_size=

10, num_epochs=2)

:# 初始化模型

net = nn.sequential(

nn.linear(features.shape[-1

],1)

) loss = nn.mseloss(

) optimizer = optimizer_fn(net.parameters(),

**optimizer_hyperparams)

defeval_loss()

:return loss(net(features)

.view(-1

), labels)

.item()/

2 ls =

[eval_loss()]

data_iter = torch.utils.data.dataloader(

torch.utils.data.tensordataset(features, labels)

, batch_size, shuffle=

true

)for _ in

range

(num_epochs)

: start = time.time(

)for batch_i,

(x, y)

inenumerate

(data_iter)

:# 除以2是為了和train_ch7保持一致, 因為squared_loss中除了2

l = loss(net(x)

.view(-1

), y)/2

optimizer.zero_grad(

) l.backward(

) optimizer.step()if

(batch_i +1)

* batch_size %

100==0:

))# 列印結果和作圖

print

('loss: %f, %f sec per epoch'

%(ls[-1

], time.time(

)- start)

) d2l.set_figsize(

) d2l.plt.plot(np.linspace(

0, num_epochs,

len(ls)

), ls)

d2l.plt.xlabel(

'epoch'

) d2l.plt.ylabel(

'loss'

)

目標檢測演算法通常會在輸入影象中取樣大量的區域,然後判斷這些區域中是否包含我們感興趣的目標,並調整區域邊緣從而更準確地**目標的真實邊界框(ground-truth bounding box)。不同的模型使用的區域取樣方法可能不同。

交並比:我們可以用兩個邊界框的畫素集合的jaccard係數衡量這兩個邊界框的相似度。當衡量兩個邊界框的相似度時,我們通常將jaccard係數稱為交並比(intersection over union,iou),即兩個邊界框相交面積與相並面積之比。交並比的取值範圍在0和1之間:0表示兩個邊界框無重合畫素,1表示兩個邊界框相等。

輸出**邊界框:在模型**階段,我們先為影象生成多個錨框,並為這些錨框一一**類別和偏移量。隨後,我們根據錨框及其**偏移量得到**邊界框。當錨框數量較多時,同乙個目標上可能會輸出較多相似的**邊界框。為了使結果更加簡潔,我們可以移除相似的**邊界框。常用的方法叫作非極大值抑制(non-maximum suppression,nms)。

首先,我們初始化合成影象,例如將其初始化成內容影象。該合成影象是樣式遷移過程中唯一需要更新的變數,即樣式遷移所需迭代的模型引數。然後,我們選擇乙個預訓練的卷積神經網路來抽取影象的特徵,其中的模型引數在訓練中無須更新。深度卷積神經網路憑藉多個層逐級抽取影象的特徵。我們可以選擇其中某些層的輸出作為內容特徵或樣式特徵。

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

PyTorch 深度學習 筆記

方差 偏差 線性回歸來確定兩種或兩種以上變數間相互依賴的定量關係。線性回歸對於輸入x和輸出y有乙個對映 類似ax b 而我們是訓練a b這兩個引數。以下 使用pytorch建立乙個線性的模型來對其進行擬合,即訓練過程。def linear ex x np.random.rand 256 noise ...