精品欧美一区二区三区在线观看 _久久久久国色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在线看片| 另类小说综合欧美亚洲| 欧美日韩成人在线观看| 国产全是老熟女太爽了| 日韩专区视频| 亚洲第一福利视频在线| 日本午夜精品一区二区| 国产熟女精品视频| 亚洲欧美日韩一区在线观看| 日韩网站免费观看| 91丝袜在线观看| 亚洲精品毛片| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品h视频| 日本国产在线| 国产91在线|亚洲| 国产剧情日韩欧美| 97久久久久久久| 欧美韩国日本在线观看| 日韩成人在线网站| 五月婷婷六月丁香激情| 国产精品原创| 一区二区在线看| 日韩欧美在线一区二区| 五月婷婷六月激情| 国产电影一区在线| 国产精品一区二区三区久久| 影音先锋亚洲天堂| 狠狠综合久久av一区二区老牛| 中日韩美女免费视频网址在线观看 | 精品久久久免费| 成年在线观看视频| 成人影院在线观看| 国产精品国产三级国产aⅴ原创 | 97香蕉碰碰人妻国产欧美| 欧美日韩国产一区二区在线观看| 欧美色综合久久| 欧美极品欧美精品欧美图片| 成人一级福利| 亚洲亚洲精品在线观看| 国产 欧美 日韩 一区| 蜜桃视频在线观看www社区| 国产精品色噜噜| 亚洲国产高清国产精品| 粉嫩一区二区三区国产精品| 久久久国产一区二区三区四区小说| 国产精品久久久久久久久久久久午夜片| 91av国产精品| 激情综合一区二区三区| 成人免费淫片aa视频免费| 亚洲中文字幕在线观看| 日本v片在线高清不卡在线观看| 日韩av电影在线播放| 中文字幕免费在线观看视频| 麻豆成人在线| 国产福利成人在线| 艳妇乳肉豪妇荡乳av无码福利| 久久久久久婷| 国产精品成人一区| 正在播放亚洲精品| 久久国产福利国产秒拍| 亚洲www视频| 亚洲精品国产精| 床上的激情91.| 国产91aaa| 视频国产在线观看| 91一区一区三区| 神马欧美一区二区| 免费高清完整在线观看| 亚洲日穴在线视频| 成人精品视频在线播放| 亚洲永久av| 欧美日韩精品一区视频| 波多野结衣网页| 欧美午夜寂寞| 永久免费毛片在线播放不卡| 天天操夜夜操av| 在线欧美不卡| 国产精品pans私拍| 一区二区久久精品66国产精品 | 国产精品剧情一区二区在线观看| 一区二区三区中文字幕精品精品 | 伊人伊成久久人综合网小说| 欧美久久免费观看| 一区二区三区人妻| 日本三级久久| 日韩一区二区久久久| 麻豆亚洲av熟女国产一区二| 日韩一区二区久久| 国产一区深夜福利| 欧美 日韩 中文字幕| 日本一区二区视频在线观看| a级黄色片免费| av日韩电影| 欧美一级一区二区| 久久久久久久久久久国产精品| 日韩精品一区二区三区免费观影| 久久福利视频导航| 天天操天天操天天操天天| 精品一二三四区| 久久精品二区| av网站免费在线观看| 欧美性极品xxxx做受| 91网址在线观看精品| 久操国产精品| 国外成人在线视频| 91久久国语露脸精品国产高跟| 99久久99久久久精品齐齐| 伊人情人网综合| 国产激情在线播放| 日韩欧美二区三区| 日本精品在线免费观看| 男人的天堂亚洲在线| 99久久精品免费看国产一区二区三区 | 日韩免费电影| 亚洲国产精品免费| 欧美日韩大片在线观看| 青青草伊人久久| 久久99精品久久久久久水蜜桃| 91精品久久久久久粉嫩| 欧美日韩国产一级二级| 国产又黄又粗又猛又爽的视频| 欧美激情综合| 亚洲xxxx18| 国产精品剧情| 欧美精品aⅴ在线视频| 天天操天天舔天天射| 亚洲免费网址| 好吊妞www.84com只有这里才有精品| 国产cdts系列另类在线观看| 欧美综合视频在线观看| 女尊高h男高潮呻吟| 亚洲精品影视| 国产成人精品日本亚洲11| 老司机午夜在线| 欧美日韩国产影片| 69夜色精品国产69乱| 精品一区二区三区在线观看| 天天综合色天天综合色hd| 性欧美gay| 国产一区二区三区视频| 中文字幕在线天堂| 国产婷婷色一区二区三区| 日韩在线xxx| 亚洲人成网站77777在线观看| 97国产在线视频| 五月天婷婷激情网| 精品久久在线播放| 极品人妻一区二区三区| 另类国产ts人妖高潮视频| 美乳视频一区二区| 日本一道高清亚洲日美韩| 亚洲最新在线视频| 亚洲国产欧美自拍| 免费人成视频在线播放| 国产精品久久久久久麻豆一区软件 | 免费观看一级视频| 成人国产精品免费网站| 久久成人福利视频| 亚洲免费福利一区| 国产精品爱啪在线线免费观看| lutube成人福利在线观看| 91国产视频在线观看| 妖精视频在线观看免费| 国产在线精品一区二区不卡了| 好吊色视频988gao在线观看| 成人搞黄视频| 日本欧美一二三区| 欧美69xxxx| 精品欧美久久久| 视频一区二区三区四区五区| 中文字幕欧美国产| 日本黄色一级网站| 亚洲专区一区二区三区| 在线成人性视频| jizz久久精品永久免费| 日韩av电影免费观看高清| 麻豆av在线免费看| 亚洲国产精品va在看黑人| 99久久久无码国产精品免费蜜柚| 中文字幕中文字幕中文字幕亚洲无线| 超碰中文字幕在线观看| 日本1级在线| 国产午夜精品美女毛片视频| 天天干天天操天天做| 国产精品久久| 色阁综合av| 高清精品视频| 国产精品亚洲激情| 丁香花在线电影| 夜夜嗨av一区二区三区四区| www.天堂在线| 色一情一乱一乱一91av| 中文字幕电影av| 91天堂素人约啪| 深爱五月综合网| 久久精品亚洲| 日韩一二区视频| 精品不卡一区| 国产精品久久久久免费| 成人深夜福利| 26uuu久久噜噜噜噜| 黄色网页在线看| 亚洲人成电影在线| 成人乱码一区二区三区 | 深爱激情综合网| 成人av资源| 久久天天久久| 欧美在线一区二区视频| 日本无删减在线| 亚洲午夜久久| 国产成人啪精品视频免费网| 牛牛电影国产一区二区| 最新亚洲国产精品| 欧美老女人性开放| 亚洲第一免费网站| 国产绳艺sm调教室论坛| 91官网在线免费观看| 国产精品自拍视频一区| 亚洲免费在线看| 人成免费在线视频| 久久精品亚洲麻豆av一区二区 | 亚洲春色一区二区三区| 欧美日韩成人在线| 亚洲欧美日韩一区二区三区四区| 一级日本不卡的影视| 三级影片在线观看| 日本一区二区在线不卡| 美女100%无挡| 97成人超碰视| www.17c.com喷水少妇| 国产高清在线观看免费不卡| 亚洲精品永久视频| 蜜臀va亚洲va欧美va天堂 | 五月天综合激情| 亚洲一区二区三区小说| 九九精品视频免费| 国产精品成人午夜| 黄色录像免费观看| 国产精品久久精品日日| 老头老太做爰xxx视频| 久久精品综合网| 成人国产精品久久久网站| 久久欧美中文字幕| 亚洲一区二区三区四区五区六区| 99精品视频免费在线观看| 国产视频精品视频| 成人av免费网站| 草草地址线路①屁屁影院成人| 99视频一区二区| 日本xxx在线播放| 久久久久久久久99精品| 免费污网站在线观看| 日本一区二区在线不卡| 久久99久久99精品免费看小说| 亚洲欧洲韩国日本视频| 永久久久久久久| 夜夜嗨av一区二区三区中文字幕| 久久精品久久国产| 五月婷婷综合在线| 尤物视频免费观看| 欧美日本一区二区三区四区| 国产乱淫片视频| 精品国产污污免费网站入口| 日本国产在线观看| 亚洲美女av在线| 91xxx在线观看| 欧美超级乱淫片喷水| 都市激情国产精品| 国产精品久久久久久久久免费看 | av成人 com a| 国产91久久婷婷一区二区| 国产亚洲人成a在线v网站| 97超碰最新| 综合干狼人综合首页| 亚洲成人精品电影在线观看| 综合天堂久久久久久久| 国产一区二区在线视频播放| 日本vs亚洲vs韩国一区三区| 黑人巨大猛交丰满少妇| 99久久er热在这里只有精品15| 天天舔天天操天天干| 亚洲在线一区二区三区| 一二三区免费视频| 欧美一级理论片| 可以在线观看的av网站| 久久中文精品视频| 老色鬼在线视频| 国产精品专区第二| 视频免费一区二区| 日本一区二区三区视频在线观看 | 黑森林福利视频导航| 国产真实乱子伦精品视频| 亚洲精品在线视频免费观看 | 激情综合网五月婷婷| 欧美综合一区二区| 人妻一区二区三区免费| 最近2019中文字幕一页二页| 成人ssswww在线播放| 成人黄色中文字幕| 偷拍一区二区| 日本天堂免费a| 久久久精品午夜少妇| 无码任你躁久久久久久老妇| 日韩在线视屏| 国产欧美久久久久| 美女免费视频一区| 国产传媒第一页| 亚洲一区二区精品3399| 在线播放一级片| 日韩精品丝袜在线| 男女视频在线| 成人做爰www免费看视频网站| 免费黄色成人| 日韩欧美一区二| 国产成人免费网站| 国产精品国产三级国产传播| 在线影院国内精品| 日韩有码电影| 久久久噜噜噜久久久| 精品视频91| 伊人久久99| 久久国内精品视频| 少妇av片在线观看| 色综合天天综合给合国产| 色噜噜一区二区三区| 欧美国产中文字幕| 国产精品国产亚洲精品| 这里只有精品66| 男男成人高潮片免费网站| 久久久久久久久久久国产精品| 偷拍与自拍一区| 欧美一级一区二区三区| 久久99精品久久久久久琪琪| 国产在线不卡一区二区三区| 在线观看欧美激情| 精品一区二区三区在线播放视频| 国产jizz18女人高潮| 欧美视频中文字幕| 91精品大全| 国产有码一区二区| 久久久久蜜桃| 中文字幕在线视频一区二区| 亚洲四区在线观看| 99精品国产99久久久久久97| 久久国产精品首页| 日韩中文字幕一区二区高清99| 中文字幕色呦呦| 色开心亚洲综合| 日韩日本欧美亚洲| 国产在视频一区二区三区吞精| 性欧美videosex高清少妇| 日韩和欧美一区二区三区| 久久久久无码精品国产sm果冻| 色94色欧美sute亚洲线路一ni| 国产精品久久久久久久龚玥菲| 国产精品福利在线观看| 久久中文亚洲字幕| 久久久精品视频国产| 亚洲午夜一区二区三区| 天堂在线资源库| 欧洲亚洲在线视频| 精品国产乱码久久久久久果冻传媒| 国产视频一区二区视频| 国产精品久久久久一区| 国产成人a人亚洲精品无码| 久久69精品久久久久久国产越南| ccyy激情综合| 国产精品亚洲二区在线观看| 国产精品久久久久久亚洲伦| aa视频在线免费观看| 国模吧一区二区| 精品国产91乱码一区二区三区四区| www.超碰97.com| 亚洲影视在线观看| 九色视频在线观看免费播放| 国产欧美久久久久久| 欧美日本一区二区视频在线观看| 男人的天堂影院| 欧美亚洲一区二区在线观看| 50度灰在线| 久久国产精品高清| 经典三级在线一区| 日本三级黄色大片| 伊人久久久久久久久久久| 精品一区二区三区亚洲| 久久久久久久久久久视频| 国产精品不卡一区二区三区| 色哟哟国产精品色哟哟| 国产精品中文字幕在线| 亚洲大片av| a级黄色免费视频| 精品福利av导航| 欧美成人家庭影院| 男人用嘴添女人下身免费视频| 国产精品第五页| 动漫av一区二区三区| 中文字幕精品三区|