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

利用Python實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的可視化

開發(fā) 后端 深度學(xué)習(xí)
本文簡(jiǎn)單說明了CNN模型可視化的重要性,以及介紹了一些可視化CNN網(wǎng)絡(luò)模型的方法,希望對(duì)讀者有所幫助,使其能夠在后續(xù)深度學(xué)習(xí)應(yīng)用中構(gòu)建更好的模型。

對(duì)于深度學(xué)習(xí)這種端到端模型來說,如何說明和理解其中的訓(xùn)練過程是大多數(shù)研究者關(guān)注熱點(diǎn)之一,這個(gè)問題對(duì)于那種高風(fēng)險(xiǎn)行業(yè)顯得尤為重視,比如醫(yī)療、軍事等。在深度學(xué)習(xí)中,這個(gè)問題被稱作“黑匣子(Black Box)”。如果不能解釋模型的工作過程,我們?cè)趺茨軌蚓洼p易相信模型的輸出結(jié)果呢?

以深度學(xué)習(xí)模型檢測(cè)癌癥腫瘤為例,該模型告訴你它能夠檢測(cè)出癌癥的準(zhǔn)確率高達(dá)99%,但它并沒有告訴你它是如何工作并給出判斷結(jié)果的。那么該模型是在核磁共振掃描片子中發(fā)現(xiàn)了重要線索嗎?或者僅僅是將掃描結(jié)果上的污點(diǎn)錯(cuò)誤地認(rèn)為是腫瘤呢?模型的輸出結(jié)果關(guān)系到病人的生死問題及治療方案,醫(yī)生是不能承擔(dān)起這種錯(cuò)誤的。

[[224830]]

在本文中,將探討如何可視化卷積神經(jīng)網(wǎng)絡(luò)(CNN),該網(wǎng)絡(luò)在計(jì)算機(jī)視覺中使用最為廣泛。首先了解CNN模型可視化的重要性,其次介紹可視化的幾種方法,同時(shí)以一個(gè)用例幫助讀者更好地理解模型可視化這一概念。

1.卷積神經(jīng)網(wǎng)絡(luò)模型可視化的重要性

正如上文中介紹的癌癥腫瘤診斷案例所看到的,研究人員需要對(duì)所設(shè)計(jì)模型的工作原理及其功能掌握清楚,這點(diǎn)至關(guān)重要。一般而言,一名深度學(xué)習(xí)研究者應(yīng)該記住以下幾點(diǎn):

1. 理解模型是如何工作的

2. 調(diào)整模型的參數(shù)

3. 找出模型失敗的原因

4. 向消費(fèi)者/終端用戶或業(yè)務(wù)主管解釋模型做出的決定

現(xiàn)在讓我們看一個(gè)例子,可視化一個(gè)神經(jīng)網(wǎng)絡(luò)模型有助于理解其工作原理和提升模型性能。

曾幾何時(shí),美國(guó)陸軍希望使用神經(jīng)網(wǎng)絡(luò)自動(dòng)檢測(cè)偽裝的敵方坦克。研究人員使用50張迷彩坦克照片及50張樹林照片來訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)。使用有監(jiān)督學(xué)習(xí)方法來訓(xùn)練模型,當(dāng)研究人員訓(xùn)練好網(wǎng)絡(luò)的參數(shù)后,網(wǎng)絡(luò)模型能夠?qū)τ?xùn)練集做出正確的判斷——50張迷彩坦克全都輸出“Yes”,50張樹林照片全都輸出“No”。但是這并不能保證模型對(duì)于新的樣本也能正確分類。聰明的是,研究人員最初拍攝了200張照片,其中包含了100張迷彩坦克照片、100張樹木照片。從中分別選取50張照片合計(jì)100張照片作為訓(xùn)練集,剩余的100張照片作為測(cè)試集。結(jié)果發(fā)現(xiàn),模型對(duì)測(cè)試集也能正確分類。因此,研究人員覺得模型沒有問題了,就將最終成果交付給軍方。原以為軍方會(huì)很滿意這份研究成果,結(jié)果軍方做出的反饋是他們進(jìn)行測(cè)試后發(fā)現(xiàn)效果并不好。

[[224831]]

研究人員感覺此事有點(diǎn)蹊蹺,為什么之前測(cè)試時(shí)百分百準(zhǔn)確,而軍方測(cè)試的時(shí)候又掉鏈子了呢?最后終于發(fā)現(xiàn),原來是研究者的數(shù)據(jù)集出現(xiàn)了問題,采集迷彩坦克的時(shí)候是陰天,而采集樹林的時(shí)候是晴天,神經(jīng)網(wǎng)絡(luò)最終學(xué)會(huì)的是區(qū)分晴天和陰天,而不是區(qū)分迷彩坦克和樹林。這真是令人哭笑不得啊,那造成這個(gè)問題的主要原因還是沒有弄清楚模型的具體的工作原理及其功能。

2.可視化CNN模型的方法

根據(jù)其內(nèi)部的工作原理,大體上可以將CNN可視化方法分為以下三類:

1.初步方法:一種顯示訓(xùn)練模型整體結(jié)構(gòu)的簡(jiǎn)單方法

2.基于激活的方法:對(duì)單個(gè)或一組神經(jīng)元的激活狀態(tài)進(jìn)行破譯以了解其工作過程

3.基于梯度的方法:在訓(xùn)練過程中操作前向傳播和后向傳播形成的梯度

下面將具體介紹以上三種方法,所舉例子是使用Keras深度學(xué)習(xí)庫(kù)實(shí)現(xiàn),另外本文使用的數(shù)據(jù)集是由“識(shí)別數(shù)字”競(jìng)賽提供。因此,讀者想復(fù)現(xiàn)文中案例時(shí),請(qǐng)確保安裝好Kears以及執(zhí)行了這些步驟。

1初步方法

1.1 繪制模型結(jié)構(gòu)圖

研究者能做的最簡(jiǎn)單的事情就是繪制出模型結(jié)構(gòu)圖,此外還可以標(biāo)注神經(jīng)網(wǎng)絡(luò)中每層的形狀及參數(shù)。在keras中,可以使用如下命令完成模型結(jié)構(gòu)圖的繪制: 

  1. model.summary()  
  2. _________________________________________________________________  
  3. Layer (type)                 Output Shape              Param #     
  4. =================================================================  
  5. conv2d_1 (Conv2D)            (None, 26, 26, 32)        320        
  6. _________________________________________________________________  
  7. conv2d_2 (Conv2D)            (None, 24, 24, 64)        18496       
  8. _________________________________________________________________ 
  9. max_pooling2d_1 (MaxPooling2 (None, 12, 12, 64)        0     
  10. _________________________________________________________________  
  11. dropout_1 (Dropout)          (None, 12, 12, 64)        0        
  12. _________________________________________________________________  
  13. flatten_1 (Flatten)          (None, 9216)              0        
  14. _________________________________________________________________  
  15. dense_1 (Dense)              (None, 128)               1179776     
  16. _________________________________________________________________  
  17. dropout_2 (Dropout)          (None, 128)               0          
  18. _________________________________________________________________  
  19. preds (Dense)                (None, 10)                1290        
  20. =================================================================  
  21. Total params: 1,199,882  
  22. Trainable params: 1,199,882  
  23. Non-trainable params: 0 

還可以用一個(gè)更富有創(chuàng)造力和表現(xiàn)力的方式呈現(xiàn)模型結(jié)構(gòu)框圖,可以使用keras.utils.vis_utils函數(shù)完成模型體系結(jié)構(gòu)圖的繪制。

1.2 可視化濾波器

另一種方法是繪制訓(xùn)練模型的過濾器,這樣就可以了解這些過濾器的表現(xiàn)形式。例如,第一層的第一個(gè)過濾器看起來像: 

  1. top_layer = model.layers[0]  
  2. plt.imshow(top_layer.get_weights()[0][:, :, :, 0].squeeze(), cmap='gray'

一般來說,神經(jīng)網(wǎng)絡(luò)的底層主要是作為邊緣檢測(cè)器,當(dāng)層數(shù)變深時(shí),過濾器能夠捕捉更加抽象的概念,比如人臉等。 

2.激活方法

2.1 最大化激活

為了理解神經(jīng)網(wǎng)絡(luò)的工作過程,可以在輸入圖像上應(yīng)用過濾器,然后繪制其卷積后的輸出,這使得我們能夠理解一個(gè)過濾器其特定的激活模式是什么。比如,下圖是一個(gè)人臉過濾器,當(dāng)輸入圖像是人臉圖像時(shí)候,它就會(huì)被激活。 

  1. from vis.visualization import visualize_activation  
  2. from vis.utils import utils  
  3. from keras import activations  
  4. from matplotlib import pyplot as plt  
  5. %matplotlib inline  
  6. plt.rcParams['figure.figsize'] = (18, 6)  
  7. # Utility to search for layer index by name 
  8. # Alternatively we can specify this as -1 since it corresponds to the last layer.  
  9. layer_idx = utils.find_layer_idx(model, 'preds' 
  10. # Swap softmax with linear  
  11. model.layers[layer_idx].activation = activations.linear  
  12. model = utils.apply_modifications(model)  
  13. # This is the output node we want to maximize.filter_idx = 0  
  14. img = visualize_activation(model, layer_idx, filter_indices=filter_idx)  
  15. plt.imshow(img[..., 0]) 

同理,可以將這個(gè)想法應(yīng)用于所有的類別,并檢查它們的模式會(huì)是什么樣子。 

  1. for output_idx in np.arange(10):  
  2.   # Lets turn off verbose output this time to avoid clutter and just see the output 
  3.   img = visualize_activation(model, layer_idx, filter_indices=output_idx, input_range=(0., 1.))  
  4.   plt.figure()  
  5.   plt.title('Networks perception of {}'.format(output_idx))  
  6.   plt.imshow(img[..., 0]) 

2.2 圖像遮擋

在圖像分類問題中,可能會(huì)遇到目標(biāo)物體被遮擋,有時(shí)候只有物體的一小部分可見的情況。基于圖像遮擋的方法是通過一個(gè)灰色正方形系統(tǒng)地輸入圖像的不同部分并監(jiān)視分類器的輸出。這些例子清楚地表明模型在場(chǎng)景中定位對(duì)象時(shí),若對(duì)象被遮擋,其分類正確的概率顯著降低。

為了理解這一概念,可以從數(shù)據(jù)集中隨機(jī)抽取圖像,并嘗試?yán)L制該圖的熱圖(heatmap)。這使得我們直觀地了解圖像的哪些部分對(duì)于該模型而言的重要性,以便對(duì)實(shí)際類別進(jìn)行明確的區(qū)分。 

  1. def iter_occlusion(image, size=8):  
  2.    # taken from https://www.kaggle.com/blargl/simple-occlusion-and-saliency-maps  
  3.  
  4.   occlusion = np.full((size * 5, size * 5, 1), [0.5], np.float32)  
  5.   occlusion_center = np.full((sizesize, 1), [0.5], np.float32)  
  6.   occlusion_padding = size * 2  
  7.  
  8.   # print('padding...' 
  9.   image_padded = np.pad(image, ( \   (occlusion_padding, occlusion_padding), (occlusion_padding, occlusion_padding), (0, 0) \   ), 'constant', constant_values = 0.0)  
  10.  
  11.   for y in range(occlusion_padding, image.shape[0] + occlusion_padding, size):   
  12.       for x in range(occlusion_padding, image.shape[1] + occlusion_padding, size):  
  13.           tmp = image_padded.copy()   
  14.  
  15.           tmp[y - occlusion_padding:y + occlusion_center.shape[0] + occlusion_padding, \  
  16.             x - occlusion_padding:x + occlusion_center.shape[1] + occlusion_padding] \             = occlusion  
  17.  
  18.           tmp[y:y + occlusion_center.shape[0], x:x + occlusion_center.shape[1]] = occlusion_center           yield x - occlusion_padding, y - occlusion_padding, \  
  19.             tmp[occlusion_padding:tmp.shape[0] - occlusion_padding, occlusion_padding:tmp.shape[1] - occlusion_padding]i = 23 # for exampledata = val_x[i]correct_class = np.argmax(val_y[i])  
  20.  
  21. # input tensor for model.predictinp = data.reshape(1, 28, 28, 1)# image data for matplotlib's imshowimg = data.reshape(28, 28)  
  22. # occlusionimg_size = img.shape[0]   
  23.  
  24. occlusion_size = 4print('occluding...')heatmap = np.zeros((img_size, img_size), np.float32)class_pixels = np.zeros((img_size, img_size), np.int16)  
  25. from collections import defaultdict  
  26. counters = defaultdict(int)for n, (x, y, img_float) in enumerate(iter_occlusion(data, size=occlusion_size)):   
  27.    X = img_float.reshape(1, 28, 28, 1)  
  28.    out = model.predict(X)  
  29.    #print('#{}: {} @ {} (correct class: {})'.format(n, np.argmax(out), np.amax(out), out[0][correct_class]))  
  30.    #print('x {} - {} | y {} - {}'.format(x, x + occlusion_size, y, y + occlusion_size))   
  31.    heatmap[y:y + occlusion_size, x:x + occlusion_size] = out[0][correct_class]  
  32.    class_pixels[y:y + occlusion_size, x:x + occlusion_size] = np.argmax(out 
  33.    counters[np.argmax(out)] += 1 

 

3. 基于梯度的方法

3.1 顯著圖

正如之前的坦克案例中看到的那樣,怎么才能知道模型側(cè)重于哪部分的預(yù)測(cè)呢?為此,可以使用顯著圖解決這個(gè)問題。顯著圖首先在這篇文章中被介紹。

使用顯著圖的概念相當(dāng)直接——計(jì)算輸出類別相對(duì)于輸入圖像的梯度。這應(yīng)該告訴我們輸出類別值對(duì)于輸入圖像像素中的微小變化是怎樣變化的。梯度中的所有正值告訴我們,像素的一個(gè)小變化會(huì)增加輸出值。因此,將這些梯度可視化可以提供一些直觀的信息,這種方法突出了對(duì)輸出貢獻(xiàn)最大的顯著圖像區(qū)域。 

  1. class_idx = 0indices = np.where(val_y[:, class_idx] == 1.)[0]  
  2. # pick some random input from here.idx = indices[0]  
  3. # Lets sanity check the picked image.from matplotlib import pyplot as plt%matplotlib inline  
  4. plt.rcParams['figure.figsize'] = (18, 6)plt.imshow(val_x[idx][..., 0])  
  5.  
  6. from vis.visualization import visualize_saliency  
  7. from vis.utils import utilsfrom keras import activations# Utility to search for layer index by name 
  8. # Alternatively we can specify this as -1 since it corresponds to the last layer.  
  9. layer_idx = utils.find_layer_idx(model, 'preds' 
  10. # Swap softmax with linearmodel.layers[layer_idx].activation = activations.linear  
  11. model = utils.apply_modifications(model)grads = visualize_saliency(model, layer_idx, filter_indices=class_idx, seed_input=val_x[idx])  
  12.  
  13. # Plot with 'jet' colormap to visualize as a heatmap.plt.imshow(grads, cmap='jet' 
  14.  
  15. # This corresponds to the Dense linear layer.for class_idx in np.arange(10):   
  16.    indices = np.where(val_y[:, class_idx] == 1.)[0]  
  17.    idx = indices[0]  
  18.  
  19.    f, ax = plt.subplots(1, 4)  
  20.    ax[0].imshow(val_x[idx][..., 0])  
  21.  
  22.    for i, modifier in enumerate([None, 'guided''relu']):  
  23.        grads = visualize_saliency(model, layer_idx, filter_indices=class_idx,   
  24.        seed_input=val_x[idx], backprop_modifier=modifier)  
  25.        if modifier is None:  
  26.            modifier = 'vanilla'  
  27.        ax[i+1].set_title(modifier)   
  28.        ax[i+1].imshow(grads, cmap='jet'

3.2 基于梯度的類別激活映射

類別激活映射(CAM)或grad-CAM是另外一種可視化模型的方法,這種方法使用的不是梯度的輸出值,而是使用倒數(shù)第二個(gè)卷積層的輸出,這樣做是為了利用存儲(chǔ)在倒數(shù)第二層的空間信息。 

  1. from vis.visualization import visualize_cam  
  2. # This corresponds to the Dense linear layer.for class_idx in np.arange(10):   
  3. indices = np.where(val_y[:, class_idx] == 1.)[0]  
  4. idx = indices[0]f, ax = plt.subplots(1, 4)  
  5. ax[0].imshow(val_x[idx][..., 0])  
  6. for i, modifier in enumerate([None, 'guided''relu']):  
  7.    grads = visualize_cam(model, layer_idx, filter_indices=class_idx,   
  8.    seed_input=val_x[idx], backprop_modifier=modifier)   
  9.    if modifier is None:  
  10.        modifier = 'vanilla'  
  11.    ax[i+1].set_title(modifier)   
  12.    ax[i+1].imshow(grads, cmap='jet'

 

總結(jié) 

本文簡(jiǎn)單說明了CNN模型可視化的重要性,以及介紹了一些可視化CNN網(wǎng)絡(luò)模型的方法,希望對(duì)讀者有所幫助,使其能夠在后續(xù)深度學(xué)習(xí)應(yīng)用中構(gòu)建更好的模型。 

責(zé)任編輯:龐桂玉 來源: 機(jī)器學(xué)習(xí)算法與Python學(xué)習(xí)
相關(guān)推薦

2018-08-28 16:45:38

圖像識(shí)別神經(jīng)網(wǎng)絡(luò)人工智能

2017-09-06 11:10:58

大數(shù)據(jù)數(shù)據(jù)可視化神經(jīng)網(wǎng)絡(luò)

2018-09-09 23:58:25

可視化神經(jīng)網(wǎng)絡(luò)模型

2017-04-17 10:25:29

神經(jīng)網(wǎng)絡(luò)可視化ActiVis

2019-06-04 05:52:20

神經(jīng)網(wǎng)絡(luò)可視化CNN)

2022-11-01 16:02:31

架構(gòu)神經(jīng)網(wǎng)絡(luò)模型

2017-05-04 18:30:34

大數(shù)據(jù)卷積神經(jīng)網(wǎng)絡(luò)

2022-04-07 09:01:52

神經(jīng)網(wǎng)絡(luò)人工智能

2017-10-11 23:07:00

神經(jīng)網(wǎng)絡(luò)激活函數(shù)可視化

2020-09-18 11:40:44

神經(jīng)網(wǎng)絡(luò)人工智能PyTorch

2022-10-11 23:35:28

神經(jīng)網(wǎng)絡(luò)VGGNetAlexNet

2019-01-05 08:40:17

VGG神經(jīng)網(wǎng)絡(luò)

2018-03-13 15:01:12

神經(jīng)網(wǎng)絡(luò)卷積網(wǎng)絡(luò)圖像

2021-03-08 09:25:48

神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)圖形

2020-06-15 17:40:32

神經(jīng)網(wǎng)絡(luò)人工智能可視化工具

2018-04-08 11:20:43

深度學(xué)習(xí)

2022-06-16 10:29:33

神經(jīng)網(wǎng)絡(luò)圖像分類算法

2020-07-01 09:08:55

神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)網(wǎng)絡(luò)

2017-07-26 16:48:46

神經(jīng)網(wǎng)絡(luò)可視化工具TensorFlow

2020-03-25 09:48:10

AI芯片神經(jīng)網(wǎng)絡(luò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美黑人巨大videos精品| 国产cdts系列另类在线观看| 国产一区二区精品| 亚洲免费小视频| 男人女人黄一级| 好了av在线| 99视频国产精品| 国产精品男女猛烈高潮激情| 一区二区三区视频在线| 午夜啪啪福利视频| 图片区 小说区 区 亚洲五月| 免费一级欧美片在线播放| 一区二区三区回区在观看免费视频| 手机免费av片| 精精国产xxxx视频在线野外| 国产精品天美传媒| 成人免费在线看片| 中文字幕乱码人妻二区三区| 伊人久久成人| 色综合影院在线| 美女又爽又黄免费| 精品中文字幕一区二区三区四区 | 美女爽到高潮91| 高清欧美性猛交| www.99re6| 婷婷亚洲精品| 亚洲第一视频网站| 国产探花在线看| 亚洲精品mv| 亚洲激情在线激情| 色一情一区二区三区四区| 六月婷婷中文字幕| 韩国一区二区三区| 国产精品福利在线| 日韩av在线电影| 综合天堂av久久久久久久| 亚洲午夜久久久影院| 第四色在线视频| 亚洲一区二区电影| 3atv一区二区三区| 在线免费视频一区| 日本成人片在线| 狠狠综合久久av一区二区小说| 亚洲精品中文字幕在线观看| 97视频在线观看免费| 欧美大片xxxx| 久久大综合网| 中国日韩欧美久久久久久久久| 北岛玲一区二区| 国偷自产av一区二区三区| 日韩一区二区高清| 网站在线你懂的| 自拍偷拍欧美日韩| 欧美日本在线看| 午夜激情在线观看视频| 浪潮色综合久久天堂| 欧美性色19p| 国产一区二区在线视频播放| 7777kkk亚洲综合欧美网站| 一区二区三区蜜桃网| 欧美h视频在线观看| 欧美一区二区三区在线观看免费| 中文字幕乱码久久午夜不卡 | 伊人影院综合在线| 影视一区二区三区| 欧美色老头old∨ideo| 手机在线成人免费视频| 亚洲综合伊人| 欧美一区二区三区四区在线观看| 五月六月丁香婷婷| 日韩免费精品| 亚洲第一精品福利| 国产一区二区香蕉| 国产精品久久久久久久99| 日韩一级特黄| 日韩无一区二区| 午夜福利三级理论电影| 欧美变态网站| 一区二区三区动漫| 永久免费看片直接| 欧美日本中文| 欧美在线视频播放| 一区二区三区在线免费观看视频| 国产综合成人久久大片91| 岛国一区二区三区高清视频| 天堂中文在线官网| 日本一区二区动态图| 黄色网址在线免费看| 国产精品一品| 91精品福利视频| 超碰中文字幕在线观看| 林ゆな中文字幕一区二区| 亚洲天堂色网站| 国产高潮流白浆| 一区二区国产精品| 国产乱肥老妇国产一区二| 亚洲av少妇一区二区在线观看| 91亚洲精品久久久蜜桃网站| 亚洲欧美国产不卡| gogo高清午夜人体在线| 在线观看视频91| 国产成人精品一区二区三区在线观看| 一道本一区二区三区| 久久精品视频在线| 亚洲伊人成人网| 韩国av一区二区三区四区| 国产亚洲一区二区三区在线播放| av在线二区| 亚洲午夜视频在线观看| 亚洲老女人av| 欧美激情极品| 久久成人亚洲精品| 国产黄网在线观看| 国产盗摄一区二区三区| 午夜精品美女久久久久av福利| av男人的天堂在线观看| 欧美精品久久一区| 免费成人深夜夜行p站| 亚洲xxx拳头交| 日本成人精品在线| 午夜免费福利视频| 日本一区二区三区在线不卡| 久久99久久久久久| 亚洲国产综合在线观看| 日韩久久午夜影院| 我家有个日本女人| 蜜臀a∨国产成人精品| 久久久久无码国产精品一区| 二区三区四区高清视频在线观看| 精品高清一区二区三区| 欧美熟妇另类久久久久久多毛| 精品午夜久久| 欧美亚洲日本黄色| 亚洲精品久久久久久动漫器材一区| 国产精品女同一区二区三区| 国产精品va无码一区二区| 一区二区三区四区视频免费观看 | 黄色片免费在线观看| 色婷婷av久久久久久久| 800av在线播放| 亚洲经典在线| 国产91色在线|亚洲| 自拍亚洲图区| 91精品啪在线观看国产60岁| 欧美图片一区二区| 亚洲一区日韩在线| 精品国产乱码久久久久久郑州公司 | 精品一区二区综合| 亚洲欧美日韩精品综合在线观看| 国产精品专区免费| 精品一区精品二区| 久久黄色精品视频| 99久久久精品免费观看国产蜜| 18黄暴禁片在线观看| 国产综合视频在线| 欧美日韩精品一区二区三区在线观看| 久久久成人精品| 国产又黄又粗又硬| 亚洲蜜臀av乱码久久精品| av噜噜在线观看| 欧美淫片网站| 国产精品二区三区| 韩国精品一区| 亚洲美女性生活视频| aaa在线视频| 国产人久久人人人人爽| 97人人爽人人| 亚洲欧美一区在线| 国产九色精品| 黄色成人免费网| 夜夜嗨av色一区二区不卡| 中文字幕视频一区二区| 日韩理论在线观看| 成人在线短视频| 国产亚洲一级| 亚洲精品乱码久久久久久蜜桃91 | 免费看美女视频在线网站| 欧美高清视频在线高清观看mv色露露十八| 女人18毛片毛片毛片毛片区二 | 日韩欧美一区二区三区| 成人黄色免费网址| 国产一区二区三区黄视频 | 欧美日韩一区高清| 日韩在线观看视频一区二区| 国产91丝袜在线播放九色| 丁香花在线影院观看在线播放| 国产毛片一区二区三区| 91精品久久久久久久久久另类| 中文字幕在线三区| 日韩精品在线观看一区二区| 日本欧美www| 又紧又大又爽精品一区二区| 国产特黄级aaaaa片免| 久久超碰97中文字幕| 青青草国产精品视频| 欧美丝袜丝交足nylons172| 91精品黄色| 免费看av不卡| 九九热r在线视频精品| 香港一级纯黄大片| 7777精品伊人久久久大香线蕉| 91浏览器在线观看| 中文字幕人成不卡一区| 亚洲中文字幕一区| 精品综合久久久久久8888| 欧美一区二区中文字幕| 欧美成人精品一区二区三区在线看| 国产伦精品一区二区三区视频黑人 | 国产人妖一区二区三区| 欧美午夜视频一区二区| 澳门黄色一级片| 国产校园另类小说区| 亚洲国产精品第一页| 日韩av中文字幕一区二区| 大西瓜av在线| 综合国产精品| 一区二区三区视频| 亚洲动漫精品| 古典武侠综合av第一页| 久久青草视频| 欧美在线观看网站| 好吊日av在线| 久久亚洲成人精品| 国产高清在线| 亚洲欧美一区二区激情| 亚洲成a人片77777精品| 欧美性生交大片免费| 2014亚洲天堂| 中文字幕欧美激情| 久久丫精品忘忧草西安产品| 99久久精品国产导航| www.欧美com| 国产一区二区免费视频| 日本人69视频| 蜜桃91丨九色丨蝌蚪91桃色| 国产男女激情视频| 亚洲在线成人| 欧美 日韩 亚洲 一区| 红桃视频国产精品| 97久久国产亚洲精品超碰热| 亚州av乱码久久精品蜜桃| 亚洲天堂电影网| 色综合咪咪久久网| 中文字幕精品—区二区日日骚| 清纯唯美日韩| 亚洲日本理论电影| 亚州av乱码久久精品蜜桃| 一区二区三区的久久的视频| 99热在线成人| 女同性恋一区二区| 欧美不卡一区| 欧美高清中文字幕| 亚洲人体大胆视频| 免费无遮挡无码永久视频| 亚洲国产mv| 久久久久久久久久久99| 免费亚洲视频| www.涩涩涩| 国产一区二区三区在线观看免费视频| 亚洲天堂一区二区在线观看| 欧美三级视频网站| 日韩亚洲国产免费| 国产精品一香蕉国产线看观看| 欧美特大特白屁股xxxx| 日韩av手机在线| 美女写真久久影院| 国产区精品视频| 久久爱一区二区| 国产福利在线免费观看| 欧美午夜电影在线| 久久久成人免费视频| 亚洲视频高清| 亚洲资源在线看| 日韩在线视频一区二区三区| 99理论电影网| 国产午夜亚洲精品一级在线| 444亚洲人体| jizzjizzjizz欧美| 久久精品国产美女| 成人午夜国产| 国产一级大片免费看| 亚洲精品社区| 国产免费视频传媒| 精品系列免费在线观看| 日韩亚洲欧美高清| 99re这里只有精品在线| 欧美色国产精品| 国产免费叼嘿网站免费| 精品国产伦理网| 国产h视频在线观看| 久久久国产视频| 成人免费图片免费观看| 国产精品入口日韩视频大尺度| 激情不卡一区二区三区视频在线 | 欧美精品videos极品| 五月开心婷婷久久| 欧美激情一区二区三区免费观看| 777午夜精品视频在线播放| 成人小说亚洲一区二区三区| 国产一区二区日韩精品欧美精品| 午夜激情在线| 国产精品高潮呻吟久久av无限| 亚洲精品国产九九九| 日韩av一级大片| 国内精品久久久久国产盗摄免费观看完整版| 免费看国产曰批40分钟| 精东粉嫩av免费一区二区三区| 漂亮人妻被黑人久久精品| 欧美国产成人在线| 日韩av一区二区在线播放| 4438x成人网最大色成网站| 青青草免费观看免费视频在线| 中文字幕av一区二区三区谷原希美 | 99re这里都是精品| 国产精品 欧美激情| 在线观看视频欧美| 亚洲三区在线播放| 欧美另类老女人| 欧美日韩伦理一区二区| 精品久久久久久综合日本 | 2019国产精品| 久久一级黄色片| 欧美日韩国产电影| 日本午夜在线| 日韩中文字幕国产| 欧美一区 二区 三区| 国产伦理久久久| 牛夜精品久久久久久久99黑人| 奇米影音第四色| 久久久久高清精品| 欧美一级视频免费观看| 国产真实乱偷精品视频免| 2019中文字幕在线观看| 黄色精品视频| 免费久久99精品国产自| 亚洲高清二区| av电影中文字幕| 国产精品久久久久久久久免费桃花 | 欧美大成色www永久网站婷| 久久精品黄色| 亚洲无玛一区| 久久国产视频网| 欧美88888| 欧美猛男超大videosgay| 波多野结衣在线影院| 日韩69视频在线观看| 五月天亚洲一区| 噜噜噜久久亚洲精品国产品麻豆| 丰满亚洲少妇av| 免费一级肉体全黄毛片| 欧美一区二区三区在线观看| 国产欧美黑人| 95av在线视频| 午夜久久影院| 第一页在线视频| 亚洲国产wwwccc36天堂| 色呦呦中文字幕| 欧美最近摘花xxxx摘花| 亚洲第一福利专区| 日韩一级在线免费观看| 欧美高清在线精品一区| 亚洲自拍偷拍另类| 久久综合伊人77777| 久久伊人影院| 91黄色在线看| 久久嫩草精品久久久精品| 久久久久亚洲视频| yellow中文字幕久久| 日本一区影院| 黄色片网址在线观看| 91女人视频在线观看| 中文字幕一区二区三区四区欧美| 一本色道久久88综合亚洲精品ⅰ| 久久精品国产精品亚洲毛片| aaa免费在线观看| 成人免费视频一区| 久久99精品波多结衣一区| 亚洲深夜福利网站| av在线一区不卡| 日韩中文在线字幕| 成人国产精品视频| 一级片免费在线播放| 中文字幕日韩精品在线| 精品91福利视频| 少妇人妻在线视频| 中文一区在线播放| 国产精品裸体瑜伽视频| 在线成人直播| 日本黄色免费观看| 91福利国产成人精品照片| 久操视频在线观看| 国产精品手机视频| 日韩高清中文字幕一区| 丁香花五月激情| 亚洲欧美制服丝袜| **国产精品| av观看免费在线| ...xxx性欧美| 三级黄视频在线观看| 91亚洲va在线va天堂va国|