代碼閱讀筆記

作者代碼實(shí)現(xiàn)了DANN中MNIST->MNIST-M的轉(zhuǎn)換。

實(shí)驗(yàn)環(huán)境要求:

scipy>=1.1.0

numpy>=1.14.3

matplotlib>=2.1.0

torch>=0.4.1

Pillow>=5.1.0

scikit_learn>=0.19.2

torchvision>=0.2.1

論文中關(guān)于這個(gè)網(wǎng)絡(luò)結(jié)構(gòu),圖形表示如下:


網(wǎng)絡(luò)結(jié)構(gòu)

代碼中對(duì)特征提取器,域分類器,類分類器分別定義一個(gè)類。

特征提取器(綠色部分),經(jīng)過兩次卷積,兩次池化,結(jié)果如下:


特征提取器

域分類器經(jīng)過兩個(gè)全連接層。


域分類器

第一個(gè)全連接層輸入為48*4*4=768,輸出為100,第二個(gè)全連接層輸入為100,輸出為2。


Pytorch中的損失函數(shù):

CrossEntropyLoss()=log_softmax() + NLLLoss()

log_softmax() :先做softmax,后做log

NLLLoss(negative log likelihood loss):最大似然 / log似然代價(jià)函數(shù), 輸入 是一個(gè)對(duì)數(shù)概率向量和一個(gè)目標(biāo)標(biāo)簽,對(duì)數(shù)概率向量可以是log_softmax()的輸出。


log似然代價(jià)函數(shù)的計(jì)算公式

有一篇博客以舉例子并驗(yàn)證的方式形象化的解釋了這個(gè)結(jié)果,博客鏈接如下:

https://blog.csdn.net/qq_22210253/article/details/85229988

Pytorch中的變量(Variable)

pytorch中的變量有三個(gè)屬性,分別是data表示變量中的具體值, grad表示這個(gè)變量反向傳播的梯度, grad_fn表示是通過什么操作得到這個(gè)變量的例如( 加減乘除、卷積、反置卷積)。

https://blog.csdn.net/qq_41776781/article/details/93967961

關(guān)于變量的介紹,參考的是上面的博客


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容