日韩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)站內容還不錯,歡迎將生活随笔推薦給好友。

日韩精品亚洲专区在线观看 | av丝袜美腿 | 日韩字幕| 精壮的侍卫呻吟h | 欧美日韩视频精品 | 狠狠狠色丁香综合久久天下网 | 麻豆视频在线 | 插婷婷| 片黄色毛片黄色毛片 | 97看片网 | 91在线国内视频 | 免费裸体视频网 | 欧美色图p | 日韩一区二区三区高清在线观看 | 色偷偷88888欧美精品久久 | 亚洲高清视频在线观看免费 | 午夜久久视频 | 美女视频黄的免费的 | 狠狠狠色狠狠色综合 | 99av在线视频 | 亚洲一区 av | 国产生活一级片 | 亚洲欧洲av在线 | 亚洲精品午夜久久久久久久久久久 | 日韩中文免费视频 | 国产精品久久久久久久av电影 | 成人av一区二区三区 | 久久免费福利视频 | 久久香蕉电影 | 2021国产视频 | 在线免费视频 你懂得 | 亚洲涩涩一区 | 国产精品小视频网站 | 少妇搡bbbb搡bbb搡忠贞 | 国语对白少妇爽91 | 欧美精品一级视频 | 久综合网 | 久久黄色影院 | 亚洲成熟女人毛片在线 | 91人人爽久久涩噜噜噜 | 久久爱资源网 | 成人播放器 | 国产91精品一区二区绿帽 | www.com在线观看 | 精品主播网红福利资源观看 | 福利电影一区二区 | 欧美成人日韩 | 一区二区三区在线影院 | 国产成人久 | 一级黄色片在线免费看 | 午夜体验区 | 一级淫片在线观看 | 久久99久久久久 | 日韩理论电影网 | 九色精品免费永久在线 | 亚洲国产黄色 | 天天操网站| 91自拍视频在线 | 视频在线观看国产 | 毛片网站在线观看 | 波多野结衣一区二区 | 国内精品久久久久久中文字幕 | 三级在线播放视频 | 久久精品一区八戒影视 | 亚洲视屏在线播放 | 中文在线免费观看 | 免费av高清 | 一区二区在线不卡 | 色狠狠综合天天综合综合 | 欧美日本不卡高清 | 伊人看片 | 日本一区二区三区免费观看 | 亚洲丝袜一区 | 亚洲精品视频二区 | 亚洲作爱视频 | 香蕉视频在线视频 | 亚洲综合涩 | 一级做a视频 | 中文字幕在线观看日本 | 激情视频免费观看 | 伊人天堂久久 | 国产在线视频一区二区 | 久久久久日本精品一区二区三区 | 欧美国产日韩一区二区 | 国内精品久久久久影院一蜜桃 | 午夜精品久久久久久久99 | 久久综合久色欧美综合狠狠 | 人人狠 | 久久婷婷国产色一区二区三区 | 欧美成人精品xxx | 国产视频午夜 | 日本亚洲国产 | 国产麻豆精品95视频 | 亚洲涩涩涩 | 亚州av免费 | 果冻av在线 | 日日干网 | 久久99久国产精品黄毛片入口 | 色婷婷九月| 天天操天天插 | 欧美成年人在线观看 | 手机看国产毛片 | 久久99国产精品久久99 | 天天干天天摸天天操 | 国产成人精品久 | 欧美日韩久久不卡 | 日本在线免费看 | 九九热在线视频 | 亚洲国产最新 | 国产视频在线观看免费 | 五月天伊人| 激情黄色一级片 | 一区二区精品视频 | 99999精品| 精品福利av| 999久久久免费视频 午夜国产在线观看 | 天堂av在线网站 | 久久久精选 | 97狠狠干 | 在线观看黄色大片 | 97品白浆高清久久久久久 | 天天干天天拍天天操天天拍 | 欧美99精品 | 国产精品普通话 | 日韩欧美精品一区二区三区经典 | 国产精品美女毛片真酒店 | 欧美久草视频 | 国产精品成人免费精品自在线观看 | 精品国产乱码久久久久久1区2匹 | 久久一区二区免费视频 | 日韩激情第一页 | 国产精品自产拍在线观看网站 | 五月天久久综合网 | 激情偷乱人伦小说视频在线观看 | 免费看三级黄色片 | 国产精品永久在线观看 | 美女黄网站视频免费 | 日韩在线中文字幕视频 | 久久免费看a级毛毛片 | 免费a现在观看 | 欧美国产精品久久久久久免费 | 狠狠色伊人亚洲综合网站野外 | 国产高潮久久 | 天堂久色 | 狠狠色丁香九九婷婷综合五月 | 免费在线观看污 | 国产日产精品一区二区三区四区 | 亚洲欧美乱综合图片区小说区 | 国产精品高清在线观看 | 中文字幕在线看视频 | 日韩欧美不卡 | 黄色小说18| 日本黄色免费观看 | 婷婷激情av | 麻豆一区二区 | 欧美日韩国产区 | avv天堂| 国产高清在线观看 | 天天操福利视频 | 97超级碰碰碰视频在线观看 | 欧美激情亚洲综合 | 精品99久久久久久 | 国产又粗又硬又长又爽的视频 | 九九久 | 美国人与动物xxxx | 91亚洲国产成人久久精品网站 | 九九久久在线看 | 久久精品人 | 99热免费在线 | 在线观看av的网站 | 日韩精品视频在线免费观看 | 成人av日韩| 成年人电影免费在线观看 | 久久你懂得 | 亚洲h在线播放在线观看h | 精品成人a区在线观看 | 欧美激情xxxx | 日本久久中文 | 337p日本大胆噜噜噜噜 | 免费av 在线 | 国产亚州精品视频 | 国产福利精品一区二区 | 国产精品123 | 日韩大陆欧美高清视频区 | 97精品国自产拍在线观看 | 久久99热精品 | 少妇性xxx| 久久美女免费视频 | 日日干日日操 | 日韩在线观看一区二区 | 亚洲精品国产精品乱码在线观看 | 国产主播大尺度精品福利免费 | 六月色| 波多野结衣视频一区 | 亚洲国产成人精品在线 | 成人h在线观看 | 欧美狠狠色 | 久久精品综合网 | 天天干.com| 黄色一级在线视频 | 人人爽人人看 | 久久免费看a级毛毛片 | 成人免费观看网站 | 丁香六月婷婷综合 | 久久激情五月丁香伊人 | 久久精品99北条麻妃 | 国产一区在线免费观看 | 日韩成人欧美 | 亚洲一区视频在线播放 | 日韩欧美精品一区二区 | 免费观看十分钟 | 国产精品密入口果冻 | 99精品在线免费观看 | 一区二区理论片 | 在线国产福利 | 色噜噜在线观看 | 日韩精品免费在线观看视频 | 97超碰在线视 | 正在播放日韩 | 91九色免费视频 | 日韩欧美xxxx | 2018精品视频 | 成人国产精品免费 | 久久人人爽视频 | 亚洲电影网站 | 808电影免费观看三年 | 国产精品99久久久久久久久 | 四虎在线免费视频 | 狠狠色综合网站久久久久久久 | 91漂亮少妇露脸在线播放 | 在线观看亚洲成人 | 97超碰人人澡人人爱学生 | 久久久久麻豆v国产 | 久久天天操| 三级av在线 | 久久九九国产精品 | 超碰人人超碰 | 人人爽人人看 | 日本夜夜草视频网站 | 久久精品久久国产 | 亚洲最新av在线网站 | 国产小视频在线播放 | 久久这里只有精品23 | 制服丝袜天堂 | 日韩免费福利 | 日本九九视频 | 91网站在线视频 | 狠狠干五月天 | 黄色资源网站 | 91禁看片 | 日韩大片在线免费观看 | 在线观看 亚洲 | 日韩精品中文字幕在线播放 | 日韩手机在线观看 | 久久精品男人的天堂 | 日本福利视频在线 | 免费看久久 | 久久免费视频6 | aaa日本高清在线播放免费观看 | 中文字幕 第二区 | 91精品一 | 欧美国产日韩久久 | 中文av网站 | 久久影院一区 | 亚洲高清免费在线 | 一本一本久久a久久精品综合小说 | 亚洲免费一级 | 午夜美女av| av免费网站| 狠狠色丁香久久婷婷综合五月 | 四虎天堂 | 日韩婷婷 | 欧美精品在线一区二区 | 久草视频在线资源 | 不卡的av在线 | 黄色一级免费网站 | 久久国内精品 | 久久a国产 | av日韩中文| 精品av在线播放 | 国产精品久久久久影院 | 免费看成人片 | 亚洲日本精品 | 伊人久久一区 | 天天搞天天 | 日韩69视频 | 久久电影日韩 | 少妇啪啪av入口 | 国产手机在线视频 | 一性一交视频 | 亚洲综合成人在线 | 91在线资源 | 黄色毛片视频免费 | 91网在线观看 | 亚洲女人av | 中文字幕在线观看视频一区二区三区 | 欧美色婷 | 2019中文| 欧美日韩一区二区三区在线免费观看 | 最近最新mv字幕免费观看 | 99热这里精品| 亚洲在线国产 | 视频一区二区视频 | 人人玩人人添人人 | 欧美黑人巨大xxxxx | 亚洲国产成人久久 | 色综合久久久久综合体桃花网 | 国产美女精品视频 | 在线导航av | 黄网站免费久久 | 8x成人免费视频 | 日批网站在线观看 | 天天操夜夜操 | 欧美日韩免费看 | 日韩av免费在线电影 | av黄色在线观看 | 最近2019中文免费高清视频观看www99 | 国产小视频福利在线 | www.香蕉视频在线观看 | 成人黄色片免费看 | 国内久久久久 | 日本精品久久久一区二区三区 | 欧美色图亚洲图片 | 国产成人在线综合 | 天天综合网入口 | av免费线看| 久久国产精品一二三区 | 在线亚洲成人 | 91精品国自产拍天天拍 | 在线观看亚洲免费视频 | 99精品国产兔费观看久久99 | 午夜在线观看影院 | 成人黄色小说视频 | 亚洲丁香久久久 | 国产精品一区免费在线观看 | 丁香电影小说免费视频观看 | 99视频这里只有 | 久久精品精品电影网 | 亚洲精选国产 | 一区二区三区手机在线观看 | 精品a在线 | 久久久国产精品免费 | 精品国模一区二区三区 | 国产精品久久久久999 | 99国产精品 | 亚州av一区 | 黄色a级片在线观看 | 久久96国产精品久久99漫画 | 日韩在线色视频 | 久久久久亚洲国产精品 | 最新真实国产在线视频 | 97精品国产91久久久久久 | 久热香蕉视频 | 91亚洲夫妻 | 青青河边草免费观看完整版高清 | 97超碰人人澡 | 久久久精华网 | 在线精品播放 | av解说在线 | 美女网站黄在线观看 | 在线亚洲人成电影网站色www | 国内免费的中文字幕 | 狠狠狠狠狠狠 | 日韩欧三级 | 九九热免费视频在线观看 | 久久精品久久久精品美女 | 69精品视频在线观看 | 天天躁日日躁狠狠躁av中文 | 免费黄色网址大全 | 婷婷国产在线 | 午夜影视剧场 | 成人h电影 | 精品在线免费观看 | 九九热只有精品 | 日本视频精品 | 久久99电影 | 国产韩国日本高清视频 | 精品国产91亚洲一区二区三区www | 久久久久伦理电影 | 91成品人影院 | 日韩伦理片hd | 黄色国产在线观看 | 欧洲精品亚洲精品 | 99在线热播 | 久久在线视频精品 | 六月婷婷久香在线视频 | 一区二区三区中文字幕在线 | 欧美亚洲专区 | 欧美激情综合网 | 国产成人三级一区二区在线观看一 | 久久久久久久久久久高潮一区二区 | 在线岛国av| 在线精品视频免费观看 | 又污又黄的网站 | 开心婷婷色 | 免费观看全黄做爰大片国产 | 久久五月婷婷丁香社区 | 久久国产女人 | 亚洲综合欧美精品电影 | 成人亚洲精品国产www | 国产亚洲一区二区在线观看 | 国产精品美女久久久 | 日韩大陆欧美高清视频区 | 午夜久久福利影院 | 在线成人免费电影 | 五月婷婷在线观看 | 天天操夜夜操国产精品 | 国产一区二区在线免费观看 | 999久久| 亚洲精品视频偷拍 | 麻豆手机在线 | 五月婷香蕉久色在线看 | 日韩一区视频在线 | 波多野结衣视频在线 | 欧美日韩精品区 | 久久视频精品在线 | 精品久久一区二区三区 | 综合在线观看 | 中文字幕亚洲精品在线观看 | 五月花丁香婷婷 | 九色精品免费永久在线 | 久久久久久久久久久高潮一区二区 | 国产99免费视频 | 婷婷视频在线观看 | 久久久久亚洲精品中文字幕 | 中文字幕一区二区三区乱码在线 | 高清av中文在线字幕观看1 | 国产精品美女久久久久久免费 | 久久精品婷婷 | 97在线公开视频 | 91香蕉嫩草 | 亚洲午夜在线视频 | 国产日本亚洲高清 | 一区二区三区四区在线免费观看 | 五月婷婷色播 | 国产人在线成免费视频 | 亚洲男模gay裸体gay | 天天曰天天 | 高清一区二区三区av | 久久人人爽人人爽人人 | 在线之家免费在线观看电影 | 国产人成一区二区三区影院 | 久久se视频 | 午夜私人影院久久久久 | 日韩夜夜爽 | 91精品国产麻豆国产自产影视 | 国产香蕉久久精品综合网 | 国产午夜一级毛片 | 五月婷婷视频 | 欧美美女激情18p | 西西4444www大胆艺术 | 久久99电影 | 日本久久久久久久久久久 | 免费a级黄色毛片 | 免费a视频在线观看 | 天天操天天操天天操天天操 | 久在线观看 | 午夜电影中文字幕 | 欧美色888 | 狠狠色噜噜狠狠狠狠2021天天 | 精品国产诱惑 | 色婷婷综合在线 | 亚洲欧洲久久久 | 日韩av电影网站在线观看 | 黄色www免费| 欧美日韩一区二区三区视频 | 亚洲精品婷婷 | 国产黄色在线看 | www黄色com| 激情图片久久 | 黄色软件大全网站 | 视频 天天草| 天堂av在线网址 | 久久综合之合合综合久久 | 久久线视频 | 国产精品久久伊人 | 中文字幕 欧美性 | 精品成人a区在线观看 | 激情婷婷亚洲 | 国产在线观看网站 | 精品久久久久久亚洲综合网站 | 午夜.dj高清免费观看视频 | 欧美无极色 | 三级动态视频在线观看 | 国产精品 国内视频 | 一区二区三区久久精品 | 好看av在线 | 免费在线日韩 | 亚洲精品视频免费看 | 一区二区三区在线电影 | 中文字幕在线不卡国产视频 | 日日干av | 天天综合区 | 久久久www| 欧美精品久久久久久久久久白贞 | 日韩国产精品毛片 | 综合铜03 | 99热这里只有精品1 av中文字幕日韩 | 久草www| 草久视频在线观看 | 精品久久网 | 99麻豆久久久国产精品免费 | 青青色影院 | 日韩在线播放av | 中文字幕一区二区三区在线观看 | 久久人人爽人人片av | 综合色中色| 伊人亚洲精品 | 亚洲永久精品一区 | 91探花系列在线播放 | 亚洲精品大片www | 国产在线资源 | 91精品在线免费观看视频 | 国产国语在线 | 国产裸体永久免费视频网站 | 五月亚洲综合 | 久热av | 久久久久在线视频 | 911在线| 久草免费在线视频观看 | 欧美日韩激情视频8区 | 国产资源在线观看 | 日韩精品视频在线观看免费 | 国产99亚洲| a级片网站 | 久久96| 亚洲精品xxx| 在线免费视| 天天想夜夜操 | 日韩免费网站 | 99在线免费视频观看 | 亚洲成a人片综合在线 | 国产精品 国内视频 | 国产一区在线不卡 | 国产一二区免费视频 | 国产成人精品免费在线观看 | 涩av在线 | 国产99re | 97天天综合网 | 婷婷综合久久 | 国产97在线视频 | 国产伦精品一区二区三区在线 | 国产午夜一区 | 亚洲黄色一级大片 | 狠狠色狠狠色合久久伊人 | 成人免费ⅴa | 天天草网站 | 九九导航| 国产精品久久久av久久久 | 国产亚洲婷婷 | www婷婷| 就要色综合| 国产日韩在线视频 | 激情综合亚洲精品 | 91九色porny蝌蚪主页 | 久久国产欧美日韩精品 | 中文字幕在线观看91 | 人人爽影院 | 天天射,天天干 | 福利av在线| 亚洲涩涩色 | 免费看片在线观看 | 国产69精品久久久久99 | 亚洲一区二区天堂 | 日韩大片免费在线观看 | 免费在线一区二区 | www色,com | 亚洲综合五月 | 99精品一级欧美片免费播放 | 亚洲精品18p | 欧美人体xx | 精品美女久久 | 婷婷色中文字幕 | 免费黄色看片 | 色狠狠综合 | 成人一区二区三区在线 | 日本特黄一级片 | 日本中文字幕网址 | 天天做综合网 | 亚洲天天综合 | 97操操操| 久草影视在线 | 丁香六月色 | 国产又黄又硬又爽 | 99爱国产精品 | 91热精品 | 手机在线观看国产精品 | 欧美成人性网 | 综合色狠狠 | 欧美与欧洲交xxxx免费观看 | 黄色av网站在线观看免费 | 五月婷婷视频 | 欧美日韩一级久久久久久免费看 | 成人午夜影院在线观看 | 高清一区二区三区av | 国产精品欧美久久久久天天影视 | 免费中文字幕视频 | 国产你懂的在线 | 激情五月婷婷 | 一区二区精品在线 | 婷婷色综 | 亚洲精品国产电影 | 国产精品精品久久久 | 免费在线观看av网站 | 久久免费在线观看 | 久久福利| 美女久久一区 | 久久久久免费观看 | 成片视频免费观看 | 99久久日韩精品免费热麻豆美女 | 97国产精品亚洲精品 | av免费在线看网站 | 国产色婷婷 | 国产一区二区不卡视频 | 国产日韩精品一区二区三区 | 亚洲在线免费视频 | 亚洲视频免费在线观看 | 很黄很色很污的网站 | 综合激情网 | 福利网在线 | 2019免费中文字幕 | 99re6热在线精品视频 | 日本少妇视频 | 天天爽夜夜爽人人爽一区二区 | 天天操天天操天天操天天操天天操 | 成年人看片网站 | 免费在线国产精品 | 国产视频久久久 | 久久福利国产 | 欧美黄色软件 | 狠狠gao| 99re亚洲国产精品 | 日韩美精品视频 | 久久视频在线免费观看 | 看国产黄色片 | av免费观看高清 | 中文字幕观看视频 | 亚洲视频第一页 | 精品久久久久久久久久久久久久久久 | 国产在线观看地址 | 欧美一二三视频 | 黄污在线看 | 在线观看国产中文字幕 | 99国内精品 | 色婷婷在线观看视频 | 精品国产电影 | 亚洲日本中文字幕在线观看 | 国产一级二级av | 日韩激情影院 | 久久激情视频 | 特级毛片网 | 去看片| 91在线视频在线观看 | 久久99久久99精品 | 日韩字幕 | 欧美va电影 | 中文在线| 亚洲激情p | 日韩视频一区二区在线 | 日韩二区在线播放 | 亚洲精品影院在线观看 | 国产亚洲精品久 | 精品自拍网 | 国产一级黄色电影 | 亚州精品在线视频 | 黄网站色视频免费观看 | 国产麻豆精品在线观看 | 日韩av线观看 | 国产99re| 久久欧美精品 | 99精品视频在线播放免费 | 久久国产精品久久久 | 精品亚洲成a人在线观看 | 久色伊人 | 在线国产中文字幕 | 久久综合狠狠综合久久激情 | 精品久久久久国产免费第一页 | 狠狠色丁香婷婷综合最新地址 | 天堂av在线7 | 中文在线免费看视频 | 香蕉视频国产在线观看 | 97精品久久 | 国产精品中文久久久久久久 | 国产成人av一区二区三区在线观看 | 丝袜美女视频网站 | 日日干精品 | 99免费看片 | 五月开心婷婷网 | 精品资源在线 | 在线亚洲午夜片av大片 | 日韩a级黄色片 | 91看国产| 成人欧美一区二区三区在线观看 | 麻豆果冻剧传媒在线播放 | 中文字幕精品一区二区三区电影 | 久久久精品99 | 久草视频首页 | 九九视频精品免费 | 在线免费观看涩涩 | 久久极品| 在线a亚洲视频播放在线观看 | 伊人www22综合色 | 中文字幕在线免费观看 | 日日插日日干 | 日本中文不卡 | 婷婷日日 | www.色五月.com| 人人狠| 人人超碰97 | 天天玩天天操天天射 | 国产一级在线观看 | 久久久亚洲电影 | 久久99免费视频 | av在线一级 | 日韩偷拍精品 | 天天色天天 | 欧美人牲| 久久激情小说 | 玖玖在线精品 | 欧美一二区视频 | 中文字幕无吗 | 在线v片免费观看视频 | 成年人在线免费看片 | av导航福利 | 国精产品满18岁在线 | 久久久999精品视频 国产美女免费观看 | 国产麻豆精品久久一二三 | 四虎永久免费在线观看 | 97成人精品视频在线观看 | 丝袜制服天堂 | 日韩欧美在线观看一区 | 一区二区三区日韩在线 | 久久久久久久久免费视频 | 999久久| 亚洲综合丁香 | 国产精品一区二区美女视频免费看 | 国产在线观看黄 | 四虎视频 | 五月天亚洲婷婷 | 操操综合| 日韩精品免费一区二区在线观看 | 人人插人人舔 | 天天在线操 | 精品国产乱码久久久久久1区二区 | 精品亚洲免费视频 | a黄色影院 | 日韩欧美电影 | 国产精品第一 | 精品成人在线 | www操操操| 亚洲精品小视频在线观看 | 国产在线精品观看 | 亚洲我射av| www狠狠操| 久久精品亚洲一区二区三区观看模式 | 午夜的福利 | 中文字幕有码在线 | 亚洲黄色一级电影 | 亚洲欧美偷拍另类 | 国产一级黄色av | 日韩大片免费在线观看 | 国产精久久久久久久 | 国产一区欧美二区 | 精品91在线 | 日日夜夜噜噜噜 | 91丨九色丨蝌蚪丨对白 | 三级av在线免费观看 | 婷婷在线色 | 国产精品久久久久久婷婷天堂 | 国产极品尤物在线 | 国产 欧美 日韩 | 亚洲三级黄色 | 久久理论电影网 | 在线观看韩国av | 黄色福利网站 | 国产精品久久久久久69 | 亚洲男男gⅴgay双龙 | 国产麻豆视频 | 最近中文字幕mv免费高清在线 | 国内精品久久久久国产 | 欧美欧美 | 国产在线观看a | av理论电影 | 国产男男gay做爰 | 国产精品综合久久久久久 | 精品福利视频在线 | 日本aa在线| 国产亚州精品视频 | 久久激情片| 免费看在线看www777 | h动漫中文字幕 | 人人看人人草 | 国产精品女人网站 | 午夜美女福利直播 | 麻豆久久精品 | 高清av免费观看 | 久久黄色网页 | 欧美激情综合色综合啪啪五月 | 日日综合网| 二区三区毛片 | 亚洲丁香日韩 | 黄色福利网 | 久久国产精品免费 | av在线激情 | 日b视频在线观看网址 | 天天操天天摸天天射 | 国产一区二区视频在线播放 | 国产精品手机看片 | 久草在线视频网 | 国色天香av | 狠狠干天天操 | 色多视频在线观看 | 欧美精品久久久久久久久久 | 国产精品一区二区三区四 | 国产精品成人一区 | zzijzzij日本成熟少妇 | 久久国产精品一区二区三区四区 | 久久久国产日韩 | 日韩精品免费在线 | 婷婷丁香五 | 91精品免费视频 | 婷婷丁香久久五月婷婷 | 久久在线视频精品 | av资源免费观看 | 超碰97在线资源站 | 国产高清视频在线免费观看 | 在线黄色av电影 | 日韩免 | 五月婷婷在线观看视频 | 日韩欧美亚州 | 久久av一区二区三区亚洲 | 久久综合电影 | 极品久久久| 天天色草 | 一级成人免费视频 | 亚洲综合色视频 | 日韩二区三区在线 | 激情欧美在线观看 | 国产精品99久久久久久宅男 | 超碰在线人 | 久久久久久高潮国产精品视 | 久久综合久久综合九色 | 香蕉影院在线观看 | 成人福利在线播放 | 欧美黑人猛交 | 婷婷综合成人 | 久久精品99精品国产香蕉 | 久草综合在线观看 | 亚洲欧美在线综合 | 樱空桃av | 精品久久一 | 亚洲精品成人 | 国产免费作爱视频 | 日韩欧美一区二区三区免费观看 | 在线免费观看黄色 | 四虎国产精品成人免费影视 | 免费成人黄色片 | 久久久99精品免费观看乱色 | 久久草网站 | 亚洲亚洲精品在线观看 | 波多野结衣综合网 | 欧美一区二区在线免费看 | 日韩欧美在线观看一区二区三区 | 91九色国产 | 国产乱对白刺激视频不卡 | 中文字幕色综合网 | 国产欧美精品在线观看 | 国产精品 日本 | 在线观看精品一区 | av直接看| 国产玖玖在线 | 精品亚洲视频在线 | 久久九九免费视频 | 国产精品国产三级国产aⅴ无密码 | 色婷婷一| 欧美另类交人妖 | 亚洲综合激情网 | 欧美一级片免费观看 | 免费av观看 | 香蕉蜜桃视频 | 成年人免费在线播放 | 狠狠色狠狠色合久久伊人 | 狠狠色丁香久久婷婷综 | 久久综合九九 | 久久久久国产精品免费 | 狠狠色综合网站久久久久久久 | 亚洲精欧美一区二区精品 | 狠狠躁夜夜a产精品视频 | 日韩精品久久中文字幕 | 久久永久免费 | 久久九九精品 | a黄色| 日韩mv欧美mv国产精品 | 亚洲欧美激情精品一区二区 | 亚洲综合欧美激情 | 婷婷电影在线观看 | 久久国产精品免费一区二区三区 | 69av视频在线观看 | 女人18毛片a级毛片一区二区 | 久久午夜精品 | 欧美一级性生活 | 久久免费在线视频 | 日韩av视屏在线观看 | 五月婷婷深开心 | 91久久精品一区二区三区 | 999视频在线播放 | 中文字幕在线高清 | 黄色网址在线播放 | 在线观看色视频 | 国产97视频 | 日韩欧美精选 | 欧美一区二区三区在线观看 | 国产成人福利 | 91高清免费看 | 五月天久久综合 | 日韩黄色在线 | 一区二区三区视频 | 欧美福利在线播放 | 人人超碰人人 | 在线精品在线 | 国产免费xvideos视频入口 | 小草av在线播放 | 成人黄在线| 久久 精品一区 | 人人澡超碰碰97碰碰碰软件 | 国产高清在线免费观看 | 亚洲高清视频在线 | 国产亚洲精品成人av久久影院 | 国产精品久久久久久麻豆一区 | 日本成人免费在线观看 | 国产视频一区在线免费观看 | 日韩在线播放欧美字幕 | 亚洲涩涩网 | 蜜臀91丨九色丨蝌蚪老版 | 久久午夜精品 | 91精品视频免费在线观看 | 亚洲第一区在线观看 | 久久综合给合久久狠狠色 | 久久久久久毛片 | 中文字幕av电影下载 | 国产免码va在线观看免费 | 日日夜夜精品网站 | 久久99久久99免费视频 | 夜夜躁日日躁狠狠久久88av | 久久综合狠狠狠色97 | 毛片网在线观看 | av不卡免费在线观看 | 中文字幕刺激在线 | 午夜影视一区 | 日韩字幕| 国产成人免费观看 | 久久99久久99精品免观看软件 | 涩涩网站在线播放 | 美女福利视频网 | 人人草在线观看 | av成人在线网站 | 91高清免费 | 亚洲japanese制服美女 | 亚洲黄色app | 中文字幕在线免费观看视频 | 黄色免费电影网站 | 天天做综合网 | 欧美另类巨大 | 国产一级片在线播放 | 中文字幕在线不卡国产视频 | 久久人人爽人人爽人人片av软件 | 欧美久久久久久久久久久久 | 又黄又爽的免费高潮视频 | 亚洲91在线 | 欧美日韩伦理一区 | 色婷婷久久久综合中文字幕 | 亚洲成人午夜在线 | 四虎www com| www.天天干 | 在线免费观看视频一区 | 成人福利在线 | 久久久精品久久 | 亚洲精品视频免费看 | 久久综合九色九九 | 中文字幕免费高清 | 黄色91在线 | 欧美一区二区三区不卡 | 午夜国产福利在线 | 欧美日韩在线精品 | 免费观看91视频大全 | 色婷婷在线播放 | 久热色超碰 | 三三级黄色片之日韩 | 成人黄性视频 | 蜜臀久久99精品久久久无需会员 | 免费人做人爱www的视 | 999一区二区三区 | 蜜臀av网址 | 久久福利影视 | 日韩,中文字幕 | 人人爽人人看 | 精品亚洲男同gayvideo网站 | www日韩|