2023.4.7看論文and程序(還沒(méi)看完)
1.? [基于pytorch的resnet](http://t.csdn.cn/qL5Lz)
2.? [徹底搞懂ResNet50](http://t.csdn.cn/Qm4wZ)
3.? [pytorch讀取.pth文件](http://t.csdn.cn/hLlIg)
4.? [深度學(xué)習(xí)之Resnet詳解|CSDN創(chuàng)作打卡](http://t.csdn.cn/IRU5V)
5.? [BatchNorm2d原理、作用及其pytorch中BatchNorm2d函數(shù)的參數(shù)講解](http://t.csdn.cn/NkpA7)
6.? [【pytorch系列】卷積操作原理解析與nn.Conv2d用法詳解](http://t.csdn.cn/2XDUN)
7.? [Pytorch中apply函數(shù)作用](http://t.csdn.cn/iQXYa)
8.? [python數(shù)據(jù)分析基礎(chǔ)知識(shí)—shape()函數(shù)的使用](http://t.csdn.cn/QnJwE)
9.? [【Pytorch】interpolate==>上下采樣函數(shù)](http://t.csdn.cn/8VkZv)
10. [圖像插值:最鄰近(nearest)與雙線性(bilinear)](http://t.csdn.cn/GCZuC)
11. [最鄰近差值算法(nearest)和雙線性插值算法(bilinear)](http://t.csdn.cn/hvmcp)
12. [Python中的isinstance()函數(shù)](http://t.csdn.cn/LfyeK)
13. [神經(jīng)網(wǎng)絡(luò)權(quán)重初始化代碼 init.kaiming\_uniform\_和kaiming\_normal\_](http://t.csdn.cn/uXLBj)
14. [圖像檢測(cè)之FCOS](http://t.csdn.cn/ZOEYJ)

筆記
6-【pytorch系列】卷積操作原理解析與nn.Conv2d用法詳解
關(guān)于參數(shù) padding與padding\_mode:
(1)padding的理解:
padding參數(shù)作用:控制zero-padding的數(shù)目。
用容易理解的語(yǔ)言來(lái)說(shuō):padding就是在圖像四周加格子。
原因:如果不對(duì)圖像邊緣進(jìn)行填充,卷積核將無(wú)法到達(dá)圖像邊緣的像素,而且卷積前后圖像的尺寸也會(huì)發(fā)生變化,這會(huì)造成許多麻煩。
因此現(xiàn)在各大深度學(xué)習(xí)框架的卷積層實(shí)現(xiàn)上基本都配備了padding操作,以保證圖像輸入輸出前后的尺寸大小不變。
例如,若卷積核大小為3x3,那么就應(yīng)該設(shè)定padding=1,即填充1層邊緣像素;若卷積核大小為7x7,那么就應(yīng)該設(shè)定padding=3,填充3層邊緣像素;也就是padding大小一般設(shè)定為核大小的一半。在pytorch的卷積層定義中,默認(rèn)的padding為零填充。
(2) PyTorch Conv2d中的padding\_mode四種填充模式解析
padding,即邊緣填充,可以分為四類:零填充,常數(shù)填充,鏡像填充,重復(fù)填充。
padding\_mode參數(shù),可選項(xiàng)有4種:
9-【Pytorch】interpolate==>上下采樣函數(shù)
根據(jù)給定 size 或 scale\_factor,上采樣或下采樣輸入數(shù)據(jù)input.
? ? 當(dāng)前支持 temporal, spatial 和 volumetric 輸入數(shù)據(jù)的上采樣,其shape 分別為:3-D, 4-D 和 5-D.
? ? 輸入數(shù)據(jù)的形式為:mini-batch x channels x [optional depth] x [optional height] x width.
? ? 上采樣算法有:nearest, linear(3D-only), bilinear(4D-only), trilinear(5D-only).
? ? 參數(shù):
? ? - input (Tensor): input tensor
? ? - size (int or Tuple[int] or Tuple[int, int] or Tuple[int, int, int]):輸出的 spatial 尺寸.
? ? - scale_factor (float or Tuple[float]): spatial 尺寸的縮放因子.
? ? - mode (string): 上采樣算法:nearest, linear, bicubic, bilinear, trilinear, area. 默認(rèn)為 nearest.
? ? - align_corners (bool, optional): 如果 align_corners=True,則對(duì)齊 input 和 output 的角點(diǎn)像素(corner pixels),保持在角點(diǎn)像素的值. 只會(huì)對(duì) mode=linear, bilinear 和 trilinear 有作用. 默認(rèn)是 False.
13-神經(jīng)網(wǎng)絡(luò)權(quán)重初始化代碼 init.kaiming\_uniform\_和kaiming\_normal\_
為什么要初始化
神經(jīng)網(wǎng)絡(luò)要優(yōu)化一個(gè)非常復(fù)雜的非線性模型,而且基本沒(méi)有全局最優(yōu)解,初始化在其中扮演著非常重要的作用,尤其在沒(méi)有BN等技術(shù)的早期,它直接影響模型能否收斂。其本質(zhì)是初始參數(shù)的選擇應(yīng)使得objective function便于被優(yōu)化,如果隨機(jī)初始化就只能看命了,但至少可以人為的選擇一個(gè)較為合適的值,不一定最好但一定是穩(wěn)定的。
好的初始化應(yīng)該滿足以下兩個(gè)條件:
(1) 讓神經(jīng)元各層激活值不會(huì)出現(xiàn)飽和現(xiàn)象;
(2) 各層激活值也不能為0。
也就是激活值不要太大,也不要太小,應(yīng)該剛剛好,當(dāng)然這還只是最基本的要求。
權(quán)重初始化的目的是防止在深度神經(jīng)網(wǎng)絡(luò)的正向(前向)傳播過(guò)程中層激活函數(shù)的輸出損失梯度出現(xiàn)爆炸或消失。如果發(fā)生任何一種情況,損失梯度太大或太小,就無(wú)法有效地向后傳播,并且即便可以向后傳播,網(wǎng)絡(luò)也需要花更長(zhǎng)時(shí)間來(lái)達(dá)到收斂。然而,隨機(jī)初始化就是搞一些很小的值進(jìn)行初始化,實(shí)驗(yàn)表明大了就容易飽和,小的就激活不動(dòng)。
并且Xavier等人之前發(fā)現(xiàn),在學(xué)習(xí)的時(shí)候,當(dāng)神經(jīng)網(wǎng)絡(luò)的層數(shù)增多時(shí),會(huì)發(fā)現(xiàn)越往后面的層的激活函數(shù)的輸出值幾乎都接近于0,這顯然是不合理的,因?yàn)榫W(wǎng)絡(luò)的最后輸出是要實(shí)現(xiàn)分類等任務(wù),想必必須有一定的方差才能實(shí)現(xiàn)有差別的輸出結(jié)果。因此,做實(shí)驗(yàn)在保證輸入輸出方差大致相同的時(shí)候,即滿足的方差一致性的情況下,訓(xùn)練的收斂速度會(huì)更快,結(jié)果會(huì)更好一些。