哪里有學(xué)編程的培訓(xùn)班神馬seo教程
一、卷積操作
(一)普通卷積(Convolution)
(二)空洞卷積(Atrous Convolution)
? ? ? ? 根據(jù)空洞卷積的定義,顯然可以意識到空洞卷積可以提取到同一輸入的不同尺度下的特征圖,具有構(gòu)建特征金字塔的基礎(chǔ)。
(三)深度可分離卷積(Depthwise-Separable Convolution)
? ? ? ? 在對深度可分離卷積具有一定的了解后,我產(chǎn)生了一種“既然模型參數(shù)大幅度減少了,那么該模型的運行時間應(yīng)該也會大幅度縮減”的想法??墒?#xff0c;當(dāng)我分別在GPU、CPU上進(jìn)行實驗時,我發(fā)現(xiàn)結(jié)果并不與我當(dāng)初所想相同。后經(jīng)過查閱資料[13][14]進(jìn)一步加深了我對硬件計算優(yōu)勢以及深度可分離卷積的理解。(注:1)實際上,通常我們一層卷積之后都會加深特征圖深度,但是我所設(shè)計的實驗保持了原有深度前向計算。同時,一個卷積網(wǎng)絡(luò)也應(yīng)顧及到模型精確性適當(dāng)使用DSC而非完全;2)參考資料[13]具有與我相同思想的不同模型之間的對比試驗)
? ? ? ? 適合GPU運算的運算類型有1)大量輕量級運算;2)高度并行運算:3)計算密集型:4)浮點型運算等。CPU擅長于串行運行。

? ? ? ? 針對DSC有可能出現(xiàn)模型參數(shù)大幅度減少,但模型運行時間卻不下降的現(xiàn)象,可能存在以下原因:
? ? ? ? 1)許多深度學(xué)習(xí)加速器和庫(如CUDA和cuDNN),對深度可分離卷積的優(yōu)化可能不夠;
? ? ? ? 2)盡管深度可分離卷積需要的乘、加運算較少,但與普通卷積相比,它可能需要更多的內(nèi)存訪問操作,這在GPU上可能導(dǎo)致效率降低;
? ? ? ? 3)受限于自身設(shè)備的顯存容量。
(四)轉(zhuǎn)置卷積(Transpose Convolution)
? ????????轉(zhuǎn)置卷積是一種卷積,它將輸入和核進(jìn)行了重新排列,同卷積一般是做下采樣不同,它通常用作上采樣。如果卷積將輸入從(h,w)變成了(h‘,w'),同樣超參數(shù)下轉(zhuǎn)置卷積將(h‘,w')變成(h,w)。
? ? ? ?轉(zhuǎn)置卷積可以變?yōu)閷?yīng)核的矩陣乘法。轉(zhuǎn)置卷積是一種變化了輸入和核的卷積,來得到上采樣的目的,其并不等同于數(shù)學(xué)上的反卷積概念。在深度學(xué)習(xí)中,反卷積神經(jīng)網(wǎng)絡(luò)指用了轉(zhuǎn)置卷積的神經(jīng)網(wǎng)絡(luò)。
二、池化操作
? ? ? ? 池化操作主要的作用為1)減少網(wǎng)絡(luò)計算量與內(nèi)存消耗;2)增加感受野大小;3)增加平移不變性(即較小的特征偏移也不影響特征輸出)。從某種角度上來說,Pooling操作是一種對現(xiàn)存硬件計算能力和存儲設(shè)備的妥協(xié),其在某些卷積神經(jīng)網(wǎng)絡(luò)(如Resnet)可以被忽略。
三、數(shù)據(jù)歸一化操作
? ? ? ? 數(shù)據(jù)歸一化操作中(以BatchNormal為例),β和γ參數(shù)是需要計算梯度更新的學(xué)習(xí)參數(shù),數(shù)據(jù)歸一化行為在Train、Test過程中是不一樣的。在Train過程中,我們需要不斷計算反向梯度更新β、γ參數(shù),而在Test過程中我們是會固定前面學(xué)習(xí)得到的β、γ參數(shù)(Pytorch中測試調(diào)用net.eval())。
? ? ? ? 批量歸一化的主要作用:
? ? ? ? 1)控制傳入下一層的特征圖數(shù)據(jù),有效減少梯度爆炸和梯度消失的可能;
? ? ? ? 2)減少對參數(shù)初始化的依賴;
? ? ? ? 3)便于應(yīng)用更高的學(xué)習(xí)率,實現(xiàn)更快的收斂。
四、深度學(xué)習(xí)中的Batch、Epoch
? ? ? ? 反向梯度計算以更新模型權(quán)值等參數(shù)發(fā)生于一個Batch迭代后。初期訓(xùn)練時,我認(rèn)為足夠的Batch樣本數(shù)對于模型的快速收斂較為重要。那么,如果受限于自身GPU顯存限制,我們可以進(jìn)一步權(quán)衡在CPU上訓(xùn)練更多樣本數(shù)的Batch,而放寬訓(xùn)練時間這一要求。
? ? ? ? 在合理范圍內(nèi),增大Batch_Size具有以下優(yōu)點[11]:
? ? ? ? 1)內(nèi)存利用率提高了,大矩陣乘法的并行化效率提高;
? ? ? ? 2)跑完一次epoch(全數(shù)據(jù)集)所需的迭代次數(shù)減少,對于相同數(shù)據(jù)量的處理速度進(jìn)一步加快;
? ? ? ? 3)在一定范圍內(nèi),一般來說Batch Size越大,其確定的下降方向越可能對準(zhǔn)極值低點,訓(xùn)練引起損失震蕩越小。

五、在.ipynb文件中調(diào)用不同路徑位置文件的方法
(1)首先被引.ipynb文件轉(zhuǎn)換為.py文件,然后在.ipynb文件中頭部添加sys.path.insert(0,r"絕對路徑")或sys.path.append(r“絕對路徑”)[17]。
(2)編寫.ipynb解析文件置于同一文件夾下[16]。
Pytorch參考資料:
[1]?在CV/NLP/DL領(lǐng)域中,有哪些修改一行代碼或者幾行代碼提升性能的算法? - 圈圈的回答 - 知乎
https://www.zhihu.com/question/427088601/answer/1544199551.
[2]在CV/NLP/DL領(lǐng)域中,有哪些修改一行代碼或者幾行代碼提升性能的算法? - 陀飛輪的回答 - 知乎 https://www.zhihu.com/question/427088601/answer/1587333057
[3]PyTorch 中文文檔
[4]課時61 什么是卷積-1_嗶哩嗶哩_bilibili
[5]PyTorch Forums
[6]https://en.wikipedia.org/wiki/Convolutional_neural_network
[7]數(shù)字圖像處理:第四版/(美)拉斐爾C.岡薩雷斯(Rafael C.Gonzalez),(美)理查德E.伍茲(Richard E.Woods)著;阮秋琦等譯.——北京:電子工業(yè)出版社,2020.5.
[8]深入理解空洞卷積 - 知乎
[9]演示分組,深度,深度可分離卷積|3D卷積神經(jīng)網(wǎng)絡(luò)_嗶哩嗶哩_bilibili
[10]卷積神經(jīng)網(wǎng)絡(luò)之深度可分離卷積(Depthwise Separable Convolution) - 知乎
[11]談?wù)勆疃葘W(xué)習(xí)中的 Batch_Size_機(jī)器學(xué)習(xí)batch size作用_ycheng_sjtu的博客-CSDN博客
[12]pytorch統(tǒng)計模型參數(shù)量并輸出_pytorch輸出模型參數(shù)量_xidaoliang123的博客-CSDN博客
[13]薰風(fēng)讀論文:MobileNet 詳解深度可分離卷積,它真的又好又快嗎? - 知乎
[14]三分鐘搞懂CPU, GPU, FPGA計算能力 - 知乎
Python參考資料:
[15]Python:為什么類中的私有屬性可以在外部賦值并訪問_python 類外訪問私有屬性_Ding Jiaxiong的博客-CSDN博客
[16]調(diào)用jupyter notebook文件內(nèi)的函數(shù)一種簡單方法_AlexInML的博客-CSDN博客
[17]Jupyter Notebook引入外部的py文件中的方法_dirtyboy6666的博客-CSDN博客