精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久久久久亚洲| 日韩欧美精品在线视频| 亚洲精品9999| 国产精品久久久久久久免费看 | 久久免费看毛片| av av片在线看| 性欧美暴力猛交另类hd| 久久精品中文字幕电影| 亚洲综合自拍网| 亚洲欧洲二区| 色综合天天视频在线观看 | 天堂久久精品忘忧草| 成人av在线播放| 色狠狠色狠狠综合| 日本香蕉视频在线观看| 第九色区av在线| 国产xxx精品视频大全| 国产精品久久久久久久久久新婚| 中文字幕手机在线观看| 国产一区网站| 亚洲国产天堂久久综合网| 中国黄色片一级| 日本成人伦理电影| 精品久久久久国产| www.激情网| 亚洲午夜在线观看| 中文字幕永久免费视频| 一区二区日韩免费看| 毛片精品免费在线观看| 在线观看免费黄色网址| 深夜福利久久| 精品视频在线播放| www.四虎在线| 精品三级国产| 91精品国产黑色紧身裤美女| 爱情岛论坛成人| 综合毛片免费视频| 精品国产乱码久久久久久天美 | 91传媒在线免费观看| 国产女优在线播放| 日韩高清一级片| 欧美在线性视频| 久久精品这里有| 国产精品videosex极品| 久久综合九色九九| 欧美日韩色视频| 欧美黄色录像片| 日韩在线资源网| 日韩在线观看免费全| 色18美女社区| 亚洲人体在线| 7777精品伊人久久久大香线蕉完整版 | 美女视频网站黄色亚洲| 国产精品激情自拍| 最近中文字幕在线视频| 日韩黄色免费网站| 国产精品三级久久久久久电影| 尤物视频免费观看| 免费欧美日韩国产三级电影| 国产精品国语对白| 伊人亚洲综合网| 久久精品国产免费| 亚洲自拍偷拍区| 亚洲伦理在线观看| 懂色av中文字幕一区二区三区| 97影院在线午夜| 黄色片一区二区三区| 成人丝袜视频网| 精品综合在线| 国产永久免费高清在线观看| 国产精品视频一区二区三区不卡| 一区二区成人国产精品| 中文字幕在线观看播放| 亚洲午夜三级在线| 日韩中文字幕三区| 素人啪啪色综合| 91麻豆精品久久久久蜜臀| 国产又粗又猛又爽又黄| 黄色网一区二区| 亚洲天堂开心观看| 久久嫩草捆绑紧缚| 亚洲欧洲一区| 国产精品女主播视频| 99精品视频免费看| 91免费视频网| 一区二区不卡在线| 成人一级福利| 色综合天天综合狠狠| 不卡中文字幕在线观看| 精品久久ai电影| 尤物精品国产第一福利三区| 欧美在线视频第一页| 国产午夜精品一区二区三区欧美| 国产精品亚洲欧美导航| 俄罗斯嫩小性bbwbbw| 国产欧美日韩精品a在线观看| 激情图片qvod| 中文字幕在线高清| 91精品一区二区三区久久久久久| 亚洲婷婷在线观看| 久久影院一区| 欧美亚洲国产日本| 99精品视频在线播放免费| 久久久精品综合| 欧美视频在线第一页| 欧美日韩尤物久久| 亚洲国产精品久久精品怡红院| 精品少妇一区二区三区密爱| 国产日韩一区| 亚洲最大成人网色| av中文字幕一区二区三区| 性做久久久久久免费观看欧美| 日韩一级免费片| 日韩系列在线| 欧美激情videoshd| 国产美女主播在线观看| 久久久99精品久久| 国产手机免费视频| 视频91a欧美| 亚洲视频第一页| 亚洲欧美在线观看视频| 国产盗摄一区二区三区| 亚洲国产一区二区在线| 亚洲成人人体| 日韩禁在线播放| 国产精品111| 国产高清不卡一区| 黄频视频在线观看| 成人国产精品| 一本色道久久综合亚洲精品小说 | 国产精品久久亚洲不卡| 日韩激情av在线播放| 国产一级视频在线| 国产高清成人在线| 国产一区二区三区在线免费| 91麻豆精品国产综合久久久 | 中文字幕精品一区日韩| 四虎4545www精品视频| 亚洲免费电影一区| 永久免费看片在线播放| www.欧美色图| 日日摸日日碰夜夜爽无码| 操欧美女人视频| 欧美精品电影在线| 欧美熟妇交换久久久久久分类| 亚洲精品视频在线看| a级大片免费看| 综合激情网站| 97在线资源站| 国产粉嫩在线观看| 亚洲免费一在线| 男人天堂视频网| 国产日韩欧美亚洲| 欧美女同在线观看| 99久久九九| 91在线观看免费观看| 在线午夜影院| 亚洲白虎美女被爆操| 日本一二三区视频| 久久免费偷拍视频| av在线无限看| 图片小说视频色综合| 91精品国产综合久久久久久丝袜| av毛片在线看| 欧美精品一区男女天堂| 国产一级片毛片| 国产精品欧美综合在线| 91欧美一区二区三区| 欧美激情性爽国产精品17p| 国产高清精品一区二区三区| 免费在线小视频| 国产午夜精品免费一区二区三区 | 精品一区二区三区免费毛片爱| 亚洲美女自拍偷拍| 风间由美性色一区二区三区四区 | 中文字幕激情小说| 国产精品美女www爽爽爽| 潘金莲一级淫片aaaaa| 9色国产精品| 亚洲精品久久区二区三区蜜桃臀| 日本久久久久| 97在线视频精品| 福利在线视频导航| 日韩视频在线一区二区| 中文字幕一区在线播放| 综合网在线视频| 182在线视频| 久久超级碰视频| 国产九色porny| 成人aaaa| 国产精品香蕉视屏| 精品九九久久| 97人洗澡人人免费公开视频碰碰碰| 国产黄在线看| 欧美精品一区二区三区久久久| 国产男人搡女人免费视频| 一级特黄大欧美久久久| 成人在线观看免费高清| 成人涩涩免费视频| www.久久av.com| 午夜在线一区| 国产爆乳无码一区二区麻豆| 精品盗摄女厕tp美女嘘嘘| 肥熟一91porny丨九色丨| 欧美日韩激情电影| 国产+人+亚洲| 超碰在线观看免费版| 亚洲欧美日韩图片| 俄罗斯嫩小性bbwbbw| 337p亚洲精品色噜噜狠狠| 久久久久女人精品毛片九一| 一区二区三区在线视频免费观看| 国产精品久久久久久久av| www.性欧美| 三级黄色片播放| 理论片日本一区| 麻豆传传媒久久久爱| 日韩网站在线| 美女黄色免费看| 亚洲字幕久久| 亚洲欧美精品| 狠狠综合久久av一区二区蜜桃| 国产一区二区中文字幕免费看| 精品久久亚洲| 91九色国产视频| 日韩电影免费观看高清完整版在线观看| 8090成年在线看片午夜| 日本三级韩国三级欧美三级| 日韩视频永久免费观看| 自拍视频在线免费观看| 国产一区二区三区在线观看视频| 天天影院图片亚洲| 亚洲精品videossex少妇| 亚洲精品一区二区三区蜜桃 | 国产精品入口尤物| 欧美日韩尤物久久| 国产精品自产拍在线观| 国产成人免费| 国产精品专区一| 日韩美香港a一级毛片| 国产美女91呻吟求| 日本免费成人| 91大片在线观看| 超碰一区二区三区| 精品综合久久| 极品美女一区二区三区| 日本中文不卡| 久久国产综合| 亚洲一区 在线播放| 一级欧洲+日本+国产 | 久久精品女人| 免费观看成人在线视频| 日本不卡一二三区黄网| 中文字幕av不卡在线| 激情六月婷婷综合| 男人操女人下面视频| 成人网页在线观看| 蜜桃传媒一区二区亚洲av| 国产亚洲精品aa| 福利视频第一页| 亚洲精品视频免费看| 国产第一页在线播放| 欧美日韩另类字幕中文| 男人的天堂av网站| 制服丝袜一区二区三区| 成人无码一区二区三区| 精品小视频在线| 日本高清中文字幕在线| 欧美黑人巨大精品一区二区| 激情视频网站在线播放色| 国产成人精品免高潮在线观看| 欧美国产日韩电影| 91传媒免费看| 少妇精品久久久一区二区| 尤物国产精品| 亚洲日本欧美| 日本超碰在线观看| 成熟亚洲日本毛茸茸凸凹| 永久免费看mv网站入口78| 国产精品天干天干在观线| 国产性一乱一性一伧一色| 日韩欧美aaa| 国产日韩欧美视频在线观看| 亚洲成人av片在线观看| av电影在线网| 久久久久久成人| 日本一道高清亚洲日美韩| 51成人做爰www免费看网站| 亚洲va久久久噜噜噜久久| 永久久久久久| 亚洲自啪免费| 欧美国产日韩在线视频 | av资源在线免费观看| 亚洲专区一二三| 无码人妻丰满熟妇奶水区码| 欧美一区二区在线不卡| 你懂的好爽在线观看| 伦理中文字幕亚洲| 欧美色网在线| 国产伦理一区二区三区| 久久精品高清| 国产真实乱子伦| 国产91精品免费| 天堂网av2018| 在线一区二区视频| 深爱激情五月婷婷| 久久综合色88| 成人国产一区| 欧美日本韩国国产| 在线国产精品一区| 亚洲一二区在线观看| 国产三区在线成人av| 97人人澡人人爽人人模亚洲| 7777精品久久久大香线蕉| 国产视频网站在线| 26uuu久久噜噜噜噜| 99精品中文字幕在线不卡| 亚洲视频精品一区| 日韩二区三区四区| theav精尽人亡av| 亚洲成va人在线观看| 国产成人三级在线播放| 色噜噜久久综合伊人一本| 国产免费不卡| 美女被啪啪一区二区| 亚洲看片一区| 中文字幕在线视频播放| 亚洲综合清纯丝袜自拍| 国产视频在线一区| 久久伊人精品视频| 成年永久一区二区三区免费视频 | 五月婷婷在线视频| 国产精品成人免费视频| 欧美男gay| 成人小视频在线看| 久久久蜜桃精品| 一级黄色大片视频| 国产一区二区三区在线观看视频| 超碰超碰人人人人精品| 蜜桃精品久久久久久久免费影院| 国产亚洲毛片| 亚洲国产无码精品| 色8久久人人97超碰香蕉987| 免费黄色在线视频网站| 国产精品av在线| 欧美综合久久| 久久人人爽av| 亚洲免费观看高清完整版在线 | 国产成人一二三区| 国产盗摄视频一区二区三区| 久久这里只有精品免费| 亚洲国产成人精品电影| 美女扒开腿让男人桶爽久久软| 精品日本一区二区| 视频一区视频二区中文| 欧美日韩精品欧美日韩精品一 | 欧美r级在线观看| xxxx另类黑人| 久久久久国产精品视频| 日韩影院免费视频| 911国产在线| 欧美xxxxxxxxx| 台湾佬中文娱乐网欧美电影| 青青成人在线| 国内精品免费**视频| 久久久精品视频在线| 日韩激情av在线免费观看| 素人一区二区三区| 韩国无码av片在线观看网站| 99国产精品久久久久| 高潮无码精品色欲av午夜福利| 久久资源免费视频| 老牛精品亚洲成av人片| 人妻丰满熟妇av无码区app| 国产精品另类一区| 黄色av免费观看| 国产精品video| 女同性一区二区三区人了人一| 国产亚洲色婷婷久久99精品91| 在线观看一区日韩| 日本成人不卡| 欧美日本韩国在线| 国产电影一区二区三区| 91porny九色| 欧美精品成人在线| av亚洲在线观看| 五月天丁香社区| 欧美日韩在线三级| 欧美办公室脚交xxxx| 中文字幕日韩一区二区三区不卡| 成人国产精品免费观看视频| 成人午夜精品视频| 国内外成人免费激情在线视频网站| jiujiure精品视频播放| 乱码一区二区三区| 欧美色涩在线第一页| 国产免费拔擦拔擦8x在线播放 | 在线观看午夜av| 天堂av一区二区| 99精品久久只有精品|