pytorch機(jī)器學(xué)習(xí)softmax回歸的簡(jiǎn)潔實(shí)現(xiàn)
通過深度學(xué)習(xí)框架的高級(jí)API也能更方便地實(shí)現(xiàn)分類模型。讓我們繼續(xù)使用Fashion-MNIST數(shù)據(jù)集,并保持批量大小為256。
import torch from torch import nn from d2l import torch as d2l
batch_size = 256 train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
初始化模型參數(shù)
由于sofrmax回歸的輸出層是一個(gè)全連接層,因此,為了實(shí)現(xiàn)我們的模型,我們只需在Sequential中添加一個(gè)帶有10個(gè)輸出的全連接層。同樣,在這里,Sequential并不是必要的,但我們可能會(huì)形成這種習(xí)慣。因?yàn)樵趯?shí)現(xiàn)深度模型時(shí),Sequential將無處不在。我們?nèi)匀灰跃?和標(biāo)準(zhǔn)差0.01隨機(jī)初始化權(quán)重。
# PyTorch不會(huì)隱式地調(diào)整輸入的形狀。因此,我們?cè)诰€性層前定義了展平層(flatten),來調(diào)整網(wǎng)絡(luò)輸入的形狀 net = nn.Sequential(nn.Flatten(), nn.Linear(784, 10)) def init_weights(m): if type(m) == nn.Linear: nn.init.normal_(m.weight, std=0.01) net.apply(init_weights)
重新審視softmax的實(shí)現(xiàn)
在前面的例子中,我們計(jì)算了模型的輸出,然后將此輸出送入交叉熵?fù)p失。從數(shù)學(xué)上講,這是一件完全合理的事情。然而,從計(jì)算角度來看,指數(shù)可能會(huì)造成數(shù)值穩(wěn)定性的問題,包括上溢和下溢。
我們也希望保留傳統(tǒng)的softmax函數(shù),以備我們需要評(píng)估通過模型輸出的概率。但是,我們沒有將softmax概率傳遞到損失函數(shù)中,而是在交叉熵?fù)p失函數(shù)中傳遞未歸一化的預(yù)測(cè),并同時(shí)計(jì)算softmax及其對(duì)數(shù)。
loss = nn.CrossEntropyLoss()
優(yōu)化算法
在這里,我們使用學(xué)習(xí)率為0.1的小批量隨機(jī)梯度下降作為優(yōu)化算法。這與我們?cè)诰€性回歸例子中的相同,這說明了優(yōu)化器的普適性。
trainer = torch.optim.SGD(net.parameters(), lr=0.1)
以上就是pytorch機(jī)器學(xué)習(xí)softmax回歸的簡(jiǎn)潔實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于pytorch機(jī)器學(xué)習(xí)softmax回歸的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
pandas中.loc和.iloc以及.at和.iat的區(qū)別說明
這篇文章主要介紹了pandas中.loc和.iloc以及.at和.iat的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04Windows下多版本Python共享Poetry測(cè)試安裝
這篇文章主要為大家介紹了Windows下多版本Python共享Poetry的測(cè)試安裝配置,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05python使用BeautifulSoup分頁網(wǎng)頁中超鏈接的方法
這篇文章主要介紹了python使用BeautifulSoup分頁網(wǎng)頁中超鏈接的方法,涉及Python使用BeautifulSoup模塊操作網(wǎng)頁鏈接的技巧,需要的朋友可以參考下2015-04-04用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的多線程TCP服務(wù)器的教程
這篇文章主要介紹了用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的多線程TCP服務(wù)器的教程,示例的運(yùn)行環(huán)境為Windows操作系統(tǒng),需要的朋友可以參考下2015-05-05python之lambda表達(dá)式與sort函數(shù)中的key用法
這篇文章主要介紹了python之lambda表達(dá)式與sort函數(shù)中的key用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08PyQt使用QPropertyAnimation開發(fā)簡(jiǎn)單動(dòng)畫
這篇文章主要介紹了PyQt使用QPropertyAnimation開發(fā)簡(jiǎn)單動(dòng)畫,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Python實(shí)現(xiàn)在Linux系統(tǒng)下更改當(dāng)前進(jìn)程運(yùn)行用戶
這篇文章主要介紹了Python實(shí)現(xiàn)在Linux系統(tǒng)下更改當(dāng)前進(jìn)程運(yùn)行用戶,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-02-02妙用itchat! python實(shí)現(xiàn)久坐提醒功能
python編寫的久坐提醒,給最愛的那個(gè)她,這篇文章主要為大家分享了python久坐提醒功能的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11