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

十分鐘搞定Keras序列到序列學(xué)習(xí)(附代碼實現(xiàn))

開發(fā) 開發(fā)工具
如何在 Keras 中實現(xiàn) RNN 序列到序列學(xué)習(xí)?本文中,作者將嘗試對這一問題做出簡短解答。

如何在 Keras 中實現(xiàn) RNN 序列到序列學(xué)習(xí)?本文中,作者將嘗試對這一問題做出簡短解答;本文預(yù)設(shè)你已有一些循環(huán)網(wǎng)絡(luò)和 Keras 的使用經(jīng)驗。

GitHub:https://github.com/fchollet/keras/blob/master/examples/lstm_seq2seq.py

什么是序列到序列學(xué)習(xí)?

序列到序列學(xué)習(xí)(Seq2Seq)是指訓(xùn)練模型從而把一個域的序列(比如英語語句)轉(zhuǎn)化為另一個域的序列(比如法語中的對應(yīng)語句)。

  1. "the cat sat on the mat"->[Seq2Seqmodel]->"le chat etait assis sur le tapis" 

Seq2Seq 可用于機器翻譯或者省去問題回答——通常來講,它可以隨時生成文本。完成這一任務(wù)有很多方式,比如 RNN 或一維卷積。本文只介紹 RNN。

次要案例:當(dāng)輸入序列和輸出序列長度相同

當(dāng)輸入序列和輸出序列長度相同時,你可以通過 Keras LSTM 或者 GRU 層(或者其中的堆棧)簡單地實現(xiàn)模型。這一實例腳本中的案例展示了如何教會 RNN 學(xué)習(xí)添加被編碼為字符串的數(shù)字:

一般案例:標(biāo)準(zhǔn)的 Seq2Seq

一般情況下,輸入序列和輸出序列有不同的長度(比如機器翻譯)。這就需要一個更高級的設(shè)置,尤其在沒有進一步語境的「序列到序列模型」時。下面是其工作原理:

  • 一個 RNN 層(或其中的堆棧)作為「編碼器」:它處理輸入序列并反饋其內(nèi)部狀態(tài)。注意我們拋棄了編碼器 RNN 的輸出,只恢復(fù)其狀態(tài)。該狀態(tài)在下一步中充當(dāng)解碼器的「語境」。
  • 另一個 RNN 層作為「解碼器」:在給定目標(biāo)序列先前字母的情況下,它被訓(xùn)練以預(yù)測目標(biāo)序列的下一個字符。具體講,它被訓(xùn)練把目標(biāo)序列轉(zhuǎn)化為相同序列,但接下來被一個時間步抵消,這一訓(xùn)練過程在語境中被稱為「teacher forcing」。更重要的是,編碼器把其狀態(tài)向量用作初始狀態(tài),如此編碼器獲得了其將要生成的信息。實際上,在給定 targets[...t] 的情況下,解碼器學(xué)習(xí)生成 targets[t+1...],前提是在輸入序列上。

在推理模式中,即當(dāng)要解碼未知的輸入序列,我們完成了一個稍微不同的處理:

  1. 把輸入序列編碼進狀態(tài)向量
  2. 從大小為 1 的目標(biāo)序列開始
  3. 饋送狀態(tài)向量和 1 個字符的目標(biāo)序列到解碼器從而為下一字符生成預(yù)測
  4. 通過這些預(yù)測采樣下一個字符(我們使用 argmax)
  5. 把采樣的字符附加到目標(biāo)序列
  6. 不斷重復(fù)直至我們生成序列最后的字符或者達(dá)到字符的極限

相同的處理也可被用于訓(xùn)練沒有「teacher forcing」的 Seq2Seq 網(wǎng)絡(luò),即把解碼器的預(yù)測再注入到解碼器之中。

Keras 實例

讓我們用實際的代碼演示一下這些想法。

對于實例實現(xiàn),我們將使用一對英語語句及其法語翻譯的數(shù)據(jù)集,你可以從

http://www.manythings.org/anki/下載它,文件的名稱是 fra-eng.zip。我們將會實現(xiàn)一個字符級別的序列到序列模型,逐個字符地處理這些輸入并生成輸出。另一個選擇是單詞級別的模型,它對機器學(xué)習(xí)更常用。在本文最后,你會發(fā)現(xiàn)通過嵌入層把我們的模型轉(zhuǎn)化為單詞級別模型的一些注釋。

這是實例的全部腳本:

https://github.com/fchollet/keras/blob/master/examples/lstm_seq2seq.py。

下面是這一過程的總結(jié):

1. 把語句轉(zhuǎn)化為 3 個 Numpy 數(shù)組 encoder_input_data、decoder_input_data、decoder_target_data:

  • encoder_input_data 是一個形態(tài)的 3D 數(shù)組(num_pairs, max_english_sentence_length, num_english_characters),包含一個英語語句的獨熱向量化。
  • decoder_input_data 是一個形態(tài)的 3D 數(shù)組(num_pairs, max_french_sentence_length, num_french_characters),包含一個法語語句的獨熱向量化。
  • decoder_target_data 與 decoder_input_data 相同,但是被一個時間步抵消。decoder_target_data[:, t, :] 與 decoder_input_data[:, t + 1, :] 相同。

2. 在給定 encoder_input_data 和 decoder_input_data 的情況下,訓(xùn)練一個基本的基于 LSTM 的 Seq2Seq 模型以預(yù)測 decoder_target_data。我們的模型使用 teacher forcing。

3. 解碼一些語句以檢查模型正在工作。

由于訓(xùn)練過程和推理過程(解碼語句)相當(dāng)不同,我們使用了不同的模型,雖然兩者具有相同的內(nèi)在層。這是我們的模型,它利用了 Keras RNN 的 3 個關(guān)鍵功能:

  • return_state 構(gòu)造函數(shù)參數(shù)配置一個 RNN 層以反饋列表,其中第一個是其輸出,下一個是內(nèi)部的 RNN 狀態(tài)。這被用于恢復(fù)編碼器的狀態(tài)。
  • inital_state 調(diào)用參數(shù)指定一個 RNN 的初始狀態(tài),這被用于把編碼器狀態(tài)作為初始狀態(tài)傳遞至解碼器。
  • return_sequences 構(gòu)造函數(shù)參數(shù)配置一個 RNN 反饋輸出的全部序列。這被用在解碼器中。
  1. fromkeras.models importModel 
  2. fromkeras.layers importInput,LSTM,Dense 
  3. # Define an input sequence and process it. 
  4. encoder_inputs =Input(shape=(None,num_encoder_tokens)) 
  5. encoder =LSTM(latent_dim,return_state=True
  6. encoder_outputs,state_h,state_c =encoder(encoder_inputs) 
  7. # We discard `encoder_outputs` and only keep the states. 
  8. encoder_states =[state_h,state_c] 
  9. # Set up the decoder, using `encoder_states` as initial state. 
  10. decoder_inputs =Input(shape=(None,num_decoder_tokens)) 
  11. # We set up our decoder to return full output sequences, 
  12. # and to return internal states as well. We don't use the 
  13. # return states in the training model, but we will use them in inference. 
  14. decoder_lstm =LSTM(latent_dim,return_sequences=True,return_state=True
  15. decoder_outputs,_,_ =decoder_lstm(decoder_inputs, 
  16. initial_state=encoder_states
  17. decoder_dense =Dense(num_decoder_tokens,activation='softmax'
  18. decoder_outputs =decoder_dense(decoder_outputs) 
  19. # Define the model that will turn 
  20. # `encoder_input_data` & `decoder_input_data` into `decoder_target_data` 
  21. model =Model([encoder_inputs,decoder_inputs],decoder_outputs) 

我們用這兩行代碼訓(xùn)練模型,同時在 20% 樣本的留存集中監(jiān)測損失。

  1. # Run training 
  2. model.compile(optimizer='rmsprop',loss='categorical_crossentropy'
  3. model.fit([encoder_input_data,decoder_input_data],decoder_target_data, 
  4. batch_sizebatch_size=batch_size, 
  5. epochsepochs=epochs, 
  6. validation_split=0.2) 

大約 1 小時后在 MacBook CPU 上,我們已準(zhǔn)備好做推斷。為了解碼測試語句,我們將重復(fù):

編碼輸入語句,檢索初始解碼器狀態(tài)。

用初始狀態(tài)運行一步解碼器,以「序列開始」為目標(biāo)。輸出即是下一個目標(biāo)字符。

附加預(yù)測到的目標(biāo)字符并重復(fù)。

這是我們的推斷設(shè)置:

  1. encoder_model =Model(encoder_inputs,encoder_states) 
  2. decoder_state_input_h =Input(shape=(latent_dim,)) 
  3. decoder_state_input_c =Input(shape=(latent_dim,)) 
  4. decoder_states_inputs =[decoder_state_input_h,decoder_state_input_c] 
  5. decoder_outputs,state_h,state_c =decoder_lstm
  6. decoder_inputs,initial_state=decoder_states_inputs
  7. decoder_states =[state_h,state_c] 
  8. decoder_outputs =decoder_dense(decoder_outputs) 
  9. decoder_model =Model
  10. [decoder_inputs]+decoder_states_inputs, 
  11. [decoder_outputs]+decoder_states) 

我們使用它實現(xiàn)上述推斷循環(huán)(inference loop):

  1. defdecode_sequence(input_seq): 
  2. # Encode the input as state vectors. 
  3. states_value =encoder_model.predict(input_seq) 
  4. # Generate empty target sequence of length 1. 
  5. target_seq =np.zeros((1,1,num_decoder_tokens)) 
  6. # Populate the first character of target sequence with the start character. 
  7. target_seq[0,0,target_token_index['t']]=1. 
  8. # Sampling loop for a batch of sequences 
  9. # (to simplify, here we assume a batch of size 1). 
  10. stop_condition =False 
  11. decoded_sentence ='' 
  12. whilenotstop_condition: 
  13. output_tokens,h,c =decoder_model.predict( 
  14. [target_seq]+states_value) 
  15. # Sample a token 
  16. sampled_token_index =np.argmax(output_tokens[0,-1,:]) 
  17. sampled_char =reverse_target_char_index[sampled_token_index] 
  18. decoded_sentence +=sampled_char 
  19. # Exit condition: either hit max length 
  20. # or find stop character. 
  21. if(sampled_char =='n'or 
  22. len(decoded_sentence)>max_decoder_seq_length): 
  23. stop_condition =True 
  24. # Update the target sequence (of length 1). 
  25. target_seq =np.zeros((1,1,num_decoder_tokens)) 
  26. target_seq[0,0,sampled_token_index]=1. 
  27. # Update states 
  28. states_value =[h,c] 
  29. returndecoded_sentence 

我們得到了一些不錯的結(jié)果——這在意料之中,因為我們解碼的樣本來自訓(xùn)練測試。

  1. Inputsentence:Benice. 
  2. Decodedsentence:Soyezgentil ! 
  3. Inputsentence:Dropit! 
  4. Decodedsentence:Laisseztomber ! 
  5. Inputsentence:Getout! 
  6. Decodedsentence:Sortez ! 

這就是我們的十分鐘入門 Keras 序列到序列模型教程。完整代碼詳見 GitHub:

https://github.com/fchollet/keras/blob/master/examples/lstm_seq2seq.py。

常見問題

1. 我想使用 GRU 層代替 LSTM,應(yīng)該怎么做?

這實際上變簡單了,因為 GRU 只有一個狀態(tài),而 LSTM 有兩個狀態(tài)。這是使用 GRU 層適應(yīng)訓(xùn)練模型的方法:

  1. encoder_inputs =Input(shape=(None,num_encoder_tokens)) 
  2. encoder =GRU(latent_dim,return_state=True
  3. encoder_outputs,state_h =encoder(encoder_inputs) 
  4. decoder_inputs =Input(shape=(None,num_decoder_tokens)) 
  5. decoder_gru =GRU(latent_dim,return_sequences=True
  6. decoder_outputs =decoder_gru(decoder_inputs,initial_state=state_h
  7. decoder_dense =Dense(num_decoder_tokens,activation='softmax'
  8. decoder_outputs =decoder_dense(decoder_outputs) 
  9. model =Model([encoder_inputs,decoder_inputs],decoder_outputs) 

2. 我想使用整數(shù)序列的單詞級別模型,應(yīng)該怎么做?

如果你的輸入是整數(shù)序列(如按詞典索引編碼的單詞序列),你可以通過 Embedding 層嵌入這些整數(shù)標(biāo)記。方法如下:

  1. # Define an input sequence and process it. 
  2. encoder_inputs =Input(shape=(None,)) 
  3. x =Embedding(num_encoder_tokens,latent_dim)(encoder_inputs) 
  4. x,state_h,state_c =LSTM(latent_dim, 
  5. return_state=True)(x) 
  6. encoder_states =[state_h,state_c] 
  7. # Set up the decoder, using `encoder_states` as initial state. 
  8. decoder_inputs =Input(shape=(None,)) 
  9. x =Embedding(num_decoder_tokens,latent_dim)(decoder_inputs) 
  10. x =LSTM(latent_dim,return_sequences=True)(x,initial_state=encoder_states
  11. decoder_outputs =Dense(num_decoder_tokens,activation='softmax')(x) 
  12. # Define the model that will turn 
  13. # `encoder_input_data` & `decoder_input_data` into `decoder_target_data` 
  14. model =Model([encoder_inputs,decoder_inputs],decoder_outputs) 
  15. # Compile & run training 
  16. model.compile(optimizer='rmsprop',loss='categorical_crossentropy'
  17. # Note that `decoder_target_data` needs to be one-hot encoded, 
  18. # rather than sequences of integers like `decoder_input_data`! 
  19. model.fit([encoder_input_data,decoder_input_data],decoder_target_data, 
  20. batch_sizebatch_size=batch_size, 
  21. epochsepochs=epochs, 
  22. validation_split=0.2) 

3. 如果我不想使用「teacher forcing」,應(yīng)該怎么做?

一些案例中可能不能使用 teacher forcing,因為你無法獲取完整的目標(biāo)序列,比如,在線訓(xùn)練非常長的語句,則緩沖完成輸入-目標(biāo)語言對是不可能的。在這種情況下,你要通過將解碼器的預(yù)測重新注入解碼器輸入進行訓(xùn)練,就像我們進行推斷時所做的那樣。

你可以通過構(gòu)建硬編碼輸出再注入循環(huán)(output reinjection loop)的模型達(dá)到該目標(biāo):

  1. fromkeras.layers importLambda 
  2. fromkeras importbackend asK 
  3. # The first part is unchanged 
  4. encoder_inputs =Input(shape=(None,num_encoder_tokens)) 
  5. encoder =LSTM(latent_dim,return_state=True
  6. encoder_outputs,state_h,state_c =encoder(encoder_inputs) 
  7. states =[state_h,state_c] 
  8. # Set up the decoder, which will only process one timestep at a time. 
  9. decoder_inputs =Input(shape=(1,num_decoder_tokens)) 
  10. decoder_lstm =LSTM(latent_dim,return_sequences=True,return_state=True
  11. decoder_dense =Dense(num_decoder_tokens,activation='softmax'
  12. all_outputs =[] 
  13. inputs =decoder_inputs 
  14. for_ inrange(max_decoder_seq_length): 
  15. # Run the decoder on one timestep 
  16. outputs,state_h,state_c =decoder_lstm(inputs, 
  17. initial_state=states
  18. outputs =decoder_dense(outputs) 
  19. # Store the current prediction (we will concatenate all predictions later) 
  20. all_outputs.append(outputs) 
  21. # Reinject the outputs as inputs for the next loop iteration 
  22. # as well as update the states 
  23. inputs =outputs 
  24. states =[state_h,state_c] 
  25. # Concatenate all predictions 
  26. decoder_outputs =Lambda(lambdax:K.concatenate(x,axis=1))(all_outputs) 
  27. # Define and compile model as previously 
  28. model =Model([encoder_inputs,decoder_inputs],decoder_outputs) 
  29. model.compile(optimizer='rmsprop',loss='categorical_crossentropy'
  30. # Prepare decoder input data that just contains the start character 
  31. # Note that we could have made it a constant hard-coded in the model 
  32. decoder_input_data =np.zeros((num_samples,1,num_decoder_tokens)) 
  33. decoder_input_data[:,0,target_token_index['t']]=1. 
  34. # Train model as previously 
  35. model.fit([encoder_input_data,decoder_input_data],decoder_target_data, 
  36. batch_sizebatch_size=batch_size, 
  37. epochsepochs=epochs, 
  38. validation_split=0.2) 

原文:

https://blog.keras.io/a-ten-minute-introduction-to-sequence-to-sequence-learning-in-keras.html

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

 

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

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2023-04-12 11:18:51

甘特圖前端

2023-11-30 10:21:48

虛擬列表虛擬列表工具庫

2023-12-08 13:19:00

前端Reactour流行庫

2023-12-21 11:39:47

2020-12-17 06:48:21

SQLkafkaMySQL

2019-04-01 14:59:56

負(fù)載均衡服務(wù)器網(wǎng)絡(luò)

2023-12-11 13:05:21

2024-06-19 09:58:29

2022-06-16 07:31:41

Web組件封裝HTML 標(biāo)簽

2021-09-07 09:40:20

Spark大數(shù)據(jù)引擎

2023-12-13 13:26:41

2024-05-13 09:28:43

Flink SQL大數(shù)據(jù)

2015-09-06 09:22:24

框架搭建快速高效app

2012-07-10 01:22:32

PythonPython教程

2024-11-07 16:09:53

2022-08-26 09:01:07

CSSFlex 布局

2023-07-15 18:26:51

LinuxABI

2009-10-09 14:45:29

VB程序

2019-09-16 09:14:51

2015-11-06 11:03:36

點贊
收藏

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

亚洲欧美制服另类日韩| 亚州成人在线电影| 亚洲一区二区三区视频播放| 精品97人妻无码中文永久在线 | 91日本视频在线| 久草视频在线免费看| 日韩在线黄色| 欧美精品乱人伦久久久久久| 国产一线二线三线女| 精品乱码一区二区三四区视频| 奇米色一区二区| 欧美国产乱视频| 91久久免费视频| 精品视频在线一区| 91久久精品日日躁夜夜躁欧美| 中文字幕一区二区三区5566| 亚洲av片一区二区三区| 日产国产欧美视频一区精品| 欧美激情中文网| 成人性视频免费看| 国产欧美一区二区三区米奇| 欧美视频在线观看一区| 国产高清av在线播放| 六十路在线观看| 国产jizzjizz一区二区| 国产精品久久77777| 日本免费一二三区| 亚洲一区欧美| 亚洲一区二区久久| 国产在线不卡av| 国产精品日本一区二区不卡视频| 色婷婷久久综合| 人妻无码久久一区二区三区免费| 免费黄网站在线播放| 久久久美女毛片| 91亚洲精华国产精华| 亚洲精品无码久久久久| 香蕉成人久久| 韩国精品久久久999| 九九视频免费看| 亚洲精品久久| 色妞色视频一区二区三区四区| 国产精品毛片一区二区| 老汉色老汉首页av亚洲| 精品999在线播放| 亚洲丝袜在线观看| 国产一区二区视频在线看| 欧美日韩一卡二卡三卡 | 国产精品一区二区在线观看网站| 国产精品流白浆视频| 亚洲乱码国产乱码精品| 国产日韩专区| 国产91ⅴ在线精品免费观看| 久久亚洲av午夜福利精品一区| 一区二区三区四区在线观看国产日韩| 中文字幕v亚洲ⅴv天堂| 亚洲精品午夜视频| 精品国产一区二区三区噜噜噜| 日韩成人黄色av| 99久久免费看精品国产一区| 精品国产午夜肉伦伦影院| 欧美精品一区二区三区在线 | 久久人人97超碰com| 久久天天狠狠| 国产三级在线免费| 亚洲国产高清不卡| 亚洲图片欧洲图片日韩av| 1区2区3区在线观看| 国产精品卡一卡二| 在线观看欧美激情| 制服丝袜中文字幕在线| 亚洲图片欧美综合| 欧美 国产 综合| 美女的胸无遮挡在线观看| 午夜视频一区在线观看| 黄色片一级视频| а√天堂资源国产精品| 91精品久久久久久蜜臀| 欧美熟妇精品一区二区| 精品网站aaa| 国产亚洲欧洲高清一区| 国产精品久久国产精麻豆96堂| 小小影院久久| 韩国三级电影久久久久久| 国产精品一区无码| 久久超碰97中文字幕| 91久久偷偷做嫩草影院| 亚洲欧美日韩免费| 国产丝袜美腿一区二区三区| 在线精品日韩| 丰满的护士2在线观看高清| 日韩欧美aaa| 国产美女视频免费看| youjizz亚洲| 亚洲网站视频福利| 国产成人无码aa精品一区| 亚洲欧美日韩国产| 成人a视频在线观看| 午夜一区在线观看| 国产网站一区二区| 欧美日韩视频免费| 天天免费亚洲黑人免费| 日韩无一区二区| 人妻av无码一区二区三区| 91精品国产调教在线观看| 91精品国产高清自在线看超| 一级黄色大片网站| 99riav久久精品riav| 一本久道久久综合| 亚洲第一av| 4438成人网| 亚洲自拍偷拍一区二区| 欧美一区亚洲| 国产精品丝袜视频| 亚洲区小说区图片区| 成人免费视频在线观看| 日韩av播放器| 精品久久ai| 欧美xxxx做受欧美.88| 日韩国产成人在线| 99久精品国产| 91精品国产吴梦梦| 欧美91在线|欧美| 亚洲欧美日韩在线高清直播| 国产真实夫妇交换视频| 国内欧美视频一区二区| 午夜免费电影一区在线观看| 国产高清自产拍av在线| 欧美一卡二卡在线| 青青操在线视频观看| 蜜乳av另类精品一区二区| 国产欧美一区二区在线播放| 日本成a人片在线观看| 在线观看成人免费视频| 成人h动漫精品一区| 伊人久久大香线蕉综合热线| 91久久精品美女| 91在线视频免费看| 在线精品亚洲一区二区不卡| 一卡二卡三卡四卡| 99亚洲一区二区| 国产区欧美区日韩区| 午夜伦理大片视频在线观看| 91麻豆精品国产91久久久久久久久 | 日韩欧美视频免费在线观看| 日韩国产一二三区| xvideos成人免费中文版| 波多野结衣视频在线观看| 久久―日本道色综合久久| av动漫在线观看| 婷婷亚洲精品| 青青草精品毛片| 四虎精品成人影院观看地址| 亚洲一区二区三区四区在线免费观看 | 亚洲国产欧美日韩| jizzyou欧美16| 色婷婷综合久久久久| 11024精品一区二区三区日韩| 国产精品视频一二三区| 亚洲欧美在线精品| 久久亚洲专区| 亚洲自拍在线观看| 福利小视频在线| 亚洲精品720p| 国产免费a视频| 国产精品拍天天在线| 色婷婷综合网站| 亚洲色图国产| 国产精品一国产精品最新章节| 国产99re66在线视频| 日韩av在线看| 一级黄色在线观看| 最新日韩av在线| 精人妻一区二区三区| 国产视频久久| 午夜精品一区二区三区在线观看| 亚洲男男av| 久久久久久国产精品久久| 日本福利片在线| 欧美日韩久久不卡| 久久久久噜噜噜亚洲熟女综合| 99久久伊人网影院| 在线黄色免费观看| 黑人一区二区三区四区五区| 蜜桃传媒视频麻豆第一区免费观看| 天天综合网站| 欧美成人网在线| 亚洲欧洲综合在线| 欧美精品日日鲁夜夜添| 国产精品18p| 国产色产综合产在线视频| www激情五月| 久久精品道一区二区三区| 椎名由奈jux491在线播放| 电影一区二区在线观看| 国产精品视频久久久| 欧美性猛片xxxxx免费中国 | av黄色在线| 精品视频一区在线视频| 国产男男gay体育生网站| 欧美日韩免费区域视频在线观看| 手机免费观看av| 99在线精品一区二区三区| 999精彩视频| 在线亚洲自拍| 一二三四中文字幕| 久久99精品久久久久久园产越南| 亚洲在线观看视频| 欧美电影免费观看| 久久免费视频观看| 巨大荫蒂视频欧美大片| 亚洲欧洲激情在线| 午夜精品久久久久久久96蜜桃| 在线中文字幕一区| 国产精品午夜影院| 亚洲女人小视频在线观看| 欧美做受xxxxxⅹ性视频| 国产99久久久国产精品| 视频免费1区二区三区| 久久久久中文| 成人毛片一区二区| 欧美深夜福利| 青少年xxxxx性开放hg| 欧洲毛片在线视频免费观看| 久久99精品国产99久久| 亚洲综合网站| 91在线免费网站| 久久婷婷五月综合色丁香| 国产成人精品av| 在线看片福利| 91av在线播放| 97人人爽人人澡人人精品| 欧美激情按摩在线| 综合图区亚洲| 欧美精品一区在线播放| 久cao在线| 久久亚洲影音av资源网| av免费观看一区二区| 一本色道久久88综合日韩精品| 午夜视频在线播放| 日韩精品一区二区三区第95| 亚洲精品久久久久avwww潮水| 欧美日本在线观看| 国产又粗又黄又爽视频| 欧美人动与zoxxxx乱| 日韩欧美一级大片| 欧美性视频一区二区三区| 黄色av一级片| 一本一道综合狠狠老| 精品免费囯产一区二区三区| 欧美日韩中文字幕日韩欧美| 成人毛片在线播放| 色哟哟国产精品| 天堂网一区二区| 欧美手机在线视频| 国产毛片毛片毛片毛片| 日韩一区二区三区免费看| 精品人妻一区二区三区换脸明星| 日韩视频中午一区| 日韩在线视频观看免费| 精品亚洲aⅴ在线观看| 免费在线观看污视频| 亚洲系列中文字幕| 免费在线午夜视频| 欧美成在线视频| 丰满的护士2在线观看高清| 91精品国产一区| 韩国成人在线| 成人信息集中地欧美| 1204国产成人精品视频| 久久国产精品久久精品国产| 经典一区二区| 99热这里只有精品7| 黑丝一区二区三区| 久久精品一区二| 精品一区精品二区高清| 在线观看一区二区三区四区| 99精品视频中文字幕| 国产精品成人无码免费| 亚洲欧美区自拍先锋| 黄色激情视频在线观看| 91国产丝袜在线播放| 97久久人国产精品婷婷| 亚洲国产另类久久精品| 久草在线青青草| 欧美不卡视频一区发布| 性欧美18xxxhd| 国产伦精品一区二区三区精品视频| 麻豆一区在线| 日本在线观看一区二区| 欧美福利一区| 久久久久久香蕉| 国产精品一级片| 无码人妻精品一区二区中文| 亚洲免费观看高清完整版在线| 久久国产视频播放| 91精品国产综合久久香蕉的特点| 亚洲欧美自偷自拍| 久久精品国产成人| www.成人影院| av激情久久| 久久中文字幕av| 日本三级免费网站| 国产成人av福利| 阿v天堂2014| 天天做天天摸天天爽国产一区| 亚洲特级黄色片| 亚洲精品日韩在线| 香蕉久久aⅴ一区二区三区| 国产精品电影网站| 群体交乱之放荡娇妻一区二区 | 中文字幕第4页| 一区二区三区自拍| 99成人精品视频| 日韩精品在线免费| 欧美草逼视频| 91九色蝌蚪国产| 精品国产一区二区三区久久久蜜臀| 69sex久久精品国产麻豆| 韩国精品一区二区| 极品蜜桃臀肥臀-x88av| 精品动漫一区二区三区| 国产浮力第一页| 精品国产一区二区在线| 日韩精选视频| 欧美一区二区综合| 国产婷婷精品| xxxx黄色片| 亚洲午夜精品一区二区三区他趣| 国产精品伦理一区| 中文字幕精品视频| 精品成人av| 青青草久久网络| 蜜桃视频一区| 中文字幕被公侵犯的漂亮人妻| 天天综合日日夜夜精品| 老熟妇高潮一区二区高清视频| 欧美xxxx综合视频| 视频欧美一区| 欧美 日韩 国产精品| 国产精品一二一区| 久久久久久久久久网站| 777奇米四色成人影色区| 在线观看完整版免费| 国产美女被下药99| 久久精品青草| 992kp免费看片| 亚洲人成伊人成综合网小说| 国产精品伦理一区| 欧美高清电影在线看| 亚洲一二三区视频| 又大又硬又爽免费视频| heyzo一本久久综合| 丰满少妇乱子伦精品看片| 日韩的一区二区| 久久野战av| 在线免费一区| 国产传媒一区在线| 中文字幕在线字幕中文| 日韩精品亚洲精品| 深夜视频一区二区| 亚洲欧美国产一区二区| 国产真实精品久久二三区| 三级影片在线看| 亚洲成在人线av| 成人欧美大片| 一区二区三区四区| 国产福利电影一区二区三区| 国产精久久久久久| 亚洲欧美日韩中文在线| 成人一级视频| 日韩精品久久一区二区| 99在线热播精品免费| 亚洲精品一区二区二区| 另类视频在线观看| 美女扒开腿让男人桶爽久久动漫| 欧美一级片中文字幕| 国产精品嫩草久久久久| 精品人妻一区二区三区含羞草| 97成人在线视频| 久久亚洲国产| 美女久久久久久久久| 欧美伊人久久久久久午夜久久久久| 国产在线看片| 美日韩精品免费| 狠狠狠色丁香婷婷综合激情| 国产精品第108页| 中日韩美女免费视频网站在线观看| 欧美影院在线| 日韩一级在线免费观看| 亚洲理论在线观看| 免费毛片在线| www久久99| 日本不卡在线视频| 国产无遮挡裸体免费视频| 中文国产成人精品久久一| 99精品国产高清一区二区麻豆| www.色偷偷.com| 亚洲成人黄色影院| 麻豆影院在线观看|