日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Lesson 16.5 在Pytorch中实现卷积网络(上):卷积核、输入通道与特征图在PyTorch中实现卷积网络(中):步长与填充

發(fā)布時間:2025/4/5 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Lesson 16.5 在Pytorch中实现卷积网络(上):卷积核、输入通道与特征图在PyTorch中实现卷积网络(中):步长与填充 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

卷積神經(jīng)網(wǎng)絡是使用卷積層的一組神經(jīng)網(wǎng)絡。在一個成熟的CNN中,往往會涉及到卷積層、池化層、線性層(全連接層)以及各類激活函數(shù)。因此,在構筑卷積網(wǎng)絡時,需從整體全部層的需求來進行考慮。

1 二維卷積層nn.Conv2d

在PyTorch中,卷積層作為構成神經(jīng)網(wǎng)絡的層,自然是nn.Module模塊下的類。

按照輸入數(shù)據(jù)的維度,卷積層可以分為三類:處理時序數(shù)據(jù)(samples,channels,length)的一維卷積(Conv1d),處理圖像數(shù)據(jù)的(samples,height,width,channels)的二維卷積(Conv2d),以及處理視頻數(shù)據(jù)(samples,frames,height,width,channels)的三維卷積(Conv3d)。時序數(shù)據(jù)是存在時間維度、受時間影響的三維數(shù)據(jù),常被用于循環(huán)神經(jīng)網(wǎng)絡中,但卷積也可以處理這種數(shù)據(jù)。視頻數(shù)據(jù)則是由多張圖像在時間軸上排列構成的,因此視頻數(shù)據(jù)可以被看做是圖像數(shù)據(jù)的序列。視頻數(shù)據(jù)中的frames是“幀數(shù)”,即一個視頻中圖像的總數(shù)量。在之后的課程中,我們會就視頻數(shù)據(jù)及其處理展開詳細說明。

按照卷積的操作和效果,又可分為普通卷積、轉置卷積、延遲初始化的lazyConv等等。最常用的是處理圖像的普通卷積nn.Conv2d。其類及其包含的超參數(shù)參數(shù)內容如下(注意Conv2d是大寫):

CLASS torch.nn.Conv2d (in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1,groups=1, bias=True, padding_mode=‘zeros’)

可以看到,除了之前的掃描操作之外,還有許多未知的參數(shù)。我們可以通過解析Conv2d的參數(shù)來說明卷積操作中的許多細節(jié)。需要說明的是,參數(shù)groups和dilation分別代表著分組卷積(Grouped Convolution)與膨脹卷積(Dilated Convolution),屬于卷積神經(jīng)網(wǎng)絡的入門級操作,但卻比我們現(xiàn)在學習的內容更加復雜。之后,我們會詳細描述這兩種卷積網(wǎng)絡的原理與流程,現(xiàn)在,我們還是專注在普通卷積上。

1.1 卷積核尺寸kernel_size

kernel_size是我們第一個需要講解的參數(shù),但同時也是最簡單的參數(shù)。

卷積核的高和寬一般用KHK_{H}KH?KWK_{W}KW?表示。在許多其他資料或教材中,如果把卷積核稱為filter過濾器,也可能使用字母FHF_{H}FH?FWF_{W}FW?來表示。卷積核的對整個卷積網(wǎng)絡的參數(shù)量有很大的影響。在之前的例子中,我們使用3X3結構的卷積核,每個卷積核就會攜帶9個參數(shù)(權重),如果我們使用3X2的結構,每個卷積核就會攜帶6個參數(shù)。

卷積核的尺寸應該如何選擇呢?如果你在使用經(jīng)典架構,那經(jīng)典架構的論文中所使用的尺寸就是最好的尺寸。如果你在寫自己的神經(jīng)網(wǎng)絡,那3x3幾乎就是最好的選擇。對于這個幾乎完全基于經(jīng)驗的問題,我可以提供以下幾點提示:

1、卷積核幾乎都是正方形。最初是因為在經(jīng)典圖像分類任務中,許多圖像都被處理成正方形或者接近正方形的形狀(比如Fashion-MNIST,CIFAR,ImageNet)等等。如果你的原始圖像尺寸很奇妙(例如,非常長或非常寬),你可以使用與原圖尺寸比例一致的卷積核尺寸。

2、卷積核的尺寸最好是奇數(shù),例如3x3,5x5,7x7等。這是一種行業(yè)慣例,傳統(tǒng)視覺中認為這是為了讓被掃描區(qū)域能夠“中心對稱”,無論經(jīng)歷過多少次卷積變換,都能夠以正常比例還原圖像。

相對的,如果掃描區(qū)域不是中心對稱的,在多次進行卷積操作之后,像素會“偏移”導致圖像失真(由最左側圖像變換為右側的狀況)。然而,這種說法缺乏有效的理論基礎,如果你發(fā)現(xiàn)你的神經(jīng)網(wǎng)絡的確更適合偶數(shù)卷積核(并且你能夠證明、或說服你需要說服的人來接受你的決定),那你可以自由使用偶數(shù)卷積核。目前為止,還沒有卷積核的奇偶會對神經(jīng)網(wǎng)絡的效果造成影響的明確理論。
3、在計算機視覺中,卷積核的尺寸往往都比較小(相對的,在NLP中,許多網(wǎng)絡的卷積核尺寸都可以很大)。這主要是因為較小的卷積核所需要的訓練參數(shù)會更少,之后我們會詳細地討論關于訓練參數(shù)量的問題。

1.2 卷積的輸入與輸出:in_channels,out_channels,bias

除了kernel_size之外,還有兩個必填參數(shù):in_channels與out_channels。簡單來說:in_channels是輸入卷積層的圖像的通道數(shù)或上一層傳入特征圖的數(shù)量,out_channels是指這一層輸出的特征圖的數(shù)量。這兩個數(shù)量我們都可以自己來確定,但具體掃描流程中的細節(jié)還需要理清。

在之前的例子中,我們在一張圖像上使用卷積核進行掃描,得到一張?zhí)卣鲌D。這里的“被掃描圖像”是一個通道,而非一張彩色圖片。如果卷積核每掃描一個通道,就會得到一張?zhí)卣鲌D,那多通道的圖像應該被怎樣掃描呢?會有怎樣的輸出呢?
在一次掃描中,我們輸入了一張擁有三個通道的彩色圖像。對于這張圖,擁有同樣尺寸、但不同具體數(shù)值的三個卷積核會分別在三個通道上進行掃描,得出三個相應的“新通道”。由于同一張圖片中不同通道的結構一定是一致的,卷積核的尺寸也是一致的,因此卷積操作后得出的“新通道”的尺寸也是一致的。
得出三個“新通道”后,我們將對應位置的元素相加,形成一張新圖,這就是卷積層輸入的三彩色圖像的第一個特征圖。這個操作對于三通道的RGB圖像、四通道的RGBA或者CYMK圖像都是一致的。只不過,如果是四通道的圖像,則會存在4個同樣尺寸、但數(shù)值不同的卷積核分別掃描4個通道。
因此,在一次掃描中,無論圖像本身有幾個通道,卷積核會掃描全部通道之后,將掃描結果加和為一張feature map。所以,一次掃描對應一個feature map,無關原始圖像的通道數(shù)目是多少,所以out_channels就是掃描次數(shù),這之中卷積核的數(shù)量就等于輸入的通道數(shù)in_channels x 掃描次數(shù)out_channels。那對于一個通道,我們還有可能多次掃描,得出多個feature map嗎?當然有可能!卷積核的作用是捕捉特征,同一個通道上很有可能存在多個需要不同的卷積核進行捕捉的特征,例如,能夠捕捉到孔雀脖子輪廓的卷積核,就不一定能夠捕捉到色彩絢麗的尾巴。因此,對同一個通道提供多個不同的卷積核來進行多次掃描是很普遍的操作。不過,我們并不能對不同的通道使用不同的卷積核數(shù)量。比如,若規(guī)定掃描三次,則每次掃描時通道都會分別獲得自己的卷積核,我們不能讓卷積網(wǎng)絡執(zhí)行類似于“紅色通道掃描2次,藍色通道掃描3次”的操作。
需要注意的是,當feature maps被輸入到下一個卷積層時,它也是被當作“通道”來處理的。不太嚴謹?shù)卣f,feature map其實也可以是一種“通道”,雖然沒有定義到具體的顏色,但它其實也是每個元素都在[0,255]之間的圖。這是說,當feature map進入到下一個卷積層時,新卷積層上對所有feature map完成之后,也會將它們的掃描結果加和成一個新feature map。所以,在新卷積層上,依然是一次掃描對應生成一個feature map,無關之前的層上傳入的feature map有多少。
這其實與DNN中的線性層很相似,在線性層中,下一個線性層輸入的數(shù)目就等于上一個線性層的輸出的數(shù)目。我們來看一下具體的卷積層的代碼:

import torch from torch import nn #假設一組數(shù)據(jù) #還記得嗎?雖然默認圖像數(shù)據(jù)的結構是(samples, height, width, channels) #但PyTorch中的圖像結構為(samples, channels, height, width),channels排在高和寬前面 #PyTorch中的類(卷積)無法讀取channels所在位置不正確的圖像 data = torch.ones(size=(10,3,28,28)) #10張尺寸為28*28的、擁有3個通道的圖像 conv1 = nn.Conv2d(in_channels = 3,out_channels = 6 #全部通道的掃描值被合并,6個卷積核形成6個feature map,kernel_size = 3) #這里表示3x3的卷積核 conv2 = nn.Conv2d(in_channels = 6 #對下一層網(wǎng)絡來說,輸入的是上層生成的6個feature map,out_channels = 4 #全部特征圖的掃描值被合并,4個卷積核形成4個新的feature map,kernel_size = 3) #conv3 = nn.Conv2d(in? out?) #通常在網(wǎng)絡中,我們不會把參數(shù)都寫出來,只會寫成: #conv1 = nn.Conv2d(3,6,3) #查看一下通過卷積后的數(shù)據(jù)結構 conv1(data).shape #torch.Size([10, 6, 26, 26]) conv2(conv1(data)).shape #torch.Size([10, 4, 24, 24]) #嘗試修改一下conv2的in_channels,看會報什么錯? conv2 = nn.Conv2d(in_channels = 10,out_channels = 4,kernel_size = 3) conv2(conv1(data))

掌握卷積層輸入輸出的結構,對于構筑卷積網(wǎng)絡十分重要。

在DNN中,每一層權重www都帶有偏差 ,我們可以決定是否對神經(jīng)網(wǎng)絡加入偏差,在卷積中也是一樣的。在這里我們的權重就是卷積核,因此每個卷積層中都可以加入偏差,偏差的數(shù)量與掃描的數(shù)量一致。當我們得到feature_map后,如果有偏差的存在,我們會將偏差值加到feature_map的每個元素中,與矩陣 + 常數(shù)的計算方法一致。

當參數(shù)bias=True時,最終的feature_map是包含常數(shù)項的,反之則不包含。

1.3 特征圖的尺寸:stride,padding,padding_mode

stride

不知你是否注意到,在沒有其他操作的前提下,經(jīng)過卷積操作之后,新生成的特征圖的尺寸往往是小于上一層的特征圖的。在之前的例子中,我們使用3X3的卷積核在6X6大小的通道上進行卷積,得到的特征圖是4X4。如果在4X4的特征圖上繼續(xù)使用3X3的卷積核,我們得到的新特征圖將是2X2的尺寸。最極端的情況,我們使用1X1的卷積核,可以得到與原始通道相同的尺寸,但隨著卷積神經(jīng)網(wǎng)絡的加深,特征圖的尺寸是會越來越小的。

對于一個卷積神經(jīng)網(wǎng)絡而言,特征圖的尺寸非常重要,它既不能太小,也不能太大。如果特征圖太小,就可能缺乏可以提取的信息,進一步縮小的可能性就更低,網(wǎng)絡深度就會受限制。如果特征圖太大,每個卷積核需要掃描的次數(shù)就越多,所需要的卷積操作就會越多,影響整體計算量。同時,卷積神經(jīng)網(wǎng)絡往往會在卷積層之后使用全連接層,而全連接層上的參數(shù)量和輸入神經(jīng)網(wǎng)絡的圖像像素量有很大的關系(記得我們之前說的嗎?全連接層需要將像素拉平,每一個像素需要對應一個參數(shù),對于尺寸600X400的圖片需要2.4* 個參數(shù)),因此,在全連接層登場之前,我們能夠從特征圖中提取出多少信息,并且將特征圖的尺寸、也就是整體像素量縮小到什么水平,將會嚴重影響卷積神經(jīng)網(wǎng)絡整體的預測效果和計算性能。也因此,及時了解特征圖的大小,對于卷積神經(jīng)網(wǎng)絡的架構來說很有必要。
Hout?=Hin??KH+1Wout?=Win??KW+1\begin{array}{l} H_{\text {out }}=H_{\text {in }}-K_{H}+1 \\ W_{\text {out }}=W_{\text {in }}-K_{W}+1 \end{array}Hout??=Hin???KH?+1Wout??=Win???KW?+1?那怎么找出卷積操作后的特征圖的尺寸呢?假設特征圖的高為 ,特征圖的寬為 ,則對于上圖所示的卷積操作,我們可以有如下式子:


其中,HinH_{i n}Hin?WinW_{i n}Win?是輸入數(shù)據(jù)的高和寬,對于第一個卷積層而言,也就是輸入圖像的高和寬,對于后續(xù)的卷積層而言,就是前面的層所輸出的特征圖的高和寬。KHK_{H}KH?KWK_{W}KW?如同之前提到的,則代表在這一層與輸入圖像進行卷積操作的卷積核的高和寬。在之前的例子中,HinH_{i n}Hin?WinW_{i n}Win?都等于6,KHK_{H}KH?KWK_{W}KW?都等于3,因此HoutH_{out}Hout?=WoutW_{out}Wout?= 6-3+1 = 4。但在實際情況中,圖像的寬高往往是不一致的。因行業(yè)的約定俗成,卷積核的形狀往往是正方形,但理論上來說KHK_{H}KH?KWK_{W}KW?也可以不一致。在PyTorch中,卷積核的大小由參數(shù)Kernel_size確定。設置kernel_size=(3,3),即表示卷積核的尺寸為(3,3)。

這是特征圖尺寸計算的“最簡單”的情況。在實際進行卷積操作時,還有很多問題。比如說,現(xiàn)在每執(zhí)行一次卷積,我們就將感受野向右移動一個像素,每掃描完一行,我們就向下移動一個像素,直到整張圖片都被掃描完為止。在尺寸較小的圖片上(比如,28X28像素),這樣做并沒有什么問題,但對于很大的圖片來說(例如600X800),執(zhí)行一次卷積計算就需要掃描很久,并且其中有許多像素都是被掃描了很多次的,既浪費時間又浪費資源。于是,我們定義一個新的超參數(shù):卷積操作中的“步長”,參數(shù)名稱stride(也譯作步幅)。

步長是每執(zhí)行完一次卷積、或掃描完一整行后,向右、向下移動的像素數(shù)。水平方向的步長管理橫向移動,豎直方向的步長管理縱向移動。在pytorch中,當我們對參數(shù)stride輸入整數(shù)時,則默認調整水平方向掃描的步長。當輸入數(shù)組時,則同時調整水平和豎直方向上的步長。默認狀況下,水平和豎直方向的步長都是1,當我們把步長調整為(2,2),則每次橫向和縱向移動時,都會移動2個像素。
步長可以根據(jù)自己的需求進行調整,通常都設置為1-3之間的數(shù)字,也可以根據(jù)kernel_size來進行設置。在DNN中,我們把形如(sampels, features)結構的表數(shù)據(jù)中的列,也就是特征也叫做“維度”。對于表數(shù)據(jù)來說,要輸入DNN,則需要讓DNN的輸入層上擁有和特征數(shù)一樣數(shù)量的神經(jīng)元,因此“高維”就意味著神經(jīng)元更多。之前我們提到過,任何神經(jīng)網(wǎng)絡中一個神經(jīng)元上都只能有一個數(shù)字,對圖像來說一個像素格子就是一個神經(jīng)元,因此卷積網(wǎng)絡中的“像素”就是最小特征單位,我們在計算機視覺中說“降維”,往往是減少一張圖上的像素量。參數(shù)步長可以被用于“降維”,也就是可以讓輸入下一層的特征圖像素量降低,特征圖的尺寸變得更小。

以上圖中的特征圖為例,通道尺寸為7X7,卷積核尺寸為3X3,若沒有步長,則會生成5X5的特征圖(7-3+1)。但在(2,2)的步長加持下,只會生成3X3的特征圖。帶步長的特征圖尺寸計算公式為:
Hout=Hin?KHS[0]+1Wout=Win?KWS[1]+1\begin{aligned} H_{o u t} &=\frac{H_{i n}-K_{H}}{S[0]}+1 \\ W_{o u t} &=\frac{W_{i n}-K_{W}}{S[1]}+1 \end{aligned} Hout?Wout??=S[0]Hin??KH??+1=S[1]Win??KW??+1?其中S[0]代表橫向的步長,S[1]代表縱向的步長。步長可以加速對特征圖的掃描,并加速縮小特征圖,令計算更快。

Padding,Padding_mode

除了步長之外,還有一個常常在神經(jīng)網(wǎng)絡中出現(xiàn)的問題:掃描不完全或掃描不均衡。

先來看掃描不完全,同樣還是7X7的特征圖和3X3的卷積核:
S[0]=1,Hout?=(7?3)/1+1=5S[0]=2,Hout?=(7?3)/2+1=3S[0]=3,Hout?=(7?3)/3+1=2.33\begin{array}{l} S[0]=1, H_{\text {out }}=(7-3) / 1+1=5 \\ S[0]=2, H_{\text {out }}=(7-3) / 2+1=3 \\ S[0]=3, H_{\text {out }}=(7-3) / 3+1=2.33 \end{array} S[0]=1,Hout??=(7?3)/1+1=5S[0]=2,Hout??=(7?3)/2+1=3S[0]=3,Hout??=(7?3)/3+1=2.33?當步長為3時,feature map的尺寸出現(xiàn)了小數(shù),無法再包含完整的像素了。在圖像上來看也非常明顯,當步長為3的時候,向右移動一次后,就沒有足夠的圖像來進行掃描了。此時,我們不得不舍棄掉沒有掃描的最后一列像素。同時,在我們進行掃描的時候,如果我們的步長小于卷積核的寬度和長度,那部分像素就會在掃描的過程中被掃描多次,而邊緣的像素則只會在每次感受野來到邊緣時被掃描到,這就會導致“中間重邊緣輕”,掃描不均衡。為了解決這個問題,我們要采用“填充法”對圖像進行處理。
所謂填充法,就是在圖像的兩側使用0或其他數(shù)字填上一些像素,擴大圖像的面積,使得卷積核能將整個圖像盡量掃描完整。
在PyTorch中,填充與否由參數(shù)padding控制和padding_mode控制。padding接受大于0的正整數(shù)或數(shù)組作為參數(shù),但通常我們只使用整數(shù)。padding=1則時在原通道的上下左右方向各添上1個像素,所以通道的尺寸實際上會增加2*padding。padding_mode則可以控制填充什么內容。在圖上展示的是zero_padding,也就是零填充,但我們也可以使用其他的填充方式。pytorch提供了兩種填充方式,0填充與環(huán)型填充。在padding_mode中輸入“zero”則使用0填充,輸入“circular”則使用環(huán)型填充(原始通道的數(shù)據(jù)復制出去用)。

需要注意的是,雖然pytorch官方文檔上說padding_mode可以接受四種填充模式,但實際上截至版本1.7.1,仍然只有"zeros"和"circular"兩種模式有效,其他輸入都會被當成零填充。如果想要使用填充鏡面翻轉值的reflection padding,則必須使用單獨定義的層nn.ReflectionPad2d,同樣的,"replicate"模式所指代的填充邊緣重復值需要使用單獨的類nn.ReplicationPad2d。
不難發(fā)現(xiàn),如果輸入通道的尺寸較小,padding數(shù)目又很大,padding就可能極大地擴充通道的尺寸,并讓feature map在同樣的卷積核下變得更大。我們之前說,在沒有其他操作時feature map往往是小于輸入通道的尺寸的,而加入padding之后feature map就有可能大于輸入通道了,這在經(jīng)典卷積網(wǎng)絡的架構中也曾出現(xiàn)過。通常來說,我們還是會讓feature map隨著卷積層的深入逐漸變小,這樣模型計算才會更快,因此,padding的值也不會很大,基本只在1~3之間。

實際上,Padding并不能夠保證圖像一定被掃描完全或一定均衡。看下面的例子:
不難發(fā)現(xiàn),即便已經(jīng)填充了一個像素,在現(xiàn)在的步長與卷積核大小下,依然無法將整張圖掃描完全。此時,有兩種解決方案,一種叫做"valid",一種叫做"same"。
valid模式就是放棄治療,對于掃描不到的部分,直接丟棄。“same”模式是指,在當前卷積核與步長設置下無法對全圖進行掃描時,對圖像右側和下邊進行“再次填充”,直到掃描被允許進行為止。從上圖看,same模式下的padding設置本來是1(即左右兩側都填上0),但在右側出現(xiàn)11、12、13和填充的0列無法被掃描的情況,則神經(jīng)網(wǎng)絡自動按照kernel_size的需要,在右側再次填充一個0列,實現(xiàn)再一次掃描,讓全部像素都被掃描到。

這個操作看上去很智能,但遺憾的是只能夠在tensorflow中實現(xiàn)。對于PyTorch而言,沒有“same”的選項,只要無法掃描完全,一律拋棄。為什么這樣做呢?主要還是因為kernel_size的值一般比較小,所以被漏掉的像素點不會很多,而且基本集中在邊緣。隨著計算機視覺中所使用的圖片分辨率越來越高,圖像尺寸越來越大,邊緣像素包含關鍵信息的可能性會越來越小,丟棄邊緣就變得越來越經(jīng)濟。對于一張28x28的圖像而言,丟棄2、3列或許會有不少信息損失,但對于720x1080的圖片而言,究竟是720x1078還是720x1080,其實并無太大區(qū)別。

那如果,你的圖像尺寸確實較小,你希望盡量避免未掃描的像素被丟棄,那你可以如下設置:

  • 1、卷積核尺寸控制在5x5以下,并且kernel_size > stride
  • 2、令2*padding > stride

這樣做不能100%避免風險,但可以大規(guī)模降低像素被丟棄的風險(個人經(jīng)驗,無理論基礎)。

padding操作會影響通道的大小,因此padding也會改變feature map的尺寸,當padding中輸入的值為P時,特征圖的大小具體如下:Hout=Hin+2P?KHS[0]+1Wout=Win?+2P?KWS[1]+1\begin{aligned} H_{o u t} &=\frac{H_{i n}+2 P-K_{H}}{S[0]}+1 \\ W_{o u t} &=\frac{W_{\text {in }}+2 P-K_{W}}{S[1]}+1 \end{aligned} Hout?Wout??=S[0]Hin?+2P?KH??+1=S[1]Win??+2P?KW??+1?我們在代碼中來感受一下特征圖尺寸的變化:

#記住我們的計算公式 #(H + 2p - K)/S + 1 #(W + 2p - K)/S + 1 #并且卷積網(wǎng)絡中,默認S=1,p=0 data = torch.ones(size=(10,3,28,28)) conv1=nn.Conv2d(3,6,3) conv2=nn.Conv2d(6,10,3) conv3=nn.Conv2d(10,16,5,stride=2,padding=1) conv4=nn.Conv2d(16,3,5,stride=(2,3),padding=2) #(28 + 0 - 3)/1 + 1 = 26 #驗證一下 conv1(data).shape #torch.Size([10, 6, 26, 26]) #conv2,輸入結構26*26 #(26 + 0 - 3)/1 + 1 = 24 #驗證 conv2(conv1(data)).shape #torch.Size([10, 10, 24, 24]) #conv3,輸入結構24*24 #(24 + 2 - 5)/2 + 1 = 11,掃描不完全的部分會被舍棄 conv3(conv2(conv1(data))).shape #torch.Size([10, 16, 11, 11]) #conv4,輸入結構11*11 #(11 + 4 - 5)/3 + 1 = 4.33,掃描不完全的部分會被舍棄 conv4(conv3(conv2(conv1(data)))).shape #torch.Size([10, 3, 6, 4])

padding和stride是卷積層最基礎的操作,之后的課程中我們還會有各種各樣的操作,他們都有可能會改變卷積層的輸出結構或參數(shù)量。對于入門而言,學會padding和stride也就足夠了。

2 池化層nn.MaxPool & nn.AvgPool

無論是調整步長還是加入填充,我們都希望能夠自由控制特征圖的尺寸。除了卷積層之外,另一種可以高效減小特征圖尺寸的操作是“池化”Pooling。池化是一種非常簡單(甚至有些粗暴的)的降維方式,經(jīng)常跟在卷積層之后,用以處理特征圖。最常見的是最大池化(Max Pooling)和平均池化(Average Pooling)兩種操作,他們都很容易理解:
池化層也有核,但它的核沒有值,只有尺寸。在上圖之中,池化核的尺寸就是(2,2)。池化核的移動也有步長stride,但默認步長就等于它的核尺寸,這樣可以保證它在掃描特征圖時不出現(xiàn)重疊。當然,如果我們需要,我們也可以設置參數(shù)令池化核的移動步長不等于核尺寸,在行業(yè)中這個叫“Overlapping Pooling”,即重疊池化,但它不是非常常見。通常來說,對于特征圖中每一個不重疊的、大小固定的矩陣,池化核都按照池化的標準對數(shù)字進行計算或篩選。在最大池化中,它選出掃描區(qū)域中最大的數(shù)字。在平均池化中,它對掃描區(qū)域中所有的數(shù)字求平均。在加和池化中,它對掃描區(qū)域中所有的數(shù)字進行加和。

在這幾種簡單的方法中,最大池化是應用最廣泛的,也是比較有效的。考慮看看feature map中的信息是怎么得來的?feature map中每個像素上的信息都是之前的卷積層中,圖像與卷積核進行互相關操作的結果。對之前的卷積層而言,卷積核都是一致的,唯一不同的就是每次被掃描的區(qū)域中的像素值。像素值越大,說明顏色信息越多,像素值越小,說明圖像顯示約接近黑色,因此經(jīng)過卷積層之后,像素值更高的點在原始圖像上更有可能帶有大量信息。MaxPooling通過摘取這些帶有更多信息的像素點,有效地將冗余信息消除,實現(xiàn)了特征的“提煉”。相對的,平均和加和的“提煉”效應就弱一些。
在PyTorch中,池化層也有多種選項,但這些多屬于“普通池化”的范圍。在傳統(tǒng)計算機視覺中,我們還有空間金字塔池化(Spatial Pyramid Pooling)等操作。
以MaxPool2d為例,其類和參數(shù)的詳情如下:

CLASS torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False,ceil_mode=False)

其中kernel_size就是池化核的尺寸,一般都設置為2X2或3X3。Padding參數(shù)與Stride參數(shù)一般都不填寫。需要提醒的是,池化層的步長一般與核尺寸保持一致,因此stride參數(shù)的默認值就是kernel_size。池化層對特征圖尺寸的影響,也符合我們之前所寫的這個公式:Hout=Hin+2P?KHS[0]+1Wout=Win?+2P?KWS[1]+1\begin{aligned} H_{o u t} &=\frac{H_{i n}+2 P-K_{H}}{S[0]}+1 \\ W_{o u t} &=\frac{W_{\text {in }}+2 P-K_{W}}{S[1]}+1 \end{aligned} Hout?Wout??=S[0]Hin?+2P?KH??+1=S[1]Win??+2P?KW??+1?只不過此時的padding、kernel_size以及stride都是池化層的參數(shù)。我們在代碼中來看看:

data = torch.ones(size=(10,3,28,28)) conv1 = nn.Conv2d(3,6,3) #(28 + 0 - 3)/1 + 1 = 26 conv3 = nn.Conv2d(6,16,5,stride=2,padding=1) # (26 + 2 - 5)/2 +1 = 12 pool1 = nn.MaxPool2d(2) #唯一需要輸入的參數(shù),kernel_size=2,則默認使用(2,2)結構的核,默認步長stride=(2,2) # (12 + 0 - 2)/2 + 1 =6 #驗證一下 conv1(data).shape #torch.Size([10, 6, 26, 26]) conv3(conv1(data)).shape #torch.Size([10, 16, 12, 12]) pool1(conv3(conv1(data))).shape #torch.Size([10, 16, 6, 6])

事實上,使用(2,2)結構的池化層總是會將featrue map的行列都減半,將整個feature map的像素數(shù)減少3/4,因此它是非常有效的降維方法。

與卷積不同,池化層的操作簡單,沒有任何復雜的數(shù)學原理和參數(shù),這為我們提供了精簡池化層代碼的可能性。通常來說,當我們使用池化層的時候,我們需要像如上所示的方法一樣來計算輸出特征圖的尺寸,但PyTorch提供的“Adaptive”相關類,允許我們輸入我們希望得到的輸出尺寸來執(zhí)行池化:

CLASS torch.nn.AdaptiveMaxPool2d (output_size, return_indices=False)
CLASS torch.nn.AdaptiveAvgPool2d (output_size)

可以看到,在這兩個類中,我們可以輸入output_size,而池化層可以自動幫我們將特征圖進行裁剪。我們來試試看:

data = torch.ones(size=(10,3,28,28)) conv1 = nn.Conv2d(3,6,3) #(28 + 0 - 3)/1 + 1 = 26 conv3 = nn.Conv2d(6,16,5,stride=2,padding=1) # (26 + 2 - 5)/2 +1 = 12 pool1 = nn.AdaptiveMaxPool2d(7) #輸入單一數(shù)字表示輸出結構為7x7,也可輸入數(shù)組 pool1(conv3(conv1(data))).shape #torch.Size([10, 16, 7, 7])

可惜的是,PyTorch官方?jīng)]有給出這兩個類具體是怎樣根據(jù)給出的輸出特征圖的尺寸數(shù)來倒推步幅和核尺寸的,在PyTorch官方論壇也有一些關于這個問題的討論,但都沒有給出非常令人滿意的結果。大家達成一致的是:如果輸入一些奇怪的數(shù)字,例如(3,7),那在池化的過程中是會出現(xiàn)比較多的數(shù)據(jù)損失的。

除了能夠有效降低模型所需的計算量、去除冗余信息之外,池化層還有特點和作用呢?

1、提供非線性變化。卷積層的操作雖然復雜,但本質還是線性變化,所以我們通常會在卷積層的后面增加激活層,提供ReLU等非線性激活函數(shù)的位置。但池化層自身就是一種非線性變化,可以為模型帶來一些活力。然而,學術界一直就池化層存在的必要性爭論不休,因為有眾多研究表明池化層并不能提升模型效果(有爭議)。
2、有一定的平移不變性(有爭議)。
3、池化層所有的參數(shù)都是超參數(shù),不涉及到任何可以學習的參數(shù),這既是優(yōu)點(增加池化層不會增加參數(shù)量),也是致命的問題(池化層不會隨著算法一起進步)。
4、按照所有的規(guī)律對所有的feature map一次性進行降維,feature map不同其本質規(guī)律不然不同,使用同樣的規(guī)則進行降維,必然引起大估摸信息損失。

不過,在經(jīng)典神經(jīng)網(wǎng)絡架構中,池化層依然是非常關鍵的存在。如果感興趣的話,可以就池化與卷積的交互相應深入研究下去,繼續(xù)探索提升神經(jīng)網(wǎng)絡效果的可能性。

3 Dropout2d與BatchNorm2d

Dropout與BN是神經(jīng)網(wǎng)絡中非常經(jīng)典的,用于控制過擬合、提升模型泛化能力的技巧,在卷積神經(jīng)網(wǎng)絡中我們需要應用的是二維Dropout與二維BN。對于BN我們在前面的課程中有深入的研究,它是對數(shù)據(jù)進行歸一化處理的經(jīng)典方法,對于圖像數(shù)據(jù),我們所需要的類如下:

CLASS torch.nn.BatchNorm2d (num_features, eps=1e-05, momentum=0.1, affine=True,track_running_stats=True)

BN2d所需要的輸入數(shù)據(jù)是四維數(shù)據(jù)(第一個維度是samples),我們需要填寫的參數(shù)幾乎只有num_features一個。在處理表數(shù)據(jù)的BatchNorm1d里,num_features代表了輸入bn層的神經(jīng)元個數(shù),然而對于卷積網(wǎng)絡來說,由于存在參數(shù)共享機制,則必須以卷積核/特征圖為單位來進行歸一化,因此當出現(xiàn)在卷積網(wǎng)絡前后時,BatchNorm2d所需要輸入的是上一層輸出的特征圖的數(shù)量。例如:

data = torch.ones(size=(10,3,28,28)) conv1 = nn.Conv2d(3,32,5,padding=2) bn1 = nn.BatchNorm2d(32) bn1(conv1(data)).shape #不會改變feature map的形狀 #torch.Size([10, 32, 28, 28]) #輸入其他數(shù)字則報錯 #bn1 = nn.BatchNorm2d(10)

同時,BN層帶有β\betaβγ\gammaγ參數(shù),這兩個參數(shù)的數(shù)量也由特征圖的數(shù)量決定。例如,對有32張?zhí)卣鲌D的數(shù)據(jù)進行歸一化時,就需要使用32組不同的β\betaβγ\gammaγ參數(shù),總參數(shù)量為特征圖數(shù) * 2 = 64。

理論上BN能完全替代Dropout的功能。Dropout是課程中首次提到的概念,它是指在神經(jīng)網(wǎng)絡訓練過程中,以概率p隨機地“沉默”一部分神經(jīng)元的技術。具體來說,當整體神經(jīng)元數(shù)量為N時,Dropout層會隨機選擇p * N個神經(jīng)元,讓這些神經(jīng)元在這一次訓練中不再有效,當相遇使選出的神經(jīng)元的權重變?yōu)?,使神經(jīng)元失活。在每次訓練中,都有一組隨機挑選的神經(jīng)元被沉默,這樣會減弱全體神經(jīng)元之間的聯(lián)合適應性,減少過擬合的可能性。在進行測試時,dropout會對所有神經(jīng)元上的系數(shù)都乘以概率ppp,用以模擬在訓練中這些神經(jīng)元只有ppp的概率被用于向前傳播的狀況。

對于卷積神經(jīng)網(wǎng)絡來說,我們需要使用的類是Dropout2d,唯一需要輸出的參數(shù)是p,其輸入數(shù)據(jù)同樣是帶有samples維度的四維數(shù)據(jù)。不過在卷積中,Dropout不會以神經(jīng)元為單位執(zhí)行“沉默”,而是一次性斃掉一個通道。因此,當通道總數(shù)不多時,使用Dropout或Dropout中的p值太大都會讓CNN喪失學習能力,造成欠擬合。通常來說,使用Dropout之后模型需要更多的迭代才能夠收斂,所以我們總是從p=0.1,0.25開始嘗試,最多使用p=0.5,否則模型的學習能力會出現(xiàn)明顯下降。

CLASS torch.nn.Dropout2d (p=0.5, inplace=False)

data = torch.ones(size=(10,1,28,28)) conv1 = nn.Conv2d(1,32,5,padding=2) dp1 = nn.Dropout2d(0.5) dp1(conv1(data)).shape #不會改變feature map的形狀

Dropout層本身不帶有任何需要學習的參數(shù),因此不會影響參數(shù)量。

接下來,我們來實現(xiàn)一些由卷積層和池化層組成的神經(jīng)網(wǎng)絡架構,幫助大家回顧一下神經(jīng)網(wǎng)絡的定義過程,同時也加深對卷積、池化等概念的印象。

總結

以上是生活随笔為你收集整理的Lesson 16.5 在Pytorch中实现卷积网络(上):卷积核、输入通道与特征图在PyTorch中实现卷积网络(中):步长与填充的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

日本久久中文字幕 | 欧美日韩精品在线观看视频 | 国产日韩精品一区二区三区在线 | 国产精品久久久久久久久软件 | 国产资源免费 | 一区二区三区日韩在线观看 | 国产欧美精品一区二区三区四区 | 久久久久久国产精品 | 超碰夜夜| 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 国产人成在线视频 | 国产美女免费看 | 中文乱幕日产无线码1区 | 手机成人av在线 | 久久久久久久久久伊人 | 日本精品一区二区 | wwwwww黄| 国产在线观看中文字幕 | 午夜精品久久一牛影视 | 97色婷婷成人综合在线观看 | 亚洲色图av | 久久久久久久久毛片精品 | 五月开心激情网 | 亚洲三级在线免费观看 | 黄色福利| 久久精品中文 | 91亚洲狠狠婷婷综合久久久 | 国产精品久久在线 | 欧美一级xxxx | 51久久成人国产精品麻豆 | 国产精品亚洲片夜色在线 | 三级黄色网址 | 午夜精品福利一区二区三区蜜桃 | 国产精品在线看 | 色噜噜噜噜 | 探花视频免费观看 | 在线观看涩涩 | 成人av在线看 | 欧美成年人在线观看 | 久久精品久久精品久久精品 | 免费十分钟 | 亚洲精品av在线 | 伊人婷婷 | 黄视频色网站 | 在线观看免费成人av | 美女黄网站视频免费 | 久久久这里有精品 | 国产欧美精品在线观看 | 白丝av在线 | 国产剧情一区二区 | 国精产品999国精产品视频 | 伊香蕉大综综综合久久啪 | 亚洲国产日韩一区 | 狠狠色丁香婷婷综合视频 | 中文字幕激情 | 国产精品完整版 | 91精品国产91久久久久久三级 | 国产大尺度视频 | 人人爽久久久噜噜噜电影 | 九月婷婷人人澡人人添人人爽 | 国产人成一区二区三区影院 | 国产91免费观看 | 亚洲日本va中文字幕 | 狠狠狠狠狠狠狠 | 成人久久久久久久久 | 欧美一级片在线播放 | 又黄又爽的视频在线观看网站 | 久久久国产精华液 | 国产字幕在线播放 | 精品免费观看视频 | 成人小视频在线观看免费 | 99免费在线播放99久久免费 | 日韩av成人在线观看 | 香蕉视频亚洲 | 美女视频免费精品 | 热久久视久久精品18亚洲精品 | 久久久久久久久久久久久国产精品 | 91精品老司机久久一区啪 | 国产a国产a国产a | 国产乱码精品一区二区蜜臀 | 久草精品视频 | 免费日韩 精品中文字幕视频在线 | 久久成人国产精品 | 中文字幕在线视频一区二区 | 丁香五月亚洲综合在线 | 玖草影院 | 久久久精品 | 亚洲精品综合欧美二区变态 | 日韩视频中文字幕 | 日本中文一区二区 | 国产精品网站一区二区三区 | 久久国产精品电影 | 韩国精品一区二区三区六区色诱 | 久久超碰网 | a级成人毛片 | 色多多视频在线 | 免费看污的网站 | 开心激情五月网 | 天天曰| 午夜123| 91完整版在线观看 | www五月婷婷| 欧美日韩在线免费视频 | 91亚洲夫妻 | 精品国产网址 | 五月天综合激情网 | 麻豆视屏| 亚洲波多野结衣 | 91经典在线| 亚洲在线视频免费 | 五月天狠狠操 | 在线免费观看麻豆视频 | 99re在线视频观看 | www.色国产| 国产成人亚洲在线观看 | 日韩在线中文字幕视频 | avove黑丝| www日日| 久久社区视频 | 国产 日韩 欧美 自拍 | 欧美在线1区 | 欧美激情综合色综合啪啪五月 | 人人cao| 亚洲情影院 | 伊人亚洲精品 | 成人午夜电影在线观看 | 玖玖玖精品 | 日日精品 | 在线观看一级视频 | 亚洲精品视频在线播放 | 成在人线av | 精品视频99 | 99热只有精品在线观看 | 操一草 | 欧美一级电影在线观看 | 国产99久久九九精品免费 | 中文字幕在线观看完整版 | 又爽又黄又刺激的视频 | 91黄在线看 | 在线观看麻豆av | 欧美激情视频一区二区三区免费 | 国产精品18久久久久白浆 | 国产精品三级视频 | 69欧美视频 | 91精品国产福利在线观看 | 黄色小网站免费看 | 天天色综合1 | 天天爽综合网 | 亚洲一区在线看 | 香蕉免费 | 韩日电影在线免费看 | 国产女人18毛片水真多18精品 | 在线视频免费观看 | 成人观看 | 成人久久久久久久久久 | 字幕网在线观看 | 91.dizhi永久地址最新 | 一级一级一片免费 | 免费观看黄色12片一级视频 | 日韩国产精品久久久久久亚洲 | 国产成人在线免费观看 | 亚洲精品色婷婷 | 亚洲国产中文字幕在线观看 | 日韩亚洲国产精品 | 日本在线免费看 | 免费裸体视频网 | av东方在线| 又黄又爽又刺激的视频 | 国产在线观看免费 | www.日韩免费 | 天天碰天天操 | 精品国产成人 | www.婷婷com| 天天操天天操天天操天天操 | 国产一级在线观看视频 | a级片韩国| 91传媒免费观看 | 三级黄色理论片 | 午夜在线看片 | 成人免费大片黄在线播放 | 色午夜影院 | 国产黄色片在线免费观看 | 日韩欧美在线中文字幕 | 欧美日韩国产一区二区在线观看 | 亚洲精品女 | 在线va网站 | 色综合久久久久 | 亚洲播放一区 | 99产精品成人啪免费网站 | 高清av不卡 | 国产精品系列在线观看 | 黄色特一级 | 国产精品 日本 | 91精品国产乱码久久 | 亚洲高清色综合 | 国产又黄又爽又猛视频日本 | 综合婷婷久久 | 色小说av | 久久精品成人 | 久久精品99北条麻妃 | av三级在线看 | 久久久免费精品视频 | 国产小视频你懂的 | 在线视频一区观看 | 亚洲精品观看 | 国产精品女教师 | 成人在线免费观看网站 | 亚洲成av人片在线观看无 | 午夜精品久久久久久久久久久久久久 | 久草青青在线观看 | 国产69精品久久app免费版 | 亚洲精品乱码久久久久久蜜桃欧美 | 久久少妇av | 中文字幕在线观看网站 | 色综合久久88色综合天天人守婷 | 欧美午夜一区二区福利视频 | 免费黄色网址大全 | x99av成人免费| 国产精品女主播一区二区三区 | 欧美成人91 | 欧美日产一区 | 日韩av成人免费看 | 丝袜网站在线观看 | 精品96久久久久久中文字幕无 | 午夜精品久久一牛影视 | 在线观看免费视频你懂的 | 国产九色91 | 久久99久久99精品 | 日韩高清不卡在线 | 四虎www| 97精品欧美91久久久久久 | 午夜视频免费 | 日韩三级免费观看 | 91精品国自产在线观看欧美 | 国产一级久久 | 97在线视频免费看 | 成人av资源网站 | 色婷婷福利视频 | 中文字幕在线日亚洲9 | 国产91在线观 | 免费观看午夜视频 | 五月激情婷婷丁香 | 国产精品午夜8888 | 亚洲九九影院 | 日韩色区 | 三级黄色网址 | 日韩精品1区2区 | 久久 精品一区 | 久久夜夜夜 | 亚州av成人| 99久热在线精品视频成人一区 | 亚洲国产三级在线 | 91视频亚洲 | 国产不卡网站 | 天天操天天综合网 | 99精品国产在热久久 | 欧美日韩精品在线免费观看 | 6080yy精品一区二区三区 | 三级视频日韩 | 91桃色在线免费观看 | www.久热| av综合网址 | 亚洲精品国产自产拍在线观看 | 中国精品一区二区 | 欧美视频不卡 | 日本三级吹潮在线 | avove黑丝| 久久影视中文字幕 | 日韩三级视频在线看 | 五月婷婷在线视频观看 | 成人视屏免费看 | 亚洲一级电影在线观看 | 午夜视频亚洲 | 欧美在线18 | 国产国语在线 | 亚洲精品www久久久 www国产精品com | 色婷久久 | 999视频网站 | 久久九九免费视频 | 日韩综合色 | 亚洲一级二级三级 | 欧美色图狠狠干 | 亚洲日本韩国一区二区 | 九九热有精品 | 国产精品视频免费看 | 欧洲成人av | 超碰在线98| 久久手机视频 | 色999五月色 | 51久久夜色精品国产麻豆 | 国产美女网站在线观看 | 国产一区久久久 | 女人高潮一级片 | 丁香花中文字幕 | 91福利影院在线观看 | 久操视频在线播放 | 韩国一区二区三区视频 | 欧美一二三区播放 | 精品国产成人 | 99热这里只有精品免费 | 国产麻豆视频网站 | 国产精品免费不卡 | 成年人在线观看视频免费 | 亚洲黄色影院 | 日韩一级成人av | 丁香婷婷综合激情五月色 | 日韩乱码在线 | 激情伊人| 视频一区二区在线观看 | 在线观看日韩中文字幕 | 久久精品79国产精品 | 久久99精品久久久久久 | 日日干激情五月 | 奇米四色影狠狠爱7777 | 欧美精品生活片 | 天天草天天草 | 伊人网av| 婷婷精品国产欧美精品亚洲人人爽 | 99热国产在线观看 | 欧美成人亚洲成人 | 国产日韩欧美在线免费观看 | 精品国产成人在线影院 | 草免费视频 | 99精品在这里 | 91福利影院在线观看 | 毛片1000部免费看 | 午夜91在线 | 九九综合在线 | 二区三区在线观看 | av不卡网站| 亚洲综合视频在线 | 国产精品18videosex性欧美 | 久久久首页 | 日本久久综合视频 | 一本色道久久综合亚洲二区三区 | 色婷婷在线观看视频 | 精品国偷自产国产一区 | 日韩av电影免费观看 | 国产剧情一区在线 | 天堂视频中文在线 | 蜜臀aⅴ国产精品久久久国产 | 日韩激情视频在线 | 曰韩精品 | 日本中文字幕视频 | 久久99久久99精品免观看粉嫩 | 日韩www在线 | 91av视频观看| 免费色av| 国内成人精品视频 | 国产黄色精品在线 | 亚洲精品视频在线 | 精品久久久精品 | 韩日精品在线 | 国产午夜精品理论片在线 | 午夜10000| 国产成人333kkk | 在线看片a| 探花国产在线 | 日韩精品久久久 | 中文字幕在线专区 | 亚洲一二区视频 | 欧美人操人 | 亚洲第一av在线播放 | 在线成人免费 | 一区二区视频在线看 | 黄色片免费电影 | 91亚洲精品国偷拍自产在线观看 | 欧美午夜理伦三级在线观看 | 亚洲丝袜一区二区 | 一本到视频在线观看 | 又爽又黄又刺激的视频 | 蜜桃av人人夜夜澡人人爽 | 国产精品男女视频 | 国产高清视频在线播放一区 | 麻豆国产在线播放 | 中文字幕久久久精品 | 成人免费看片98欧美 | 91av视频免费在线观看 | 人人干在线观看 | 国产在线播放一区二区三区 | 黄色avwww | 波多野结衣在线播放一区 | 日本韩国在线不卡 | 中文字幕成人在线观看 | 99综合影院在线 | 国产 一区二区三区 在线 | 美女福利视频 | 日韩在线观看你懂的 | 91av色| 麻豆免费精品视频 | 九九九九精品九九九九 | 国产福利91精品张津瑜 | 免费日韩一级片 | 婷婷伊人综合亚洲综合网 | 中文字幕视频观看 | 伊人狠狠色 | 日韩中文在线播放 | 国产成人99av超碰超爽 | av在线播放不卡 | 18性欧美xxxⅹ性满足 | 高清av中文字幕 | 午夜性福利 | 91免费观看网站 | 日韩av中文字幕在线免费观看 | 国产老熟 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 婷婷六月天天 | 亚洲黄色一级视频 | 国产麻豆视频在线观看 | 日韩精品一区二区三区免费观看视频 | 国产一区在线播放 | 成人精品一区二区三区中文字幕 | 国产精华国产精品 | 97超碰在线资源 | 欧美一级在线看 | 日日天天干 | av在线免费网站 | www.天天综合| 日韩激情小视频 | 五月天激情综合网 | www.夜夜骑.com | 有码中文在线 | 欧美一级小视频 | 亚洲成人av免费 | 久久免费试看 | 成人a级黄色片 | 成人毛片在线观看 | 欧美日韩裸体免费视频 | 91九色视频国产 | 一本一道波多野毛片中文在线 | 五月婷激情| 久久久官网| 午夜av在线免费 | 黄色毛片一级片 | 99热超碰| 91精品视频一区二区三区 | 国产精品在线看 | 玖玖玖在线观看 | 狠狠色噜噜狠狠狠狠2021天天 | 美女网站视频色 | 在线视频一二区 | 香蕉视频在线观看免费 | 91爱爱免费观看 | 亚洲jizzjizz日本少妇 | 久久久久久久毛片 | 久草视频中文 | 韩国av一区二区三区在线观看 | 黄色91在线观看 | 欧美孕妇与黑人孕交 | 国产亚洲成人精品 | 久久综合婷婷 | 国产精品一区二区久久精品爱涩 | 国产字幕在线看 | 黄色网www | 久久久国产在线视频 | 午夜精品av在线 | 国产精品热 | 欧美日韩一区二区三区在线免费观看 | 国产成人av片 | 色开心| 日韩a在线| 中文字幕在线视频一区二区 | 天天操夜夜看 | 五月亚洲综合 | 国产美女在线精品免费观看 | 精品九九久久 | 中文字幕av免费 | 91精品国自产在线 | 在线视频观看成人 | 97人人澡人人爽人人模亚洲 | www.夜夜 | 久色 网| 18国产精品福利片久久婷 | 三上悠亚一区二区在线观看 | 国产精品9999久久久久仙踪林 | 色网站免费在线观看 | 麻豆一区二区 | 色综合婷婷久久 | 欧美a性 | 亚洲三级在线 | av电影在线免费观看 | 五月婷婷激情五月 | 久久免费美女视频 | 美女视频黄在线观看 | 91成人免费看片 | 国产一区二区三区在线 | 五月亚洲| av观看久久久 | 欧美日韩中文在线视频 | 99视频在线精品免费观看2 | 欧日韩在线| 一区国产精品 | 99这里只有久久精品视频 | 中文字幕丝袜美腿 | 精品久久久久国产免费第一页 | 日韩视频免费在线观看 | 丁香花在线视频观看免费 | 精品免费一区二区三区 | a黄在线观看 | 成人黄色av网站 | 日韩电影中文字幕在线观看 | 免费在线成人 | 性色av免费看 | 国产精品久久久久久久久久妇女 | 视频在线国产 | 97热在线观看 | 日操操 | 一区二区视频在线观看免费 | 日日碰狠狠躁久久躁综合网 | 亚洲国产剧情av | 色丁香婷婷 | 免费观看国产精品视频 | 日韩乱码中文字幕 | 亚洲天堂va | 日韩国产精品久久 | 成人a大片 | 色婷av | 欧美日韩三区二区 | 免费av黄色 | 欧美色婷 | 日日干干 | 亚洲视频播放 | 人人干人人艹 | 国内揄拍国内精品 | 在线免费观看国产视频 | 久久综合久久综合这里只有精品 | 五月天综合网站 | www激情网| 麻豆91精品91久久久 | 精品a视频| 欧美成人性战久久 | 在线观看片 | 婷婷丁香花五月天 | 人九九精品 | 久久免费视频播放 | 97国产 | 激情视频在线高清看 | 久久成年人 | 久久三级毛片 | 狠狠干夜夜操天天爽 | 91九色成人蝌蚪首页 | 日韩不卡高清 | 免费看黄电影 | 午夜av大片| 国产成人久久77777精品 | 国产专区一 | 中文字幕一区在线观看视频 | 欧美日韩国产在线 | 日日夜精品 | 欧美大片在线观看一区 | 激情开心站 | 九九九免费视频 | 中文国产成人精品久久一 | 中文字幕高清在线播放 | 69视频在线 | 国产在线自 | 成人免费 在线播放 | av再线观看 | 91精品对白一区国产伦 | 日本电影久久 | 色午夜影院 | a资源在线| 国产手机视频 | 久久一区二区三区超碰国产精品 | 黄免费在线观看 | 91三级在线观看 | 国产精品久久久777 成人手机在线视频 | 精品一区91 | 亚洲国产精品成人av | av在线电影免费观看 | 国内揄拍国内精品 | 黄网站a | 成人午夜电影免费在线观看 | 亚洲成人在线免费 | 欧美精品久久久久久久久免 | 国产精品福利小视频 | 青草草在线 | 丁香九月激情综合 | 在线免费观看视频你懂的 | 欧美精品一区二区在线观看 | 亚洲经典中文字幕 | 在线免费观看黄色小说 | 亚洲另类交| 国产精品久久久久999 | 一区二区三区中文字幕在线观看 | 国产一级黄色片免费看 | 亚洲精品乱码白浆高清久久久久久 | 久久久www成人免费毛片麻豆 | 国产精品理论在线观看 | 四虎影视精品永久在线观看 | 激情五月六月婷婷 | 亚洲一区美女视频在线观看免费 | 日本在线观看中文字幕 | 日本少妇久久久 | 成人免费在线视频 | 亚洲一区二区三区四区在线视频 | 国产精品正在播放 | 国产精品正在播放 | 日韩女同一区二区三区在线观看 | 成人av片免费观看app下载 | 91精品啪在线观看国产81旧版 | 免费在线精品视频 | 国产麻豆精品一区 | 久草在线视频免费资源观看 | 国产99久久久久 | 国产高清视频免费观看 | 国产精品涩涩屋www在线观看 | 亚洲在线成人精品 | 激情五月亚洲 | 国产破处在线播放 | .国产精品成人自产拍在线观看6 | 91麻豆精品国产91久久久更新时间 | 黄色a级片在线观看 | 91视频免费看片 | 久久美女免费视频 | 激情在线五月天 | 91精品国产99久久久久久久 | 干亚洲少妇 | 国产精品一区二区在线 | 久久女教师 | 国产福利小视频在线 | 天天操天天能 | 四虎成人精品永久免费av | 91麻豆精品国产91久久久无需广告 | 中文字幕视频一区 | 五月婷香| 超碰午夜| 欧美日韩99| av高清网站在线观看 | 成人在线视频你懂的 | 免费黄a大片 | 中文在线a天堂 | 狠狠躁日日躁夜夜躁av | 国产手机视频在线 | 国产一区电影在线观看 | 中文字幕亚洲在线观看 | 亚洲特级片 | 91视频91色| 国产免费久久久久 | 亚洲精品国产精品乱码在线观看 | 亚洲免费观看在线视频 | 天天天天爽| 夜夜干夜夜 | 一区二区精 | 亚洲va韩国va欧美va精四季 | 日韩免费高清在线观看 | 久久激情小说 | 丰满少妇高潮在线观看 | 天天色天天综合 | 97福利 | 国产高清视频免费在线观看 | 成人在线免费视频观看 | 精品久久久免费视频 | 9999国产| 免费在线观看av网址 | 日本乱码在线 | 久久这里只有精品23 | 久久99精品国产99久久6尤 | 在线免费中文字幕 | 97超碰国产精品 | 免费观看黄 | 日韩不卡高清 | 美女国内精品自产拍在线播放 | 欧美一区日韩一区 | 久久久九九| 国产精品美女在线观看 | 毛片在线播放网址 | 免费观看www小视频的软件 | 嫩草av在线 | 三级av在线播放 | 亚洲最新毛片 | av在线官网 | 婷婷综合导航 | 日本久久久久久 | 视频三区 | 在线观看亚洲精品 | 久久久免费精品 | 99精品欧美一区二区三区黑人哦 | 91高清免费 | 91精品推荐 | 免费的黄色的网站 | 色婷婷在线视频 | 久久草av | 免费网站污 | 国产精品视频地址 | 亚洲人精品午夜 | 日韩日韩日韩日韩 | 国产一区久久久 | 国产日韩精品一区二区三区 | 成人午夜片av在线看 | 免费无遮挡动漫网站 | 狠狠干天天色 | 绯色av一区| 国产成人精品在线观看 | 一级成人免费视频 | 国内偷拍精品视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 97视频在线观看视频免费视频 | 久久免费国产精品1 | 欧美精品一区二区免费 | 国产精品一区在线观看你懂的 | 国产精品一区在线观看 | 国产成人久久av977小说 | 丁香高清视频在线看看 | 91九色蝌蚪国产 | 精品综合久久 | 97超碰在线资源 | 91插插插免费视频 | 日日射av | 成人在线免费观看视视频 | 久久99精品国产麻豆婷婷 | 国际精品久久久久 | 日韩久久片 | 欧美亚洲另类在线视频 | 欧美在线视频a | 国产九九九九九 | 激情综合网在线观看 | 国产一二三区在线观看 | 免费高清在线观看电视网站 | 久久免费电影网 | 久久久精品二区 | 亚洲免费av电影 | 国产精品久久久久久久久久久不卡 | 992tv在线 | 人人搞人人干 | 亚洲国产av精品毛片鲁大师 | 成人黄色在线看 | 西西444www大胆无视频 | 天天做天天爱天天综合网 | 六月天色婷婷 | 狠狠干狠狠操 | 成人中文字幕av | 久久99久久精品 | 久久久福利影院 | 麻豆综合网 | 99久久影院| 天堂视频中文在线 | 国产1级毛片 | av免费在线看网站 | 少妇bbw搡bbbb搡bbb | 啪啪肉肉污av国网站 | 国产精品一区二区三区在线免费观看 | 亚洲激情 在线 | 麻豆影视在线免费观看 | 97人人爽| 97成人在线免费视频 | 四虎永久免费 | 国产成人av网址 | 久久久久久视频 | 亚洲精品午夜国产va久久成人 | 久久综合免费视频影院 | 高清中文字幕 | 亚洲精品国产精品99久久 | 特级西西人体444是什么意思 | 99久久精品国产观看 | 最近中文字幕高清字幕在线视频 | 五月开心六月婷婷 | 久久天天躁夜夜躁狠狠85麻豆 | 久久久免费电影 | 天天干天天操天天爱 | 五月天欧美精品 | 高清av免费看 | 激情伊人五月天 | 国产免费视频一区二区裸体 | 久久开心激情 | 香蕉日日| 欧美激情视频三区 | 亚洲区另类春色综合小说校园片 | 五月婷婷开心中文字幕 | 亚洲黄色免费电影 | 日韩毛片在线免费观看 | 开心丁香婷婷深爱五月 | 免费日韩 | 欧美日韩在线视频一区 | 国产在线黄 | www.香蕉视频在线观看 | 亚洲成av人片在线观看 | 欧美日韩国产综合一区二区 | 国产一区二区在线视频观看 | 激情婷婷在线观看 | 久草9视频 | 日韩av免费在线看 | 91福利视频网站 | 97国产小视频 | 久久黄色精品视频 | 在线亚洲高清视频 | 亚洲理论影院 | 天天操天天干天天操天天干 | 免费高清在线观看成人 | 91超碰在线播放 | 国产精品成人一区二区 | 国内精品久久久久影院一蜜桃 | 国产91在线看 | 男女免费av| 中文字幕视频网站 | 韩国av一区二区 | 五月天国产精品 | 久久精品这里热有精品 | 久久精品免费看 | www.狠狠操.com | 国产精品v欧美精品v日韩 | 成年人看片网站 | 精品国产欧美 | 美女视频免费精品 | 久草在线91| 粉嫩av一区二区三区四区五区 | 国产专区一 | 久久丁香 | 狠狠干天天操 | 日韩三级免费 | 国产精品观看视频 | 麻豆精品91 | 中文字幕亚洲欧美日韩 | 亚洲天天干 | 国产精品涩涩屋www在线观看 | 亚洲春色奇米影视 | 午夜av色 | 黄色免费在线视频 | 国产精品免费久久久久 | av成人免费网站 | 四虎国产永久在线精品 | 99久久综合狠狠综合久久 | 一级一片免费看 | 精品亚洲免费视频 | 欧美激情精品一区 | 久久免费视频国产 | 国产日韩中文字幕在线 | 在线有码中文 | 久久无码av一区二区三区电影网 | 999久久久久久久久久久 | 午夜av免费在线观看 | 伊人导航| 一区二区三区四区五区六区 | 美女久久99 | 久久久国产成人 | 久久激情精品 | 在线国产精品一区 | 久久精品国产免费 | 91九色在线观看 | 精品一区二区三区香蕉蜜桃 | 亚洲综合在线一区二区三区 | 久久久鲁| 日韩在线视 | 欧美视频网址 | 国产精品激情在线观看 | 四虎最新入口 | 97精品国产97久久久久久久久久久久 | 91丨九色丨蝌蚪丨老版 | 色噜噜日韩精品一区二区三区视频 | 99在线免费视频 | 日韩特级毛片 | 日韩高清一区 | 婷婷丁香五 | 久久99国产精品视频 | 久久免费一 | 国产小视频福利在线 | 日日摸日日 | 久久国产精品影片 | 日韩电影在线看 | 国产精品久久久久久久婷婷 | 日日干网| 欧美成年网站 | 美女久久久久久久久久久 | 免费久久网| 成人av播放 | 亚洲精选久久 | 成年人免费看 | 欧美成人黄色 | 国产精品一区二区视频 | 亚洲综合导航 | 日本99精品| 精品国产综合区久久久久久 | www操操操 | 中文国产成人精品久久一 | 91麻豆国产福利在线观看 | 亚洲高清不卡av | 中文字幕韩在线第一页 | 国产一级免费在线观看 | 中文字幕在线播放视频 | 国产精品久久久久久吹潮天美传媒 | 91av中文| 日韩精品免费专区 | 99久久精品久久久久久动态片 | 国产精品久久久久久久久久久久 | av在线之家电影网站 | bbbbb女女女女女bbbbb国产 | 中文字幕第 | 久久精品直播 | 婷婷久久五月天 | 人人射av | 日韩一区在线免费观看 | av观看在线观看 | 国产精品久久久久av免费 | 日韩一区在线播放 | 国产人成精品一区二区三 | 欧美日韩一区二区在线 | 日韩精品一区二区三区在线播放 | 国产做aⅴ在线视频播放 | 午夜精品久久久久久久爽 | 在线观看色网 | 欧美日韩中文视频 | 91成人免费观看视频 | 麻豆国产露脸在线观看 | 人人看人人做人人澡 | 久久综合毛片 | 最新色站 | 天操夜夜操 | 在线观看中文字幕亚洲 | 99性视频 | 综合色在线 | 九色视频自拍 | www.久久色| 日韩黄色软件 | 国产69精品久久久久久 | 韩国一区二区av | 少妇性aaaaaaaaa视频 | 色久av| 亚洲黄色片在线 | 久色免费视频 | 麻豆国产电影 | 久久成年人视频 | 婷婷九月丁香 | 久久网站免费 | 日韩手机在线观看 | 精品美女久久久久久免费 | 国产欧美精品一区二区三区四区 | 国产成人久久精品77777综合 | 特级西西www44高清大胆图片 | 国产一区 在线播放 | 综合激情av| 在线视频第一页 | 91成人精品 | 日韩欧美精品在线 | 欧美一区二区三区在线播放 | 一二区电影 | 久草9视频 | 免费看国产视频 | 午夜精品久久久久久久99无限制 | 日韩av片在线 | 亚洲成av人影院 | 久久久一本精品99久久精品66 | 一级免费黄视频 | 国产精品免费久久久久久 | 日韩在线视频国产 | 高清国产一区 | 成人av影视在线 | 超碰97免费 | 69国产盗摄一区二区三区五区 | 天天干天天做天天操 | 激情在线免费视频 | 欧美国产日韩一区 | 在线视频1卡二卡三卡 | 成人毛片a | 亚洲欧美日韩精品一区二区 | 一级免费观看 | 日韩在线国产 | 天天艹天天操 | 女人魂免费观看 | 亚洲伦理电影在线 | 免费又黄又爽视频 | 97在线观看免费高清完整版在线观看 | 麻豆国产露脸在线观看 | 激情在线网| 波多野结衣久久资源 | 亚洲视频大全 | 久久尤物电影视频在线观看 | 日韩在线欧美在线 | 色综合在 | 国产高清福利在线 | 午夜久久网站 | 久久尤物电影视频在线观看 | 亚洲三级国产 | 91在线麻豆 | 国产一区二区在线免费播放 | 亚洲黄色高清 | 蜜桃视频色 | 91成年人网站| 婷婷综合在线 | 97av影院 | 亚洲年轻女教师毛茸茸 | 天天综合网在线 | 最新中文字幕在线播放 | 天天天天天天干 | 色在线高清 | 国产高清在线一区 | www色综合| 激情网在线视频 | 美女网站色免费 | 国产伦理久久精品久久久久_ | 天堂在线一区二区 | 一区二区三区四区五区在线 | 樱空桃av | 久久亚洲精品电影 | 亚洲国产影院 | 国产精品v欧美精品 | 黄色免费网站 | 亚洲午夜在线视频 | 欧美日韩一级在线 |