Pytorch深度學習一些筆記

在簡書的筆記系統(tǒng)看到自己還寫過一篇這個智末,放出來一下,不然就發(fā)霉了

torch.mul() 耙箍、 torch.mm() 及torch.matmul()的區(qū)別

1聂受、torch.mul(a, b)是矩陣a和b對應(yīng)位相乘,a和b的維度必須相等坦喘,比如a的維度是(1, 2)盲再,b的維度是(1, 2),返回的仍是(1, 2)的矩陣瓣铣;
2答朋、torch.mm(a, b)是矩陣a和b矩陣相乘,比如a的維度是(1, 2)棠笑,b的維度是(2, 3)梦碗,返回的就是(1, 3)的矩陣。

import torch

a = torch.rand(1, 2)
b = torch.rand(1, 2)
c = torch.rand(2, 3)

print(torch.mul(a, b))  # 返回 1*2 的tensor
print(torch.mm(a, c))   # 返回 1*3 的tensor
print(torch.mul(a, c))  # 由于a蓖救、b維度不同洪规,報錯

pytorch 的塊就是按照順序儲存的

class Sequ(nn.Module):
    def __init__(self,*args):
        super().__init__()
        self._addmodules ={}
        for id ,module in enumerate(args):
            self._addmodules[str(id)] = module
    def forward(self,X):
        for modulex in self._addmodules.values():
            X = modulex(X)
        return X

nn.ReLU和F.ReLU的區(qū)別

nn.ReLU和F.ReLU兩種實現(xiàn)方法。
其中nn.ReLU作為一個層結(jié)構(gòu)循捺,必須添加到nn.Module容器中才能使用斩例,而F.ReLU則作為一個函數(shù)調(diào)用,看上去作為一個函數(shù)調(diào)用更方便更簡潔从橘。具體使用哪種方式念赶,取決于編程風格。在PyTorch中,nn.X都有對應(yīng)的函數(shù)版本F.X恰力,但是并不是所有的F.X均可以用于forward或其它代碼段中叉谜,因為當網(wǎng)絡(luò)模型訓練完畢時,在存儲model時踩萎,在forward中的F.X函數(shù)中的參數(shù)是無法保存的停局。也就是說,在forward中,使用的F.X函數(shù)一般均沒有狀態(tài)參數(shù)董栽,比如F.ReLU履怯,F(xiàn).avg_pool2d等,均沒有參數(shù)裆泳,它們可以用在任何代碼片段中。
PyTorch之nn.ReLU與F.ReLU的區(qū)別_鵲踏枝-碼農(nóng)的博客-CSDN博客_nn.relu和f.relu

Whats the difference between nn.relu() vs F.relu() - PyTorch Forums

塊的多層嵌套

def block1():
    return nn.Sequential(nn.Linear(4, 8), nn.ReLU(),
                         nn.Linear(8, 4), nn.ReLU())

def block2():
    net = nn.Sequential()
    for i in range(4):
        # 在這里嵌套
        net.add_module(f'block {i}', block1())
    return net

rgnet = nn.Sequential(block2(), nn.Linear(4, 1))
rgnet(X)

卷積神經(jīng)網(wǎng)絡(luò)

池化層和卷積層其實差別不大

卷積層求的是在卷積核大小的區(qū)域的數(shù)據(jù)與卷積核的數(shù)據(jù)的加權(quán)和柠硕,池化層求的是一定區(qū)域內(nèi)的平均值或者最大值

cov2d

def corr2d(X, K):  #@save
    """計算二維互相關(guān)運算"""
    h, w = K.shape
    Y = torch.zeros((X.shape[0] - h + 1, X.shape[1] - w + 1))
    for i in range(Y.shape[0]):
        for j in range(Y.shape[1]):
            Y[i, j] = (X[i:i + h, j:j + w] * K).sum()  ###這個K就是cov2d和pooling的區(qū)別
    return Y


X = torch.tensor([[0.0, 1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0]])
K = torch.tensor([[0.0, 1.0], [2.0, 3.0]])
corr2d(X, K)

pooling

def pool2d(X, pool_size, mode='max'):
    p_h, p_w = pool_size
    Y = torch.zeros((X.shape[0] - p_h + 1, X.shape[1] - p_w + 1))
    for i in range(Y.shape[0]):
        for j in range(Y.shape[1]):
            if mode == 'max':
                Y[i, j] = X[i: i + p_h, j: j + p_w].max()
            elif mode == 'avg':
                Y[i, j] = X[i: i + p_h, j: j + p_w].mean()
    return Y

循環(huán)神經(jīng)網(wǎng)絡(luò)

基于嵌入維度\tau工禾,將數(shù)據(jù)映射為數(shù)據(jù)對y_t = x_t\mathbf{x}_t = [x_{t-\tau}, \ldots, x_{t-1}],但是會丟失前面\tau項蝗柔,因為沒有足夠的歷史記錄來描述前\tau個數(shù)據(jù)樣本闻葵。
一個簡單的解決辦法是:如果擁有足夠長的序列就丟棄這幾項;
另一個方法是用零填充序列癣丧。

tau = 4
features = torch.zeros((T - tau, tau))
for i in range(tau):
    features[:, i] = x[i: T - tau + i]
labels = x[tau:].reshape((-1, 1))
x.shape
### torch.Size([1000])
features.shape
### features.shape
#### features ## 注意這種編碼形式槽畔,也就是四個為一組,然后從第二個構(gòu)建一行
tensor([[-0.0036, -0.1588,  0.1267,  0.1920],
        [-0.1588,  0.1267,  0.1920,  0.0842],
        [ 0.1267,  0.1920,  0.0842, -0.1051],
        ...,
        [-0.5951, -0.5278, -0.5754, -0.8150],
        [-0.5278, -0.5754, -0.8150, -0.4767],
        [-0.5754, -0.8150, -0.4767, -0.1860]])
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胁编,一起剝皮案震驚了整個濱河市厢钧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嬉橙,老刑警劉巖早直,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異市框,居然都是意外死亡霞扬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門枫振,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喻圃,“玉大人,你說我怎么就攤上這事粪滤「模” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵杖小,是天一觀的道長饮焦。 經(jīng)常有香客問我,道長窍侧,這世上最難降的妖魔是什么县踢? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮伟件,結(jié)果婚禮上硼啤,老公的妹妹穿的比我還像新娘。我一直安慰自己斧账,他們只是感情好谴返,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布煞肾。 她就那樣靜靜地躺著,像睡著了一般嗓袱。 火紅的嫁衣襯著肌膚如雪籍救。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天渠抹,我揣著相機與錄音蝙昙,去河邊找鬼。 笑死梧却,一個胖子當著我的面吹牛奇颠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播放航,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼烈拒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了广鳍?” 一聲冷哼從身側(cè)響起荆几,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赊时,沒想到半個月后伴郁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蛋叼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年焊傅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狈涮。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡狐胎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出歌馍,到底是詐尸還是另有隱情握巢,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布松却,位于F島的核電站暴浦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晓锻。R本人自食惡果不足惜歌焦,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望砚哆。 院中可真熱鬧独撇,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至搜立,卻和暖如春以躯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背啄踊。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工忧设, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人社痛。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像命雀,于是被迫代替她去往敵國和親蒜哀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容