精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

無需復雜的數學描述,通過簡單代碼理解卷積模塊

開發 開發工具
計算機科學家 Paul-Louis Pröve 用 Keras 對瓶頸模塊、Inception 模塊、殘差模塊等進行了介紹和代碼說明,并在最后留下了 AmoebaNet Normal Cell 代碼實現的練習題。

比起晦澀復雜的數學或文本描述,也許代碼能幫助我們更好地理解各種卷積模塊。計算機科學家 Paul-Louis Pröve 用 Keras 對瓶頸模塊、Inception 模塊、殘差模塊等進行了介紹和代碼說明,并在***留下了 AmoebaNet Normal Cell 代碼實現的練習題。

我會盡力定期閱讀與機器學習和人工智能相關的論文。這是緊跟***進展的唯一方法。作為一位計算機科學家,當閱讀科研文本或公式的數學概念時,我常常碰壁。我發現直接用平實的代碼來理解要容易得多。所以在這篇文章中,我希望帶你了解一些精選的用 Keras 實現的***架構中的重要卷積模塊。

如果你在 GitHub 上尋找常用架構的實現,你會找到多得讓人吃驚的代碼。在實踐中,包含足夠多的注釋并用額外的參數來提升模型的能力是很好的做法,但這也會干擾我們對架構本質的理解。為了簡化和縮短代碼片段,我將會使用一些別名函數:

  1. def conv(x, f, k=3s=1p='same'd=1a='relu'): 
  2.  return Conv2D(ffilters=f, kkernel_size=k, sstrides=s,  
  3.  ppadding=p, ddilation_rate=d, aactivation=a)(x) 
  4. def dense(x, f, a='relu'): 
  5.  return Dense(f, aactivation=a)(x) 
  6. def maxpool(x, k=2s=2p='same'): 
  7.  return MaxPooling2D(pool_size=ksstrides=s, ppadding=p)(x) 
  8. def avgpool(x, k=2s=2p='same'): 
  9.  return AveragePooling2D(pool_size=ksstrides=s, ppadding=p)(x) 
  10. def gavgpool(x): 
  11.  return GlobalAveragePooling2D()(x) 
  12. def sepconv(x, f, k=3s=1p='same'd=1a='relu'): 
  13.  return SeparableConv2D(ffilters=f, kkernel_size=k, sstrides=s,  
  14.  ppadding=p, ddilation_rate=d, aactivation=a)(x) 

我發現,去掉這些模板代碼能有好得多的可讀性。當然,只有你理解我的單字母縮寫時才有效。那就開始吧。

瓶頸模塊

一個卷積層的參數數量取決于卷積核(kernel)的大小、輸入過濾器的數量以及輸出過濾器的數量。你的網絡越寬,則 3×3 卷積的成本就會越高。

  1. def bottleneck(x, f=32r=4): 
  2.  x = conv(x, f//r, k=1
  3.  x = conv(x, f//r, k=3
  4.  return conv(x, f, k=1

瓶頸模塊背后的思想是使用成本較低的 1×1 卷積以特定速率 r 來降低通道的數量,從而使后續的 3×3 卷積的參數更少。***,我們再使用另一個 1×1 卷積來拓寬網絡。

Inception 模塊

Inception 模塊引入的思想是:并行地使用不同操作然后融合結果。通過這種方式,網絡可以學習不同類型的過濾器。

  1. def naive_inception_module(x, f=32): 
  2.  a = conv(x, f, k=1
  3.  b = conv(x, f, k=3
  4.  c = conv(x, f, k=5
  5.  d = maxpool(x, k=3s=1
  6.  return concatenate([a, b, c, d]) 

這里我們使用一個***池化層融合了卷積核大小分別為 1、3、5 的卷積層。這段代碼是 Inception 模塊的最簡單初級的實現。在實踐中,還會將其與上述的瓶頸思想結合起來,代碼也就會稍微更復雜一些。

Inception 模塊

Inception 模塊

  1. def inception_module(x, f=32r=4): 
  2.  a = conv(x, f, k=1
  3.  b = conv(x, f//3, k=1
  4.  b = conv(b, f, k=3
  5.  c = conv(x, f//r, k=1
  6.  c = conv(c, f, k=5
  7.  d = maxpool(x, k=3s=1
  8.  d = conv(d, f, k=1
  9.  return concatenate([a, b, c, d]) 

殘差模塊

ResNet(殘差網絡)是微軟的研究者提出的一種架構,能讓神經網絡擁有他們想要的任何層數,同時還能提升模型的準確度。現在你可能已經很熟悉這一方法了,但在 ResNet 誕生前情況則很不一樣。

  1. def residual_block(x, f=32r=4): 
  2.  m = conv(x, f//r, k=1
  3.  m = conv(m, f//r, k=3
  4.  m = conv(m, f, k=1
  5.  return add([x, m]) 

殘差模塊的思想是在卷積模塊的輸出上添加初始激活。通過這種方式,網絡可以通過學習過程決定為輸出使用多少新卷積。注意,Inception 模塊是連接輸出,而殘差模塊是添加它們。

ResNeXt 模塊

從名字上也看得出,ResNeXt 與 ResNet 緊密相關。研究者為卷積模塊引入了基數(cardinality)項,以作為類似于寬度(通道數量)和深度(層數)的又一維度。

基數是指出現在模塊中的并行路徑的數量。這聽起來與 Inception 模塊(有 4 個并行的操作)類似。但是,不同于并行地使用不同類型的操作,當基數為 4 時,并行使用的 4 個操作是相同的。

如果它們做的事情一樣,為什么還要并行呢?這是個好問題。這個概念也被稱為分組卷積(grouped convolution),可追溯到最早的 AlexNet 論文。但是,那時候這種方法主要被用于將訓練過程劃分到多個 GPU 上,而 ResNeXt 則將它們用于提升參數效率。

  1. def resnext_block(x, f=32r=2c=4): 
  2.  l = [] 
  3.  for i in range(c): 
  4.  m = conv(x, f//(c*r), k=1
  5.  m = conv(m, f//(c*r), k=3
  6.  m = conv(m, f, k=1
  7.  l.append(m) 
  8.  m = add(l) 
  9.  return add([x, m]) 

其思想是將所有輸入通道劃分為不同的組別。卷積僅在它們指定的通道組內操作,不能跨組進行。研究發現,每個組都會學習到不同類型的特征,同時也能提升權重的效率。

假設有一個瓶頸模塊,首先使用 4 的壓縮率將 256 的輸入通道降低到 64,然后再將它們返回到 256 個通道作為輸出。如果我們想引入一個 32 的基數和 2 的壓縮率,那么我們就會有并行的 32 個 1×1 卷積層,其中每個卷積層有 4 個輸出通道(256 / (32*2))。之后,我們會使用 32 個帶有 4 個輸出通道的 3×3 卷積層,后面跟著 32 個帶有 256 個輸出通道的 1×1 層。***一步涉及到疊加這 32 個并行路徑,這能在添加初始輸入構建殘差連接之前提供一個輸出。

左圖:ResNet 模塊;右圖:有大致一樣的參數復雜度的 RexNeXt 模塊

左圖:ResNet 模塊;右圖:有大致一樣的參數復雜度的 RexNeXt 模塊

這方面有很多知識需要了解。上圖是其工作過程的圖示,也許你可以復制這段代碼,用 Keras 親自動手構建一個小網絡試試看。這么復雜的描述可以總結成如此簡單的 9 行代碼,是不是很神奇?

隨帶一提,如果基數等于通道的數量,那就會得到所謂的深度可分離卷積(depthwise separable convolution)。自從 Xception 架構出現后,這種方法得到了很多人的使用。

Dense 模塊

密集(dense)模塊是殘差模塊的一個極端版本,其中每個卷積層都會獲得該模塊中所有之前的卷積層的輸出。首先,我們將輸入激活添加到一個列表中,之后進入一個在模塊的深度上迭代的循環。每個卷積輸出也都連接到該列表,這樣后續的迭代會得到越來越多的輸入特征圖。這個方案會繼續,直到達到所需的深度。

  1. def dense_block(x, f=32d=5): 
  2.  l = x 
  3.  for i in range(d): 
  4.  x = conv(l, f) 
  5.  l = concatenate([l, x]) 
  6.  return l 

盡管要得到表現像 DenseNet 一樣優秀的架構需要耗費幾個月的研究時間,但其實際的基本構建模塊就這么簡單。很神奇吧。

Squeeze-and-Excitation 模塊

SENet 曾短暫地在 ImageNet 上達到過***表現。它基于 ResNeXt,并且重在建模網絡的通道方面的信息。在一個常規的卷積層中,每個通道的點積計算內的疊加操作都有同等的權重。

Squeeze-and-Excitation 模塊

Squeeze-and-Excitation 模塊

SENet 引入了一種非常簡單的模塊,可以添加到任何已有的架構中。它會創建一個小型神經網絡,該網絡能學習如何根據輸入情況為每個過濾器加權。可以看到,它本身并不是卷積模塊,但可以添加到任何卷積模塊上并有望提升其性能。我想將其添加到混合模塊中。

  1. def se_block(x, f, rate=16): 
  2.  m = gavgpool(x) 
  3.  m = dense(m, f // rate) 
  4.  m = dense(m, f, a='sigmoid'
  5.  return multiply([x, m]) 

每個通道都被壓縮成單個值,并被饋送給一個兩層神經網絡。根據通道的分布情況,該網絡會學習基于它們的重要性為這些通道加權。***,這些權重會與卷積激活相乘。

SENet 會有少量額外的計算開銷,但有改善任何卷積模型的潛力。在我看來,這種模塊得到的研究關注還不夠多。

NASNet Normal Cell

難點來了。之前介紹的都是一些簡單但有效的設計,現在我們進入設計神經網絡架構的算法世界。NASNet 的設計方式讓人稱奇,但實際的架構卻又相對復雜。但我們知道,它在 ImageNet 上的表現真的非常好。

NASNet 的提出者通過人工方式定義了一個包含不同類型的卷積和池化層的搜索空間,其中包含不同的可能設置。他們還定義了這些層可以并行或順序排布的方式以及添加或連接的方式。定義完成之后,他們基于一個循環神經網絡構建了一個強化學習(RL)算法,其獎勵是提出了在 CIFAR-10 數據集上表現優良的特定設計。

所得到的架構不僅在 CIFAR-10 上表現優良,而且還在 ImageNet 上取得了當前***。NASNet 由 Normal Cell 和 Reduction Cell 構成,它們在彼此之后重復。

  1. def normal_cell(x1, x2, f=32): 
  2.  a1 = sepconv(x1, f, k=3
  3.  a2 = sepconv(x1, f, k=5
  4.  a = add([a1, a2]) 
  5.  b1 = avgpool(x1, k=3s=1
  6.  b2 = avgpool(x1, k=3s=1
  7.  b = add([b1, b2]) 
  8.  c2 = avgpool(x2, k=3s=1
  9.  c = add([x1, c2]) 
  10.  d1 = sepconv(x2, f, k=5
  11.  d2 = sepconv(x1, f, k=3
  12.  d = add([d1, d2]) 
  13.  e2 = sepconv(x2, f, k=3
  14.  e = add([x2, e2]) 
  15.  return concatenate([a, b, c, d, e]) 

你可以這樣用 Keras 實現 Normal Cell。其中沒什么新東西,但這種特定的層的組合方式和設定效果就是很好。

倒置殘差模塊

現在你已經了解了瓶頸模塊和可分離卷積。讓我們將它們放到一起吧。如果進行一些測試,你會發現:由于可分離卷積已能降低參數數量,所以壓縮它們可能有損性能,而不會提升性能。

研究者想出了一個做法,做瓶頸殘差模塊相反的事。他們增多了使用低成本 1×1 卷積的通道的數量,因為后續的可分離卷積層能夠極大降低參數數量。它會在關閉這些通道之后再添加到初始激活。

  1. def inv_residual_block(x, f=32r=4): 
  2.  m = conv(x, f*r, k=1
  3.  m = sepconv(m, f, a='linear'
  4.  return add([m, x]) 

***還有一點:這個可分離卷積之后沒有激活函數。相反,它是直接被加到了輸入上。研究表明,在納入某個架構之后,這一模塊是非常有效的。

AmoebaNet Normal Cell

AmoebaNet 的 Normal Cell

AmoebaNet 的 Normal Cell

AmoebaNet 是當前在 ImageNet 上表現***的,甚至在廣義的圖像識別任務上可能也***。類似于 NASNet,它是由一個算法使用前述的同樣的搜索空間設計的。唯一的區別是他們沒使用強化學習算法,而是采用了一種常被稱為「進化(Evolution)」的通用算法。該算法工作方式的細節超出了本文范圍。最終,相比于 NASNet,研究者通過進化算法用更少的計算成本找到了一種更好的方案。它在 ImageNet 上達到了 97.87% 的 Top-5 準確度——單個架構所達到的新高度。

看看其代碼,該模塊沒有添加任何你還沒看過的新東西。你可以試試看根據上面的圖片實現這種新的 Normal Cell,從而測試一下自己究竟掌握了沒有。

總結

希望這篇文章能幫助你理解重要的卷積模塊,并幫助你認識到實現它們并沒有想象中那么困難。有關這些架構的細節請參考它們各自所屬的論文。你會認識到,一旦你理解了一篇論文的核心思想,理解其它部分就會容易得多。請注意,在實際的實現中往往還會添加批歸一化,而且激活函數的應用位置也各有不同。

原文鏈接:

https://towardsdatascience.com/history-of-convolutional-blocks-in-simple-code-96a7ddceac0c

【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2021-03-16 14:35:16

架構AI技術

2010-01-25 17:53:35

Android Lis

2017-05-03 08:52:13

卷積神經網絡神經網絡非線性激活函數

2017-05-05 08:57:06

卷積神經網絡機制

2022-03-22 11:33:13

AT模塊Harmony鴻蒙

2022-03-15 15:24:53

操作系統RTOSAT模塊

2022-08-07 23:52:10

Python模塊數據分析

2010-07-14 17:34:57

SMTP協議

2023-07-10 09:23:31

2020-05-17 16:15:49

RPCJava代碼

2010-06-17 17:53:28

2009-09-14 10:57:46

LINQ入門

2009-09-28 15:43:42

Hibernate O

2009-09-22 12:45:00

Hibernate性能

2009-09-09 15:28:43

Linq to obj

2009-09-15 16:26:36

Linq orderb

2009-09-18 16:00:07

LINQ架構

2009-09-23 10:58:32

Hibernate T

2009-09-22 11:16:27

Hibernate經驗

2009-09-27 13:00:56

Hibernate S
點贊
收藏

51CTO技術棧公眾號

欧美激情精品久久久久久变态| 欧美日韩精品在线播放| 成人自拍性视频| 青青草免费av| 日本欧美韩国国产| 91成人看片片| 四虎精品欧美一区二区免费| 亚洲av成人精品一区二区三区在线播放| 国产精品亚洲综合色区韩国| 色噜噜狠狠狠综合曰曰曰88av| 成人网在线视频| 国产av 一区二区三区| 欧美wwwwww| 欧美精品在线观看一区二区| 欧美 日韩 国产在线观看| av国产在线观看| 高清不卡一二三区| 国产精品日韩欧美| 国产在线一区视频| 色狮一区二区三区四区视频| 精品国产精品一区二区夜夜嗨| 亚洲精品怡红院| 丰满诱人av在线播放| 中日韩免费视频中文字幕| 成人一区二区三区四区| 黄色av一区二区| 亚洲黄色精品| 久久精品亚洲国产| 国产jjizz一区二区三区视频| 国产欧美视频在线| 欧美性一二三区| 久在线观看视频| av在线免费网址| 亚洲国产精品国自产拍av| 国产一区二区三区av在线| 国产精品女同一区二区| 久久综合亚州| 欧美亚洲另类制服自拍| 亚洲少妇一区二区三区| 97欧美成人| 欧美性xxxx极品hd欧美风情| www.国产亚洲| 黄色视屏免费在线观看| 国产蜜臀97一区二区三区| 国产日韩欧美一区二区三区四区 | 色琪琪一区二区三区亚洲区| 国产成人一区二区三区别| 国产在线观看a视频| 中文字幕av免费专区久久| 免费看成人午夜电影| 亚洲欧美日韩成人在线| 成人午夜私人影院| 成人午夜电影免费在线观看| av加勒比在线| 国产在线播精品第三| 国产欧美日韩丝袜精品一区| 波多野结衣一区二区三区在线 | 妞干网在线免费视频| 精品三级久久| 欧美日韩国产色视频| 青青草精品视频在线| 黑人极品ⅴideos精品欧美棵| 亚洲精品视频在线观看免费| 69精品丰满人妻无码视频a片| 亚洲区欧洲区| 亚洲一级不卡视频| 日韩欧美精品免费| 川上优av中文字幕一区二区| 亚洲成在人线在线播放| 亚洲中文字幕无码av永久| 国产传媒在线观看| 欧美视频在线免费看| 可以在线看的黄色网址| 电影亚洲精品噜噜在线观看| 欧美在线一二三四区| 亚洲成人天堂网| 国产精品久一| 精品国偷自产国产一区| 一本色道综合久久欧美日韩精品| 免费电影一区二区三区| 揄拍成人国产精品视频| 国产美女福利视频| 亚洲天堂男人| 欧亚精品在线观看| 伊人免费在线观看高清版| 黄一区二区三区| 国产富婆一区二区三区| 日本人妖在线| 中文字幕在线不卡国产视频| 中文精品无码中文字幕无码专区 | 欧美裸体在线版观看完整版| 日韩天堂在线视频| 国产福利久久久| 狂野欧美一区| 91精品在线播放| 人成网站在线观看| 国产视频不卡一区| 日本一级黄视频| 久久青青视频| 欧美一区二区日韩一区二区| 人妻av一区二区| 成人三级视频| 欧美大片大片在线播放| av毛片在线免费观看| 国产乱码精品一品二品| 另类小说综合网| 成人免费网站在线观看视频| 色综合天天综合网天天看片| 手机在线国产视频| 西野翔中文久久精品国产| 精品久久久91| 国产黄色免费观看| 国产另类ts人妖一区二区| 欧洲精品久久| 久久免费电影| 欧美精品成人一区二区三区四区| 人体私拍套图hdxxxx| 911久久香蕉国产线看观看| 欧美亚洲另类激情另类| 亚洲AV无码国产精品午夜字幕| 国产女同互慰高潮91漫画| www.射射射| 国产精品国产三级在线观看| 在线成人免费网站| 成人精品免费在线观看| 国产成a人亚洲| 亚洲欧美日韩另类精品一区二区三区| 91超碰免费在线| 日韩一区二区三| 992在线观看| 三级一区在线视频先锋 | 国内精品400部情侣激情| 国产乱码精品一区二区| 国产欧美一区二区三区鸳鸯浴| 欧美在线一区视频| 亚洲91网站| 久久在线精品视频| 中文字幕 日韩有码| 久久嫩草精品久久久精品一| 国产91沈先生在线播放| 亚洲大奶少妇| 久久综合88中文色鬼| 国产成人精品一区二区色戒| 久久新电视剧免费观看| 狠狠干 狠狠操| 高清精品xnxxcom| 欧美另类69精品久久久久9999| 怡红院成永久免费人全部视频| 久久久精品国产99久久精品芒果| av免费看网址| 精品视频在线你懂得| 欧美福利视频网站| 丁香花免费高清完整在线播放| 亚洲丝袜美腿综合| 亚洲一区二区福利视频| 国产精品国产一区| 成人激情视频在线播放| 九色porny在线| 制服视频三区第一页精品| 一级免费黄色录像| 国产自产v一区二区三区c| 一区二区三区一级片| 精品国产一区二区三区2021| 蜜臀久久99精品久久久久久宅男| 国产毛片毛片毛片毛片毛片| 一区二区三区四区不卡在线| 日本一级大毛片a一| 在线不卡视频| 久久99精品久久久久久久久久| 一区二区三区短视频| 精品一区电影国产| 中文字幕在线看人| 国产精品水嫩水嫩| 91 视频免费观看| 国产精品豆花视频| 精品国产乱码久久久久久丨区2区| 麻豆视频在线观看免费网站黄| 亚洲欧美日韩天堂| 中文字幕第315页| 亚洲欧美日韩一区| xfplay5566色资源网站| 久久亚洲风情| 一区二区三区久久网| 亚洲精品观看| 51精品在线观看| 91se在线| 精品黑人一区二区三区久久| 老熟妇一区二区三区| 中文字幕亚洲在| 色综合久久五月| 青青草国产精品亚洲专区无| 欧美少妇一级片| 欧美日韩导航| 国产日韩欧美在线| av资源中文在线| 亚洲欧美在线一区| 99久久亚洲精品日本无码| 亚洲成人免费影院| 丁香激情五月少妇| 成人丝袜18视频在线观看| 国产精品亚洲a| 午夜视频精品| 日本视频一区二区在线观看| 日韩欧美一级| 国产精品r级在线| 色yeye免费人成网站在线观看| 精品网站999www| av无码精品一区二区三区宅噜噜| 狠狠色香婷婷久久亚洲精品| 欧美手机在线观看| 久久影院午夜片一区| 亚洲五月激情网| 石原莉奈在线亚洲三区| avav在线播放| 久久久久免费av| 欧美日韩精品不卡| 136国产福利精品导航网址应用| 国产va免费精品高清在线| 高h视频在线观看| 亚洲天堂色网站| 日韩在线一区二区三区四区| 欧美一区二区三区性视频| 国产免费一区二区三区四区五区| 亚洲综合网站在线观看| www中文在线| 26uuu久久天堂性欧美| 国产欧美视频一区| 国内久久婷婷综合| 成人精品视频一区二区| 亚洲精品影视| 蜜桃视频一区二区在线观看| 97视频精品| 视频一区国产精品| 亚洲春色h网| 国精产品99永久一区一区| 亚洲亚洲一区二区三区| 91久久精品视频| 欧美aaaaaaaa| 国产免费一区二区三区在线能观看| 一级毛片久久久| 欧美做受高潮电影o| 麻豆视频在线看| 91超碰caoporn97人人| 国产网红在线观看| 欧美日本精品在线| 伊人在我在线看导航| 久久久成人精品视频| 男女啪啪在线观看| 日韩日本欧美亚洲| 欧美a在线看| 日韩在线播放av| 理论片午午伦夜理片在线播放| xxxxx91麻豆| 国产cdts系列另类在线观看| 日韩在线高清视频| 日本美女在线中文版| 欧美性三三影院| 69视频免费看| 欧美中文字幕一区二区三区亚洲 | 亚洲精选国产| 僵尸世界大战2 在线播放| 亚洲激情欧美| 欧美a在线视频| 亚洲男人影院| av无码精品一区二区三区| 日韩高清一级片| 国产精品v日韩精品v在线观看| 另类欧美日韩国产在线| 亚洲理论中文字幕| 国产成人综合亚洲网站| 欧美丰满熟妇bbb久久久| 不卡视频一二三四| 中文字幕人妻一区二区| 国产精品欧美久久久久无广告| 小泽玛利亚一区二区免费| 亚洲综合久久av| 五月激情六月丁香| 欧美日韩一区二区在线视频| а√中文在线资源库| 日韩av中文字幕在线| 国产片在线观看| 久久夜色精品国产欧美乱| 丰乳肥臀在线| 国产精品一区二区三区毛片淫片 | h视频在线免费观看| 欧美黑人一区二区三区| 欧美性猛交xxx高清大费中文| 国产精品午夜视频| 中文在线免费一区三区| 欧美激情国产日韩| 99久久九九| 日本a视频在线观看| 日韩高清在线一区| 亚洲熟女乱综合一区二区| 99久久久无码国产精品| 99自拍偷拍视频| 亚洲电影中文字幕在线观看| 中文字幕精品视频在线观看| 欧美一级在线视频| 蜜芽tv福利在线视频| 久久99久久亚洲国产| 人人视频精品| 99视频在线| 精品国产91乱码一区二区三区四区 | 91九色丨porny丨国产jk| 日本人妖一区二区| 污片免费在线观看| 中文字幕一区二区不卡| 日本一级一片免费视频| 这里只有精品99re| 撸视在线观看免费视频| 欧美国产在线视频| 农村妇女一区二区| 你懂的网址一区二区三区| 欧美精品国产一区二区| 欧美伦理片在线观看| thepron国产精品| 天天色影综合网| 在线观看日韩av先锋影音电影院| 成人免费视频国产免费麻豆| 精品国内产的精品视频在线观看| gay欧美网站| 丁香五月网久久综合| 亚洲91视频| 亚洲xxx在线观看| 久久青草国产手机看片福利盒子 | 欧美极品一区二区三区| 天天爽夜夜爽一区二区三区 | 91免费在线看片| 色综合咪咪久久| 四虎永久在线精品免费网址| 欧美成人高清视频| 国产高清精品二区| 伊人久久大香线蕉成人综合网| 久久人人超碰| 双性尿奴穿贞c带憋尿| 激情成人中文字幕| 亚洲国产精品二区| 欧美日本中文字幕| 日日夜夜精品视频| 精品一区二区成人免费视频| 国内精品伊人久久久久av影院 | 亚洲综合在线网站| 91免费视频网址| 一级黄色免费网站| 日韩精品在线免费观看| 美女视频在线免费| 蜜桃av色综合| 玖玖精品视频| 亚洲精品成人av久久| 欧美午夜精品久久久| aaa日本高清在线播放免费观看| 国产精品久久999| 日本午夜一区| 天天影视色综合| 亚洲视频 欧洲视频| a天堂在线观看视频| 久热精品视频在线免费观看 | 国产精品伊人日日| 国产视频一区欧美| 国产成人无码精品久久二区三| 亚洲国产视频一区二区| 国精产品一品二品国精品69xx| 91精品国产91久久久| 国产精品22p| 免费在线观看亚洲视频| 久久奇米777| 一级黄色片在线播放| 久久精品国产一区| 97品白浆高清久久久久久| 久久亚洲中文字幕无码| 国产网站一区二区三区| 91成人一区二区三区| 欧美老女人xx| 国产精品久久久久av蜜臀| a√天堂在线观看| 国产精品欧美经典| 亚洲黄色a级片| 国产成人综合亚洲| 国产精品国产一区| 精品人妻一区二区免费| 一本色道亚洲精品aⅴ| 欧美边添边摸边做边爱免费| 成人免费在线看片| 久久一二三四| 乱h高h女3p含苞待放| 日韩精品免费视频| 日日夜夜一区| 国产主播自拍av| 国产精品乱人伦一区二区| 性网爆门事件集合av| 日韩av电影国产| 欧美在线日韩| 丰满圆润老女人hd| 91精品久久久久久蜜臀| 涩涩视频在线| 懂色av一区二区三区四区五区| www.av亚洲| 99热这里只有精品9| 欧洲精品久久久|