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

keras中最常用深度學習的API

人工智能 深度學習
眾所周知,利用Keras-Python庫可以快速、輕松地創建屬于自己的深度學習的模型,今天我們就來介紹一些我們常用的API函數。

[[208000]]

眾所周知,利用Keras-Python庫可以快速、輕松地創建屬于自己的深度學習的模型,今天我們就來介紹一些我們常用的API函數。

序貫模型(Sequential)API允許你為大多數問題逐層的創建模型。它的局限性在于它不允許你創建共享層或者是具有多個輸入或輸出的模型。

Keras中的API函數是創建更多靈活性模型的替代方法,其中也包括創建更復雜的模型。

在本篇博客中,你將發現如何在Keras中使用靈活的API函數來定義深度學習模型。

閱讀完成后,你將知道:

  1. 連續的API和API函數之間的區別。
  2. 如何使用API函數定義簡單的多層感知器,卷積神經網絡和循環神經網絡模型。
  3. 如何使用共享層和多個輸入和輸出定義更復雜的模型。

OK,讓我們開始吧。

教程概述

本教程分為6部分:

  1. Keras序貫模型。
  2. Keras功能函數模型。
  3. 標準網絡模型。
  4. 共享層模型。
  5. 多個輸入和輸出模型。
  6. ***練習。

1.Keras序貫模型

Keras提供了一個Sequential模型的API。

這是創建深度學習模型的一種方法,其中創建了Sequential類的實例,并創建了模型圖層并將其添加其中。

例如,可以將層定義并傳遞給Sequential作為數組:

  1. from keras.models import Sequential 
  2.  
  3. from keras.layers import Dense 
  4.  
  5. model = Sequential([Dense(2, input_dim=1), Dense(1)])  

層也可以分段添加:

  1. from keras.models import Sequential 
  2.  
  3. from keras.layers import Dense 
  4.  
  5. model = Sequential() 
  6.  
  7. model.add(Dense(2, input_dim=1)) 
  8.  
  9. model.add(Dense(1))  

序貫模型的API在大多數情況下非常適合開發深度學習模型,但也有一些限制。例如,它不能定義具有多個不同輸入源的模型,因為那樣會產生多個輸出目標。

2.Keras功能函數模型

Keras功能API為定義模型提供了更靈活的方式。

它允許你定義多個輸入或輸出的模型以及可以共享圖層的模型。除此之外,它還允許你定義臨時的非循環網絡圖。

模型通過創建層的實例并將它們直接彼此成對連接來定義,然后定義一個模型,該模型的指定層作為模型的輸入和輸出。

我們來看看Keras功能API的三個獨特方面:

2.1定義輸入

與Sequential模型不同,你必須創建并定義一個獨立的輸入層,該層指定輸入數據的形狀。

輸入層采用一個模型參數,它是一個代表輸入數據維度的元組。

當輸入數據為一維時,例如對于多層感知器,該模型必須明確留出在訓練網絡分割數據時所使用的小批量大小的形狀。因此,模型元組始終以掛起的***一維(2)定義,例如:

  1. from keras.layers import Input 
  2.  
  3. visible = Input(shape=(2,))  

2.2連接層

模型中的層可以成對連接,這是通過在定義每個新圖層時指定輸入來自哪里。使用括號符號,使得在創建圖層之后,指定從當前圖層的輸入到即將到達的圖層。

讓我們用一個簡單的例子來說明這一點。我們可以創建如上所述的輸入層,然后創建一個隱藏層,作為僅從輸入層接收輸入的密集層。

  1. from keras.layers import Input 
  2.  
  3. from keras.layers import Dense 
  4.  
  5. visible = Input(shape=(2,)) 
  6.  
  7. hidden = Dense(2)(visible)  

正是通過這種連接層的方法,使功能API更具有靈活性。你可以看到開始定義ad-hoc圖層的特殊圖形變得多么的容易。

2.3創建模型

創建模型所需的所有圖層并將其連接在一起后,接下來必須定義模型。與Sequential API一樣,該模型是你可以概述、擬合、評估和使用做出預測。

Keras提供了一個Model類,你可以使用它從創建的圖層時創建模型。它要求你需要指定輸入和輸出層。例如:

  1. from keras.models import Model 
  2.  
  3. from keras.layers import Input 
  4.  
  5. from keras.layers import Dense 
  6.  
  7. visible = Input(shape=(2,)) 
  8.  
  9. hidden = Dense(2)(visible) 
  10.  
  11. model = Model(inputs=visible, outputs=hidden)  

既然現在我們知道了Keras功能API的所有關鍵部分,我們通過定義一套不同的模型實踐一下我們的學習成果。

以下每個示例都是可執行的,并打印結構并創建圖表。我建議為你自己的模型做這個,這樣可以讓你清楚你的定義。

我希望這些示例可以為你在以后使用功能API定義自己的模型時提供了模板。

3.標準網絡模型

當開始使用功能API時,***先了解一些關于標準神經網絡模型的定義。在本節中,我們將介紹定義一個簡單的多層感知器,卷積神經網絡和循環神經網絡。

這些例子將為以后理解更詳細的例子奠定基礎。

3.1多層感知器

在本節中,我們為二進制分類定義了一個多層Perceptron模型。該模型有10個輸入,3個隱藏層,10個神經元,輸出層有1個輸出。在每個隱藏層中使用整流線性激活函數,在輸出層使用S形激活函數進行二進制分類。

  1. # Multilayer Perceptron 
  2.  
  3. from keras.utils import plot_model 
  4.  
  5. from keras.models import Model 
  6.  
  7. from keras.layers import Input 
  8.  
  9. from keras.layers import Dense 
  10.  
  11. visible = Input(shape=(10,)) 
  12.  
  13. hidden1 = Dense(10, activation='relu')(visible) 
  14.  
  15. hidden2 = Dense(20, activation='relu')(hidden1) 
  16.  
  17. hidden3 = Dense(10, activation='relu')(hidden2) 
  18.  
  19. output = Dense(1, activation='sigmoid')(hidden3) 
  20.  
  21. model = Model(inputs=visible, outputs=output
  22.  
  23. # summarize layers 
  24.  
  25. print(model.summary()) 
  26.  
  27. # plot graph 
  28.  
  29. plot_model(model, to_file='multilayer_perceptron_graph.png' 

運行示例打印網絡的結構:

  1. _________________________________________________________________ 
  2. Layer (type)                 Output Shape              Param # 
  3. ================================================================= 
  4. input_1 (InputLayer)         (None, 10)                0 
  5. _________________________________________________________________ 
  6. dense_1 (Dense)              (None, 10)                110 
  7. _________________________________________________________________ 
  8. dense_2 (Dense)              (None, 20)                220 
  9. _________________________________________________________________ 
  10. dense_3 (Dense)              (None, 10)                210 
  11. _________________________________________________________________ 
  12. dense_4 (Dense)              (None, 1)                 11 
  13. ================================================================= 
  14. Total params: 551 
  15. Trainable params: 551 
  16. Non-trainable params: 0 
  17. _________________________________________________________________  

模型圖的創建并保存到文件:

 

3.2卷積神經網絡

在本節中,我們將定義一個用于圖像分類的卷積神經網絡。

該模型接收黑白64×64圖像作為輸入,然后兩個卷積層和匯集層的序列作為特征提取器,隨后是完全連接的層來解釋特征,并且輸出層是具有S形激活函數。

  1. # Convolutional Neural Network 
  2.  
  3. from keras.utils import plot_model 
  4.  
  5. from keras.models import Model 
  6.  
  7. from keras.layers import Input 
  8.  
  9. from keras.layers import Dense 
  10.  
  11. from keras.layers.convolutional import Conv2D 
  12.  
  13. from keras.layers.pooling import MaxPooling2D 
  14.  
  15. visible = Input(shape=(64,64,1)) 
  16.  
  17. conv1 = Conv2D(32, kernel_size=4, activation='relu')(visible) 
  18.  
  19. pool1 = MaxPooling2D(pool_size=(2, 2))(conv1) 
  20.  
  21. conv2 = Conv2D(16, kernel_size=4, activation='relu')(pool1) 
  22.  
  23. pool2 = MaxPooling2D(pool_size=(2, 2))(conv2) 
  24.  
  25. hidden1 = Dense(10, activation='relu')(pool2) 
  26.  
  27. output = Dense(1, activation='sigmoid')(hidden1) 
  28.  
  29. model = Model(inputs=visible, outputs=output
  30.  
  31. # summarize layers 
  32.  
  33. print(model.summary()) 
  34.  
  35. # plot graph 
  36.  
  37. plot_model(model, to_file='convolutional_neural_network.png' 

運行示例:

  1. _________________________________________________________________ 
  2.  
  3. Layer (type) Output Shape Param # 
  4.  
  5. ================================================================= 
  6.  
  7. input_1 (InputLayer) (None, 64, 64, 1) 0 
  8.  
  9. •••••• 
  10.  
  11. Total params: 8,933 
  12.  
  13. Trainable params: 8,933 
  14.  
  15. Non-trainable params: 0 
  16.  
  17. ________________________________________________________________  

模型圖的圖創建并保存到文件:

 

3.3循環神經網絡

在本節中,我們將定義一個LSTM循環神經網絡用于序列分類。

該模型是100個時間步長作為輸入,該模型具有單個LSTM隱藏層,用于從序列中提取特征,然后是完全連接的層以解釋LSTM輸出,隨后是用于進行二進制預測的輸出層。

  1. # Recurrent Neural Network 
  2.  
  3. from keras.utils import plot_model 
  4.  
  5. from keras.models import Model 
  6.  
  7. from keras.layers import Input 
  8.  
  9. from keras.layers import Dense 
  10.  
  11. from keras.layers.recurrent import LSTM 
  12.  
  13. visible = Input(shape=(100,1)) 
  14.  
  15. hidden1 = LSTM(10)(visible) 
  16.  
  17. hidden2 = Dense(10, activation='relu')(hidden1) 
  18.  
  19. output = Dense(1, activation='sigmoid')(hidden2) 
  20.  
  21. model = Model(inputs=visible, outputs=output
  22.  
  23. # summarize layers 
  24.  
  25. print(model.summary()) 
  26.  
  27. # plot graph 
  28.  
  29. plot_model(model, to_file='recurrent_neural_network.png' 

運行示例總結模型層。

  1. _________________________________________________________________ 
  2.  
  3. Layer (type) Output Shape Param # 
  4.  
  5. ================================================================= 
  6.  
  7. ••••••• 
  8.  
  9. ================================================================= 
  10.  
  11. Total params: 601 
  12.  
  13. Trainable params: 601 
  14.  
  15. Non-trainable params: 0 
  16.  
  17. _________________________________________________________________  

模型圖的創建并保存到文件:

 

4.共享層模型

多層可以共享一層的輸出。

例如,可能存在來自輸入的多個不同的特征提取層,或者用于解釋特征提取層輸出的多個層。

我們來看看這兩個例子。

4.1共享輸入層

在本節中,我們使用不同大小的內核定義多個卷積層來解釋圖像輸入。

該模型輸入采用大小為64×64像素的黑白圖像。有兩個CNN特征提取子模型共享該輸入:***個內核大小為4,第二個內核大小為8。這些特征提取子模型的輸出被平坦化為向量,并連接成一個長向量,并傳遞到完全連接的層,以便在最終輸出層之前進行二進制分類。

  1. # Shared Input Layer 
  2.  
  3. from keras.utils import plot_model 
  4.  
  5. from keras.models import Model 
  6.  
  7. from keras.layers import Input 
  8.  
  9. from keras.layers import Dense 
  10.  
  11. from keras.layers import Flatten 
  12.  
  13. from keras.layers.convolutional import Conv2D 
  14.  
  15. from keras.layers.pooling import MaxPooling2D 
  16.  
  17. from keras.layers.merge import concatenate 
  18.  
  19. # input layer 
  20.  
  21. visible = Input(shape=(64,64,1)) 
  22.  
  23. first feature extractor 
  24.  
  25. conv1 = Conv2D(32, kernel_size=4, activation='relu')(visible) 
  26.  
  27. pool1 = MaxPooling2D(pool_size=(2, 2))(conv1) 
  28.  
  29. flat1 = Flatten()(pool1) 
  30.  
  31. second feature extractor 
  32.  
  33. conv2 = Conv2D(16, kernel_size=8, activation='relu')(visible) 
  34.  
  35. pool2 = MaxPooling2D(pool_size=(2, 2))(conv2) 
  36.  
  37. flat2 = Flatten()(pool2) 
  38.  
  39. # merge feature extractors 
  40.  
  41. merge = concatenate([flat1, flat2]) 
  42.  
  43. # interpretation layer 
  44.  
  45. hidden1 = Dense(10, activation='relu')(merge) 
  46.  
  47. # prediction output 
  48.  
  49. output = Dense(1, activation='sigmoid')(hidden1) 
  50.  
  51. model = Model(inputs=visible, outputs=output
  52.  
  53. # summarize layers 
  54.  
  55. print(model.summary()) 
  56.  
  57. # plot graph 
  58.  
  59. plot_model(model, to_file='shared_input_layer.png' 

運行示例總結模型層。

  1. ___________________________________________________________________ 
  2.  
  3. Layer (type) Output Shape Param # Connected to 
  4.  
  5. =================================================================== 
  6.  
  7. ••••••••••••••••••••••• 
  8.  
  9. Total params: 415,045 
  10.  
  11. Trainable params: 415,045 
  12.  
  13. Non-trainable params: 0 
  14.  
  15. ___________________________________________________________________  

模型圖的被創建并保存到文件:

 

4.2共享特征提取層

在本節中,我們使用兩個并行子模型解釋LSTM特征提取器的輸出以進行序列分類。

模型的輸入是一個特征為100的時間步長,具有10個存儲單元的LSTM層解釋該序列。***種解釋模式是淺層的單層完全連接層,第二種是深層的3層模型。兩個解釋模型的輸出都被連接成一個長向量,傳遞給用于進行二進制預測的輸出層。

  1. # Shared Feature Extraction Layer 
  2.  
  3. from keras.utils import plot_model 
  4.  
  5. from keras.models import Model 
  6.  
  7. from keras.layers import Input 
  8.  
  9. from keras.layers import Dense 
  10.  
  11. from keras.layers.recurrent import LSTM 
  12.  
  13. from keras.layers.merge import concatenate 
  14.  
  15. # define input 
  16.  
  17. visible = Input(shape=(100,1)) 
  18.  
  19. # feature extraction 
  20.  
  21. extract1 = LSTM(10)(visible) 
  22.  
  23. first interpretation model 
  24.  
  25. interp1 = Dense(10, activation='relu')(extract1) 
  26.  
  27. second interpretation model 
  28.  
  29. interp11 = Dense(10, activation='relu')(extract1) 
  30.  
  31. interp12 = Dense(20, activation='relu')(interp11) 
  32.  
  33. interp13 = Dense(10, activation='relu')(interp12) 
  34.  
  35. # merge interpretation 
  36.  
  37. merge = concatenate([interp1, interp13]) 
  38.  
  39. output 
  40.  
  41. output = Dense(1, activation='sigmoid')(merge) 
  42.  
  43. model = Model(inputs=visible, outputs=output
  44.  
  45. # summarize layers 
  46.  
  47. print(model.summary()) 
  48.  
  49. # plot graph 
  50.  
  51. plot_model(model, to_file='shared_feature_extractor.png' 

運行示例總結模型層。

  1. ___________________________________________________________________ 
  2.  
  3. Layer (type) Output Shape Param # Connected to 
  4.  
  5. ••••••• 
  6.  
  7. Total params: 1,151 
  8.  
  9. Trainable params: 1,151 
  10.  
  11. Non-trainable params: 0 
  12.  
  13. ___________________________________________________________________  

模型圖被創建并保存到文件。

 

5.多個輸入和輸出模型

功能API也可用于開發具有多個輸入的更復雜的模型,可能具有不同的模態。它也可以用于開發產生多個輸出的模型。

我們將在本節中查看每個示例。

5.1多輸入模型

我們將開發一個圖像分類模型,它將兩個版本的圖像作為輸入,每個版本的大小不同。具體是黑白64×64版,彩色32×32版。單獨的特征提取CNN模型在每個模型上運行,然后將兩個模型的結果連接起來進行解釋和最終預測。

請注意,在創建Model()實例時,我們將兩個輸入圖層定義為數組。

  1. model = Model(inputs=[visible1, visible2], outputs=output

完整的示例如下所示。

  1. # Multiple Inputs 
  2.  
  3. from keras.utils import plot_model 
  4.  
  5. from keras.models import Model 
  6.  
  7. from keras.layers import Input 
  8.  
  9. from keras.layers import Dense 
  10.  
  11. from keras.layers import Flatten 
  12.  
  13. from keras.layers.convolutional import Conv2D 
  14.  
  15. from keras.layers.pooling import MaxPooling2D 
  16.  
  17. from keras.layers.merge import concatenate 
  18.  
  19. first input model 
  20.  
  21. visible1 = Input(shape=(64,64,1)) 
  22.  
  23. conv11 = Conv2D(32, kernel_size=4, activation='relu')(visible1) 
  24.  
  25. pool11 = MaxPooling2D(pool_size=(2, 2))(conv11) 
  26.  
  27. conv12 = Conv2D(16, kernel_size=4, activation='relu')(pool11) 
  28.  
  29. pool12 = MaxPooling2D(pool_size=(2, 2))(conv12) 
  30.  
  31. flat1 = Flatten()(pool12) 
  32.  
  33. second input model 
  34.  
  35. visible2 = Input(shape=(32,32,3)) 
  36.  
  37. conv21 = Conv2D(32, kernel_size=4, activation='relu')(visible2) 
  38.  
  39. pool21 = MaxPooling2D(pool_size=(2, 2))(conv21) 
  40.  
  41. conv22 = Conv2D(16, kernel_size=4, activation='relu')(pool21) 
  42.  
  43. pool22 = MaxPooling2D(pool_size=(2, 2))(conv22) 
  44.  
  45. flat2 = Flatten()(pool22) 
  46.  
  47. # merge input models 
  48.  
  49. merge = concatenate([flat1, flat2]) 
  50.  
  51. # interpretation model 
  52.  
  53. hidden1 = Dense(10, activation='relu')(merge) 
  54.  
  55. hidden2 = Dense(10, activation='relu')(hidden1) 
  56.  
  57. output = Dense(1, activation='sigmoid')(hidden2) 
  58.  
  59. model = Model(inputs=[visible1, visible2], outputs=output
  60.  
  61. # summarize layers 
  62.  
  63. print(model.summary()) 
  64.  
  65. # plot graph 
  66.  
  67. plot_model(model, to_file='multiple_inputs.png' 

運行示例:

  1. ___________________________________________________________________ 
  2.  
  3. Layer (type) Output Shape Param # Connected to 
  4.  
  5. ••••••••• 
  6.  
  7. input_1 (InputLayer) (None, 64, 64, 1) 0 
  8.  
  9. Total params: 49,699 
  10.  
  11. Trainable params: 49,699 
  12.  
  13. Non-trainable params: 0 
  14.  
  15. ___________________________________________________________________  

模型圖被創建并保存到文件。

 

5.2多輸出模型

在本節中,我們將開發出一種可以進行兩種不同類型預測的模型。給定一個特征的100個時間步長的輸入序列,該模型將對序列進行分類并輸出具有相同長度的新序列。

LSTM層解釋輸入序列,并返回每個時間步長的隱藏狀態。***個輸出模型創建一個堆棧的LSTM,解釋特征,并進行二進制預測。第二個輸出模型使用相同的輸出層對每個輸入時間步長進行實值預測。

  1. # Multiple Outputs 
  2.  
  3. from keras.utils import plot_model 
  4.  
  5. from keras.models import Model 
  6.  
  7. from keras.layers import Input 
  8.  
  9. from keras.layers import Dense 
  10.  
  11. from keras.layers.recurrent import LSTM 
  12.  
  13. from keras.layers.wrappers import TimeDistributed 
  14.  
  15. # input layer 
  16.  
  17. visible = Input(shape=(100,1)) 
  18.  
  19. # feature extraction 
  20.  
  21. extract = LSTM(10, return_sequences=True)(visible) 
  22.  
  23. # classification output 
  24.  
  25. class11 = LSTM(10)(extract) 
  26.  
  27. class12 = Dense(10, activation='relu')(class11) 
  28.  
  29. output1 = Dense(1, activation='sigmoid')(class12) 
  30.  
  31. sequence output 
  32.  
  33. output2 = TimeDistributed(Dense(1, activation='linear'))(extract) 
  34.  
  35. output 
  36.  
  37. model = Model(inputs=visible, outputs=[output1, output2]) 
  38.  
  39. # summarize layers 
  40.  
  41. print(model.summary()) 
  42.  
  43. # plot graph 
  44.  
  45. plot_model(model, to_file='multiple_outputs.png' 

運行示例。

  1. ___________________________________________________________________ 
  2.  
  3. Layer (type) Output Shape Param # Connected to 
  4.  
  5. =================================================================== 
  6.  
  7. input_1 (InputLayer) (None, 100, 1) 0 
  8.  
  9. ___________________________________________________________________ 
  10.  
  11. ········ 
  12.  
  13. Total params: 1,452 
  14.  
  15. Trainable params: 1,452 
  16.  
  17. Non-trainable params: 0 
  18.  
  19. ___________________________________________________________________  

模型圖的創建并保存到文件:

 

 

6.***做法

在本節中,我給你一些提示,以便在定義自己的模型時充分利用功能性API。

  1. 一致的變量名。對輸入(可見)和輸出層(輸出)使用相同的變量名稱,甚至可以使用隱藏層(hidden1,hidden2)。它將有助于正確地將事物聯系起來。
  2. 查看圖層圖。始終打印模型摘要并查看圖層輸出,以確保模型按預期連接在一起。
  3. 查看圖表。創建一個模型圖的情節,并檢查它,以確保所有的東西都按照你的意圖放在一起。
  4. 命名圖層。你可以為查看模型圖的名稱和繪圖時使用的圖層分配名稱。例如:Dense(1,name =’hidden1’)。
  5. 單獨的子模型。考慮分開子模型的發展,并將子模型結合在一起。 
責任編輯:龐桂玉 來源: 36大數據
相關推薦

2025-11-18 08:22:56

2021-02-03 13:56:09

KerasAPI深度學習

2009-06-10 21:58:51

Javascript常

2022-10-14 13:47:06

2024-02-26 00:00:00

stage函數進度

2025-04-25 07:10:00

GenAIAI工具人工智能

2024-12-11 08:20:57

設計模式源碼

2025-11-10 02:11:00

2024-01-29 18:02:46

2024-01-24 13:14:00

Python內置函數工具

2017-07-13 10:03:43

優化算法Adam深度學習

2009-04-30 15:26:25

Visual Stud快捷鍵技巧

2013-08-26 16:23:13

iOS應用標題移動應用標題常用單詞移動應用推廣

2010-08-27 11:17:49

DIVCSS

2024-11-08 13:34:24

2025-06-16 08:22:23

2024-01-22 13:53:00

Linux環境變量

2010-01-11 10:53:14

C++Builder

2023-07-08 23:02:14

快捷鍵IntelliJIDEA

2021-09-16 11:02:49

Python線程
點贊
收藏

51CTO技術棧公眾號

91免费视频网站| 伊人av综合网| 欧美精品99久久| 男人天堂亚洲二区| 精品一区二区三区久久| 欧美肥老妇视频| 玖玖爱在线精品视频| 免费观看成人性生生活片| 亚洲欧洲色图综合| 国产在线精品一区二区三区》| 久久永久免费视频| 欧美freesex交免费视频| 亚洲国产精品免费| 污片在线免费看| 538视频在线| 国产精品福利影院| 久久久久久九九九九| 97人妻精品一区二区三区动漫| 亚洲黄色影院| 久久精品国产视频| 国产毛片久久久久久久| 2020最新国产精品| 欧美女孩性生活视频| 91视频 -- 69xx| av片在线观看网站| 欧美韩国日本一区| 国产伦一区二区三区色一情| 中文字幕精品一区二| 亚洲在线观看| 久久久久久久久久久国产| 免费91在线观看| 猛男gaygay欧美视频| 欧美mv和日韩mv国产网站| 中文字幕亚洲欧洲| 精品成人av| 日韩欧美在线视频日韩欧美在线视频| 久久视频免费在线| 午夜在线播放| 国产婷婷色一区二区三区四区 | 男人午夜免费视频| 91精品一区二区三区综合在线爱 | 久久蜜桃资源一区二区老牛| 欧美精品videossex性护士| 小泽玛利亚一区| 精品国产一区二区三区噜噜噜| 日韩第一页在线| 年下总裁被打光屁股sp | 免费中文字幕日韩| 99久久精品国产亚洲精品| 一区二区三区久久精品| 在哪里可以看毛片| 国产精品欧美日韩一区| 精品亚洲男同gayvideo网站| 一本加勒比波多野结衣| 动漫视频在线一区| 亚洲成人精品久久久| 免费不卡的av| 欧美黄色网视频| 日韩激情视频在线播放| 三级男人添奶爽爽爽视频| 麻豆一区二区| 日韩电影中文字幕一区| 亚洲天堂成人av| 欧美激情在线免费| 一区二区三区四区在线观看视频| 日本少妇xxxxx| 日韩专区精品| 久久久www成人免费精品| 日韩欧美综合视频| 国产字幕视频一区二区| 7777kkkk成人观看| 日韩电影在线观看一区二区| 日韩精品电影一区亚洲| 国产日产欧美a一级在线| 国产精品一区二区免费视频| 国产91精品露脸国语对白| 国产精品久久久久久久久久久久午夜片| 精品黑人一区二区三区在线观看| av不卡一区二区三区| 久久影视中文粉嫩av| av在线电影网| 亚洲精品高清在线| 亚洲熟女乱色一区二区三区| 91欧美精品| 欧美一级欧美一级在线播放| 日韩成人av一区二区| 欧美女优在线视频| 久久亚洲精品视频| 日本在线视频中文字幕| 丝袜脚交一区二区| 亚洲a区在线视频| 午夜国产在线观看| 国产精品网站一区| 福利视频一区二区三区四区| 伊人久久综合一区二区| 欧美日韩精品欧美日韩精品一| 欧美日韩一区二区区别是什么 | 亚欧洲精品在线视频免费观看| 黄色小网站在线观看| 午夜精品久久久久久久| 少妇黄色一级片| 一区二区在线免费播放| 国产一级揄自揄精品视频| 国产少妇在线观看| 玖玖玖国产精品| 97netav| 成人在线视频成人| 亚洲国产wwwccc36天堂| 午夜剧场在线免费观看| 首页亚洲中字| 欧美精品国产精品日韩精品| 在线观看国产精品视频| 91在线精品一区二区三区| 自拍视频一区二区三区| 黑人精品一区| 精品国产乱码久久久久久浪潮| 天天摸日日摸狠狠添| 国产欧美亚洲一区| 99热国产免费| 黄色一级片在线观看| 欧美色中文字幕| 特大黑人巨人吊xxxx| 韩国av一区| 成人伊人精品色xxxx视频| 男人天堂综合| 欧美日韩亚洲激情| 国产人妻黑人一区二区三区| 你懂的网址国产 欧美| 国产免费一区二区三区在线能观看 | 一本色道婷婷久久欧美| 粉嫩一区二区| 亚洲黄色www| 国产主播在线播放| 国产福利精品一区二区| 中文视频一区视频二区视频三区| 91精品国产经典在线观看| 亚洲欧美在线一区二区| 日韩黄色一级大片| 99国产精品一区| 国产va亚洲va在线va| 日韩激情精品| 欧美成人合集magnet| 97人妻精品一区二区三区视频| 欧美激情在线一区二区三区| 少妇高清精品毛片在线视频| 日韩三级av| 91精品国产高清久久久久久| 开心激情综合网| 亚洲第一av色| 六十路息与子猛烈交尾| 在线国产欧美| 国模一区二区三区私拍视频| 美女网站在线看| 亚洲欧美日韩天堂| 久久久久久亚洲av无码专区| 久久精品水蜜桃av综合天堂| 国产一级不卡毛片| av影片在线一区| 国产欧亚日韩视频| a级片国产精品自在拍在线播放| 91精品黄色片免费大全| 国产suv一区二区三区| 国产精品羞羞答答xxdd| 人妻少妇精品久久| 琪琪久久久久日韩精品| 国产成人精品网站| h视频在线免费| 91麻豆精品国产综合久久久久久| 国产三级国产精品国产国在线观看 | 3344国产精品免费看| 免费福利在线视频| 欧美色综合网站| 欧美国产精品一二三| hitomi一区二区三区精品| 欧美日韩第二页| 日韩亚洲一区在线| 产国精品偷在线| 午夜欧美激情| 色系列之999| 亚洲国产精品欧美久久 | 热99这里只有精品| 国产亚洲一卡2卡3卡4卡新区 | 成人免费在线观看入口| 黄色性视频网站| 天堂成人国产精品一区| 青春草在线视频免费观看| 成人看片爽爽爽| 国产精品欧美日韩一区二区| a级网站在线播放| 亚洲欧美日韩精品久久| 国产精品探花视频| 日韩欧美在线视频日韩欧美在线视频 | 琪琪久久久久日韩精品| 国产日本欧美视频| 妞干网免费在线视频| 久久精品成人欧美大片| 视频一区二区三区在线看免费看 | 欧美一区亚洲一区| 国产美女av在线| 亚洲精品一区av在线播放| 91久久精品无码一区二区| 亚洲成av人片一区二区梦乃| 少妇视频在线播放| 91一区二区在线观看| 天天综合天天添夜夜添狠狠添| 一区二区三区成人精品| 一级黄色录像免费看| 亚洲国产最新| caoporen国产精品| 日韩毛片免费看| 欧美专区中文字幕| 男人添女人下部高潮视频在线观看| 亚洲一级片在线看| 手机看片一区二区三区| 91精品国产一区二区三区| www.日韩一区| 黑人巨大精品欧美一区二区一视频 | 日韩免费在线看| sqte在线播放| 久久综合伊人77777蜜臀| 国产大学生校花援交在线播放| 亚洲黄色有码视频| 亚洲精品网站在线| 在线成人免费视频| 日本成人一级片| 色综合久久88色综合天天6| 久久无码精品丰满人妻| 亚洲人精品一区| 精品亚洲aⅴ无码一区二区三区| 99re这里只有精品视频首页| 亚洲综合中文网| 精品在线观看视频| 一区二区三区欧美精品| 蜜臀91精品一区二区三区 | 樱空桃在线播放| 日韩精品久久久久久久电影99爱| 免费看污久久久| 欧美成a人免费观看久久| 国产精品v欧美精品∨日韩| 欧美专区一区| dy888夜精品国产专区| 欧美黄色一级| 99热最新在线| 国产精品x8x8一区二区| 高清视频在线观看一区| av成人app永久免费| 国产乱子伦精品| 精品福利一区| 久久久久久久久久码影片| 成人av影音| 精品产品国产在线不卡| 日本精品影院| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 欧美性大战久久久久久久 | 欧美成人性福生活免费看| 精品人妻av一区二区三区| 日韩美女天天操| 日本高清视频www| 亚洲精品在线看| xxxxx日韩| 久久精品国产电影| 波多野结衣在线播放| 97热在线精品视频在线观看| 日韩影院在线| 国产精品第3页| 高清不卡一区| 国产乱码精品一区二区三区日韩精品| 精品淫伦v久久水蜜桃| 美女主播视频一区| 日韩av密桃| 屁屁影院ccyy国产第一页| 99riav1国产精品视频| 熟妇人妻va精品中文字幕| 蜜桃视频免费观看一区| 麻豆精品国产传媒| 91免费视频大全| 日本免费www| 一区二区在线观看不卡| 中文字幕视频网| 色婷婷亚洲精品| 国产suv一区二区| 日韩精品视频中文在线观看| 成人午夜影视| 欧美激情第1页| 日本综合字幕| 91精品国自产在线观看| 台湾佬综合网| 国产日产欧美一区二区| 国产精品一二| 天天干天天色天天干| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 日韩三级一区二区| 91超碰这里只有精品国产| 亚洲h视频在线观看| 一本色道久久88精品综合| 天堂8中文在线| 国产精品欧美日韩一区二区| 国产成人精品福利| 亚洲国产高清国产精品| 在线观看一区视频| 免费网站在线观看黄| 99久久久无码国产精品| 亚洲波多野结衣| 欧美性色视频在线| 亚洲精品成av人片天堂无码 | 日韩影院在线观看| 亚洲熟女一区二区三区| 国产精品亲子乱子伦xxxx裸| 国产一级中文字幕| 欧美一区二区三区在线视频| 欧美色18zzzzxxxxx| 欧美精品xxx| 亚洲毛片在线免费| 日本免费一区二区三区| 亚洲久久一区二区| 91视频免费入口| 中文字幕一区三区| 亚洲成人av影片| 亚洲精品www| 欧美女同一区| 亚洲精品日韩激情在线电影| 青青草国产成人a∨下载安卓| 亚欧无线一线二线三线区别| 懂色av中文一区二区三区| 亚洲一级二级片| 欧美无人高清视频在线观看| 青青青草网站免费视频在线观看| 国内外成人免费激情在线视频| 国产精品视频首页| 亚洲在线观看一区| 日韩成人精品在线| 国产亚洲精品熟女国产成人| 岛国av一区二区在线在线观看| 丰满少妇高潮在线观看| 九九热99久久久国产盗摄| 国产 日韩 欧美| 致1999电视剧免费观看策驰影院| 日本伊人色综合网| 老司机福利在线观看| 欧美丝袜自拍制服另类| jizz视频在线观看| 国产精品日韩欧美| 欧美第一精品| 欧美日韩理论片| 亚洲免费视频中文字幕| 国产日韩一级片| 欧美精品在线第一页| 成人福利一区| www在线观看免费| 2020国产精品久久精品美国| 五月天婷婷激情| 日韩精品免费综合视频在线播放| 中文日产幕无线码一区二区| 欧洲精品码一区二区三区免费看| 日本在线播放一区二区三区| 性少妇xx生活| 3atv一区二区三区| 伊人222成人综合网| 古典武侠综合av第一页| 国产精品入口66mio| 亚洲久久久久久久| 欧美三级中文字幕在线观看| 毛片网站在线免费观看| 亚洲在线第一页| 激情成人亚洲| 亚洲国产欧美视频| 欧美性感一区二区三区| 中文字幕有码在线观看| 狠狠色狠狠色综合人人| 久久久人人人| 日韩一卡二卡在线观看| 日韩精品一区二区三区视频播放| 激情国产在线| 欧美人xxxxx| 久久精品国产久精国产爱| 久草视频在线免费看| 亚洲欧美自拍一区| 欧美成a人片免费观看久久五月天| 国产一区一区三区| 99国产精品久久久| 亚洲视频在线观看一区二区| 欧美巨猛xxxx猛交黑人97人| 日本中文字幕在线一区| 欧美成人福利在线观看| 亚洲一区二区三区四区在线 | 中文字幕av在线一区二区三区| 国产精品系列视频| 2019中文字幕在线观看| 手机在线电影一区| 波多野结衣有码| 欧美久久久一区| 亚洲国产福利| www.黄色网址.com| 久久美女艺术照精彩视频福利播放| 91亚洲视频在线观看| 欧美亚洲成人免费| 欧美va天堂在线| 五月天精品视频| 亚洲高清一二三区| 亚洲一区导航|