Python知識分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
動手學(xué)深度學(xué)習(xí)(PyTorch版)_文字版 PDF 下載
發(fā)布于:2023-11-02 09:01:42
(假如點(diǎn)擊沒反應(yīng),多刷新兩次就OK!)

動手學(xué)深度學(xué)習(xí)(PyTorch版)_文字版 PDF 下載  圖1

 

 

 

 

 

資料內(nèi)容:

 

 

在訓(xùn)練了預(yù)先確定的若?迭代次數(shù)后(或者直到滿?某些其他停?條件后),我們記錄下模型參數(shù)的估計值,
表?為
ˆ
w
, ˆ
b。但是,即使我們的函數(shù)確實是線性的且?噪聲,這些估計值也不會使損失函數(shù)真正地達(dá)到最?
值。因為算法會使得損失向最?值緩慢收斂,但卻不能在有限的步數(shù)內(nèi)?常精確地達(dá)到最?值。
線性回歸恰好是?個在整個域中只有?個最?值的學(xué)習(xí)問題。但是對像深度神經(jīng)?絡(luò)這樣復(fù)雜的模型來說,
損失平?上通常包含多個最?值。深度學(xué)習(xí)實踐者很少會去花費(fèi)???尋找這樣?組參數(shù),使得在訓(xùn)練集上
的損失達(dá)到最?。事實上,更難做到的是找到?組參數(shù),這組參數(shù)能夠在我們從未?過的數(shù)據(jù)上實現(xiàn)較低的
損失,這?挑戰(zhàn)被稱為泛化(generalization)。
?模型進(jìn)?預(yù)測
給定“已學(xué)習(xí)”的線性回歸模型
ˆ
w
?x + ˆ
b,現(xiàn)在我們可以通過房屋?積x1和房齡x2來估計?個(未包含在訓(xùn)
練數(shù)據(jù)中的)新房屋價格。給定特征估計?標(biāo)的過程通常稱為預(yù)測(prediction)或推斷(inference)。
本書將嘗試堅持使?預(yù)測這個詞。雖然推斷這個詞已經(jīng)成為深度學(xué)習(xí)的標(biāo)準(zhǔn)術(shù)語,但其實推斷這個詞有些?
詞不當(dāng)。在統(tǒng)計學(xué)中,推斷更多地表?基于數(shù)據(jù)集估計參數(shù)。當(dāng)深度學(xué)習(xí)從業(yè)者與統(tǒng)計學(xué)家交談時,術(shù)語的
誤?經(jīng)常導(dǎo)致?些誤解。
 
3.1.2 ?量化加速
在訓(xùn)練我們的模型時,我們經(jīng)常希望能夠同時處理整個?批量的樣本。為了實現(xiàn)這?點(diǎn),需要我們對計算進(jìn)
??量化,從?利?線性代數(shù)庫,?不是在Python中編寫開銷?昂的for循環(huán)。
%matplotlib inline
import math
import time
import numpy as np
import torch
from d2l import torch as d2l
為了說明?量化為什么如此重要,我們考慮對向量相加的兩種?法。我們實例化兩個全為110000維向量。
在?種?法中,我們將使?Pythonfor循環(huán)遍歷向量;在另?種?法中,我們將依賴對+的調(diào)?。
n = 10000
a = torch.ones([n])
b = torch.ones([n])
3.1. 線性回歸
89由于在本書中我們將頻繁地進(jìn)?運(yùn)?時間的基準(zhǔn)測試,所以我們定義?個計時器:
class Timer:
#@save
"""記錄多次運(yùn)?時間"""
def __init__(self):
self.times = []
self.start()
def start(self):
"""啟動計時器"""
self.tik = time.time()
def stop(self):
"""停?計時器并將時間記錄在列表中"""
self.times.append(time.time() - self.tik)
return self.times[-1]
def avg(self):
"""返回平均時間"""
return sum(self.times) / len(self.times)
def sum(self):
"""返回時間總和"""
return sum(self.times)
def cumsum(self):
"""返回累計時間"""
return np.array(self.times).cumsum().tolist()