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

TensorFlow中RNN實(shí)現(xiàn)的正確打開方式

人工智能 深度學(xué)習(xí)
這篇文章提供了一個(gè)學(xué)習(xí)TensorFlow RNN實(shí)現(xiàn)的詳細(xì)路徑,其中包括了學(xué)習(xí)順序、可能會(huì)踩的坑、源碼分析以及一個(gè)示例項(xiàng)目hzy46/Char-RNN-TensorFlow,希望能對(duì)大家有所幫助。

[[198810]]

這篇文章的主要內(nèi)容為如何在TensorFlow中實(shí)現(xiàn)RNN的幾種結(jié)構(gòu):

  • 一個(gè)完整的、循序漸進(jìn)的學(xué)習(xí)TensorFlow中RNN實(shí)現(xiàn)的方法。這個(gè)學(xué)習(xí)路徑的曲線較為平緩,應(yīng)該可以減少不少學(xué)習(xí)精力,幫助大家少走彎路。
  • 一些可能會(huì)踩的坑
  • TensorFlow源碼分析
  • 一個(gè)Char RNN實(shí)現(xiàn)示例,可以用來寫詩,生成歌詞,甚至可以用來寫網(wǎng)絡(luò)小說!

一、學(xué)習(xí)單步的RNN:RNNCell

如果要學(xué)習(xí)TensorFlow中的RNN,***站應(yīng)該就是去了解“RNNCell”,它是TensorFlow中實(shí)現(xiàn)RNN的基本單元,每個(gè)RNNCell都有一個(gè)call方法,使用方式是:(output, next_state) = call(input, state)。

借助圖片來說可能更容易理解。假設(shè)我們有一個(gè)初始狀態(tài)h0,還有輸入x1,調(diào)用call(x1, h0)后就可以得到(output1, h1):

 

再調(diào)用一次call(x2, h1)就可以得到(output2, h2):

 

也就是說,每調(diào)用一次RNNCell的call方法,就相當(dāng)于在時(shí)間上“推進(jìn)了一步”,這就是RNNCell的基本功能。

在代碼實(shí)現(xiàn)上,RNNCell只是一個(gè)抽象類,我們用的時(shí)候都是用的它的兩個(gè)子類BasicRNNCell和BasicLSTMCell。顧名思義,前者是RNN的基礎(chǔ)類,后者是LSTM的基礎(chǔ)類。這里推薦大家閱讀其源碼實(shí)現(xiàn),一開始并不需要全部看一遍,只需要看下RNNCell、BasicRNNCell、BasicLSTMCell這三個(gè)類的注釋部分,應(yīng)該就可以理解它們的功能了。

除了call方法外,對(duì)于RNNCell,還有兩個(gè)類屬性比較重要:

  • state_size
  • output_size

前者是隱層的大小,后者是輸出的大小。比如我們通常是將一個(gè)batch送入模型計(jì)算,設(shè)輸入數(shù)據(jù)的形狀為(batch_size, input_size),那么計(jì)算時(shí)得到的隱層狀態(tài)就是(batch_size, state_size),輸出就是(batch_size, output_size)。

可以用下面的代碼驗(yàn)證一下(注意,以下代碼都基于TensorFlow***的1.2版本):

  1. import tensorflow as tf 
  2. import numpy as np 
  3.  
  4. cell = tf.nn.rnn_cell.BasicRNNCell(num_units=128) # state_size = 128 
  5. print(cell.state_size) # 128 
  6.  
  7. inputs = tf.placeholder(np.float32, shape=(32, 100)) # 32 是 batch_size 
  8. h0 = cell.zero_state(32, np.float32) # 通過zero_state得到一個(gè)全0的初始狀態(tài),形狀為(batch_size, state_size) 
  9. output, h1 = cell.call(inputs, h0) #調(diào)用call函數(shù) 
  10.  
  11. print(h1.shape) # (32, 128)  

對(duì)于BasicLSTMCell,情況有些許不同,因?yàn)長(zhǎng)STM可以看做有兩個(gè)隱狀態(tài)h和c,對(duì)應(yīng)的隱層就是一個(gè)Tuple,每個(gè)都是(batch_size, state_size)的形狀:

  1. import tensorflow as tf 
  2. import numpy as np 
  3. lstm_cell = tf.nn.rnn_cell.BasicLSTMCell(num_units=128) 
  4. inputs = tf.placeholder(np.float32, shape=(32, 100)) # 32 是 batch_size 
  5. h0 = lstm_cell.zero_state(32, np.float32) # 通過zero_state得到一個(gè)全0的初始狀態(tài) 
  6. output, h1 = lstm_cell.call(inputs, h0) 
  7.  
  8. print(h1.h)  # shape=(32, 128) 
  9. print(h1.c)  # shape=(32, 128)  

二、學(xué)習(xí)如何一次執(zhí)行多步:tf.nn.dynamic_rnn

基礎(chǔ)的RNNCell有一個(gè)很明顯的問題:對(duì)于單個(gè)的RNNCell,我們使用它的call函數(shù)進(jìn)行運(yùn)算時(shí),只是在序列時(shí)間上前進(jìn)了一步。比如使用x1、h0得到h1,通過x2、h1得到h2等。這樣的h話,如果我們的序列長(zhǎng)度為10,就要調(diào)用10次call函數(shù),比較麻煩。對(duì)此,TensorFlow提供了一個(gè)tf.nn.dynamic_rnn函數(shù),使用該函數(shù)就相當(dāng)于調(diào)用了n次call函數(shù)。即通過{h0,x1, x2, …., xn}直接得{h1,h2…,hn}。

具體來說,設(shè)我們輸入數(shù)據(jù)的格式為(batch_size, time_steps, input_size),其中time_steps表示序列本身的長(zhǎng)度,如在Char RNN中,長(zhǎng)度為10的句子對(duì)應(yīng)的time_steps就等于10。***的input_size就表示輸入數(shù)據(jù)單個(gè)序列單個(gè)時(shí)間維度上固有的長(zhǎng)度。另外我們已經(jīng)定義好了一個(gè)RNNCell,調(diào)用該RNNCell的call函數(shù)time_steps次,對(duì)應(yīng)的代碼就是:

  1. # inputs: shape = (batch_size, time_steps, input_size)  
  2. # cell: RNNCell 
  3. # initial_state: shape = (batch_size, cell.state_size)。初始狀態(tài)。一般可以取零矩陣 
  4. outputs, state = tf.nn.dynamic_rnn(cell, inputs, initial_state=initial_state)  

此時(shí),得到的outputs就是time_steps步里所有的輸出。它的形狀為(batch_size, time_steps, cell.output_size)。state是***一步的隱狀態(tài),它的形狀為(batch_size, cell.state_size)。

此處建議大家閱讀tf.nn.dynamic_rnn的文檔做進(jìn)一步了解。

三、學(xué)習(xí)如何堆疊RNNCell:MultiRNNCell

很多時(shí)候,單層RNN的能力有限,我們需要多層的RNN。將x輸入***層RNN的后得到隱層狀態(tài)h,這個(gè)隱層狀態(tài)就相當(dāng)于第二層RNN的輸入,第二層RNN的隱層狀態(tài)又相當(dāng)于第三層RNN的輸入,以此類推。在TensorFlow中,可以使用tf.nn.rnn_cell.MultiRNNCell函數(shù)對(duì)RNNCell進(jìn)行堆疊,相應(yīng)的示例程序如下:

  1. import tensorflow as tf 
  2. import numpy as np 
  3.  
  4. # 每調(diào)用一次這個(gè)函數(shù)就返回一個(gè)BasicRNNCell 
  5. def get_a_cell(): 
  6.     return tf.nn.rnn_cell.BasicRNNCell(num_units=128) 
  7. # 用tf.nn.rnn_cell MultiRNNCell創(chuàng)建3層RNN 
  8. cell = tf.nn.rnn_cell.MultiRNNCell([get_a_cell() for _ in range(3)]) # 3層RNN 
  9. # 得到的cell實(shí)際也是RNNCell的子類 
  10. # 它的state_size是(128, 128, 128) 
  11. # (128, 128, 128)并不是128x128x128的意思 
  12. # 而是表示共有3個(gè)隱層狀態(tài),每個(gè)隱層狀態(tài)的大小為128 
  13. print(cell.state_size) # (128, 128, 128) 
  14. # 使用對(duì)應(yīng)的call函數(shù) 
  15. inputs = tf.placeholder(np.float32, shape=(32, 100)) # 32 是 batch_size 
  16. h0 = cell.zero_state(32, np.float32) # 通過zero_state得到一個(gè)全0的初始狀態(tài) 
  17. output, h1 = cell.call(inputs, h0) 
  18. print(h1) # tuple中含有3個(gè)32x128的向量  

通過MultiRNNCell得到的cell并不是什么新鮮事物,它實(shí)際也是RNNCell的子類,因此也有call方法、state_size和output_size屬性。同樣可以通過tf.nn.dynamic_rnn來一次運(yùn)行多步。

此處建議閱讀MutiRNNCell源碼中的注釋進(jìn)一步了解其功能。

四、可能遇到的坑1:Output說明

在經(jīng)典RNN結(jié)構(gòu)中有這樣的圖:

 

在上面的代碼中,我們好像有意忽略了調(diào)用call或dynamic_rnn函數(shù)后得到的output的介紹。將上圖與TensorFlow的BasicRNNCell對(duì)照來看。h就對(duì)應(yīng)了BasicRNNCell的state_size。那么,y是不是就對(duì)應(yīng)了BasicRNNCell的output_size呢?答案是否定的。

找到源碼中BasicRNNCell的call函數(shù)實(shí)現(xiàn):

  1. def call(self, inputs, state): 
  2.     """Most basic RNN: output = new_state = act(W * input + U * state + B).""" 
  3.     output = self._activation(_linear([inputs, state], self._num_units, True)) 
  4.     return outputoutput  

這句“return output, output”說明在BasicRNNCell中,output其實(shí)和隱狀態(tài)的值是一樣的。因此,我們還需要額外對(duì)輸出定義新的變換,才能得到圖中真正的輸出y。由于output和隱狀態(tài)是一回事,所以在BasicRNNCell中,state_size永遠(yuǎn)等于output_size。TensorFlow是出于盡量精簡(jiǎn)的目的來定義BasicRNNCell的,所以省略了輸出參數(shù),我們這里一定要弄清楚它和圖中原始RNN定義的聯(lián)系與區(qū)別。

再來看一下BasicLSTMCell的call函數(shù)定義(函數(shù)的***幾行):

  1. new_c = ( 
  2.     c * sigmoid(f + self._forget_bias) + sigmoid(i) * self._activation(j)) 
  3. new_h = self._activation(new_c) * sigmoid(o) 
  4.  
  5. if self._state_is_tuple: 
  6.   new_state = LSTMStateTuple(new_c, new_h) 
  7. else
  8.   new_state = array_ops.concat([new_c, new_h], 1) 
  9. return new_h, new_state  

我們只需要關(guān)注self._state_is_tuple == True的情況,因?yàn)閟elf._state_is_tuple == False的情況將在未來被棄用。返回的隱狀態(tài)是new_c和new_h的組合,而output就是單獨(dú)的new_h。如果我們處理的是分類問題,那么我們還需要對(duì)new_h添加單獨(dú)的Softmax層才能得到***的分類概率輸出。

還是建議大家親自看一下源碼實(shí)現(xiàn)來搞明白其中的細(xì)節(jié)。

五、可能遇到的坑2:因版本原因引起的錯(cuò)誤

在前面我們講到堆疊RNN時(shí),使用的代碼是:

  1. # 每調(diào)用一次這個(gè)函數(shù)就返回一個(gè)BasicRNNCell 
  2. def get_a_cell(): 
  3.     return tf.nn.rnn_cell.BasicRNNCell(num_units=128) 
  4. # 用tf.nn.rnn_cell MultiRNNCell創(chuàng)建3層RNN 
  5. cell = tf.nn.rnn_cell.MultiRNNCell([get_a_cell() for _ in range(3)]) # 3層RNN  

這個(gè)代碼在TensorFlow 1.2中是可以正確使用的。但在之前的版本中(以及網(wǎng)上很多相關(guān)教程),實(shí)現(xiàn)方式是這樣的:

  1. one_cell = tf.nn.rnn_cell.BasicRNNCell(num_units=128) 
  2.  
  3. cell = tf.nn.rnn_cell.MultiRNNCell([one_cell] * 3) # 3層RNN  

如果在TensorFlow 1.2中還按照原來的方式定義,就會(huì)引起錯(cuò)誤!

六、一個(gè)練手項(xiàng)目:Char RNN

上面的內(nèi)容實(shí)際上就是TensorFlow中實(shí)現(xiàn)RNN的基本知識(shí)了。這個(gè)時(shí)候,建議大家用一個(gè)項(xiàng)目來練習(xí)鞏固一下。此處特別推薦Char RNN項(xiàng)目,這個(gè)項(xiàng)目對(duì)應(yīng)的是經(jīng)典的RNN結(jié)構(gòu),實(shí)現(xiàn)它使用的TensorFlow函數(shù)就是上面說到的幾個(gè),項(xiàng)目本身又比較有趣,可以用來做文本生成,平常大家看到的用深度學(xué)習(xí)來寫詩寫歌詞的基本用的就是它了。

Char RNN的實(shí)現(xiàn)已經(jīng)有很多了,可以自己去Github上面找,我這里也做了一個(gè)實(shí)現(xiàn),供大家參考。項(xiàng)目地址為:hzy46/Char-RNN-TensorFlow

我主要向代碼中添加了embedding層,以支持中文,另外重新整理了代碼結(jié)構(gòu),將API改成了***的TensorFlow 1.2版本。

可以用這個(gè)項(xiàng)目來寫詩(以下詩句都是自動(dòng)生成的):

何人無不見,此地自何如。

一夜山邊去,江山一夜歸。

山風(fēng)春草色,秋水夜聲深。

何事同相見,應(yīng)知舊子人。

何當(dāng)不相見,何處見江邊。

一葉生云里,春風(fēng)出竹堂。

何時(shí)有相訪,不得在君心。

還可以生成代碼:

  1. static int page_cpus(struct flags *str) 
  2.         int rc; 
  3.         struct rq *do_init; 
  4. }; 
  5.  
  6. /* 
  7.  * Core_trace_periods the time in is is that supsed, 
  8.  */ 
  9. #endif 
  10.  
  11. /* 
  12.  * Intendifint to state anded. 
  13.  */ 
  14. int print_init(struct priority *rt) 
  15. {       /* Comment sighind if see task so and the sections */ 
  16.         console(string, &can); 
  17.  

此外生成英文更不是問題(使用莎士比亞的文本訓(xùn)練):

LAUNCE:

The formity so mistalied on his, thou hast she was

to her hears, what we shall be that say a soun man

Would the lord and all a fouls and too, the say,

That we destent and here with my peace.

PALINA:

Why, are the must thou art breath or thy saming,

I have sate it him with too to have me of

I the camples.

***,如果你腦洞夠大,還可以來做一些更有意思的事情,比如我用了著名的網(wǎng)絡(luò)小說《斗破蒼穹》訓(xùn)練了一個(gè)RNN模型,可以生成下面的文本:

聞言,蕭炎一怔,旋即目光轉(zhuǎn)向一旁的那名灰袍青年,然后目光在那位老者身上掃過,那里,一個(gè)巨大的石臺(tái)上,有著一個(gè)巨大的巨坑,一些黑色光柱,正在從中,一道巨大的黑色巨蟒,一股極度恐怖的氣息,從天空上暴射而出 ,然后在其中一些一道道目光中,閃電般的出現(xiàn)在了那些人影,在那種靈魂之中,卻是有著許些強(qiáng)者的感覺,在他們面前,那一道道身影,卻是如同一道黑影一般,在那一道道目光中,在這片天地間,在那巨大的空間中,彌漫而開……

“這是一位斗尊階別,不過不管你,也不可能會(huì)出手,那些家伙,可以為了這里,這里也是能夠有著一些異常,而且他,也是不能將其他人給你的靈魂,所以,這些事,我也是不可能將這一個(gè)人的強(qiáng)者給吞天蟒,這般一次,我們的實(shí)力,便是能夠?qū)⒅畵魵?hellip;…”

“這里的人,也是能夠與魂殿強(qiáng)者抗衡。”

蕭炎眼眸中也是掠過一抹驚駭,旋即一笑,旋即一聲冷喝,身后那些魂殿殿主便是對(duì)于蕭炎,一道冷喝的身體,在天空之上暴射而出,一股恐怖的勁氣,便是從天空傾灑而下。

“嗤!”

還是挺好玩的吧,另外還嘗試了生成日文等等。

七、學(xué)習(xí)完整版的LSTMCell

上面只說了基礎(chǔ)版的BasicRNNCell和BasicLSTMCell。TensorFlow中還有一個(gè)“完全體”的LSTM:LSTMCell。這個(gè)完整版的LSTM可以定義peephole,添加輸出的投影層,以及給LSTM的遺忘單元設(shè)置bias等,可以參考其源碼了解使用方法。

八、學(xué)習(xí)***的Seq2Seq API

Google在TensorFlow的1.2版本(1.3.0的rc版已經(jīng)出了,貌似正式版也要出了,更新真是快)中更新了Seq2Seq API,使用這個(gè)API我們可以不用手動(dòng)地去定義Seq2Seq模型中的Encoder和Decoder。此外它還和1.2版本中的新數(shù)據(jù)讀入方式Datasets兼容。可以閱讀此處的文檔學(xué)習(xí)它的使用方法。

九、總結(jié)

***簡(jiǎn)單地總結(jié)一下,這篇文章提供了一個(gè)學(xué)習(xí)TensorFlow RNN實(shí)現(xiàn)的詳細(xì)路徑,其中包括了學(xué)習(xí)順序、可能會(huì)踩的坑、源碼分析以及一個(gè)示例項(xiàng)目hzy46/Char-RNN-TensorFlow,希望能對(duì)大家有所幫助。 

責(zé)任編輯:龐桂玉 來源: 36大數(shù)據(jù)
相關(guān)推薦

2022-03-22 07:37:04

FeignSpringRibbon

2016-03-01 14:51:18

云計(jì)算DevOps

2016-01-08 11:00:14

OpenStack云計(jì)算

2019-02-20 14:35:57

區(qū)塊鏈數(shù)字貨幣比特幣

2021-11-25 07:43:56

CIOIT董事會(huì)

2023-07-10 09:38:06

兼容性測(cè)試方案

2025-04-30 08:20:58

2021-11-10 16:03:42

Pyecharts Python可視化

2021-10-09 15:49:00

5G網(wǎng)絡(luò)技術(shù)

2018-10-29 15:20:03

2021-06-07 10:05:56

性能優(yōu)化Kafka

2020-06-04 15:16:46

云計(jì)算

2020-07-05 09:17:20

云桌面

2022-06-22 09:06:54

CSS垂直居中代碼

2021-01-11 10:47:09

IT部門網(wǎng)絡(luò)管理

2022-08-16 08:33:06

DevOps實(shí)踐

2019-03-17 16:48:51

物聯(lián)網(wǎng)云計(jì)算數(shù)據(jù)信息

2025-09-09 08:47:58

2018-07-03 09:41:23

數(shù)據(jù)庫系統(tǒng) 計(jì)算機(jī)

2021-06-15 11:44:01

芯片
點(diǎn)贊
收藏

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

国产亚洲色婷婷久久99精品91| 在线观看成人av电影| 日韩精品国产一区二区| 国产精品亚洲片在线播放| 欧美中文字幕不卡| eeuss中文| 人妻无码中文字幕| 日韩国产精品91| 超碰91人人草人人干| 男人网站在线观看| 久久久久久久性潮| 亚洲一区二区美女| 亚洲国产欧美不卡在线观看| 亚洲爱情岛论坛永久| 久久久久久黄| 久久久人成影片一区二区三区观看| 国产免费看av| 一区二区在线视频观看| 色婷婷国产精品久久包臀| 在线精品日韩| 欧美偷拍视频| 成人一区二区三区视频 | av在线理伦电影| 国产亚洲精品超碰| 国产精品日韩高清| 99热这里只有精品在线观看| 久久综合图片| 国外成人在线视频| 久久人妻无码aⅴ毛片a片app| 亚洲精品进入| 精品99久久久久久| 99999精品| 欧美亚洲黄色| 欧美三级中文字幕在线观看| 欧美日本视频在线观看| 八戒八戒神马在线电影| 国产精品久久久久久亚洲毛片| 久久婷婷国产综合尤物精品| 国产日韩欧美一区二区东京热 | 国产精品视频一区二区三区,| 久久国产精品99国产| 性欧美在线看片a免费观看| 九九热最新地址| 欧美电影《轻佻寡妇》| 一区二区av在线| 色婷婷在线影院| 日韩免费电影在线观看| 亚洲第一偷拍网| 免费观看一区二区三区| 色悠久久久久综合先锋影音下载 | 国内精品国产成人国产三级| 另类欧美日韩国产在线| 国产精品久久久久久超碰 | 99精品久久久| 高清亚洲成在人网站天堂| 九九热精品免费视频| 91精品国产自产在线观看永久∴| www.欧美精品| 伊人在线视频观看| 99久久九九| www.日韩欧美| caoporn91| 女人香蕉久久**毛片精品| 久久夜色精品国产| 农村妇女精品一区二区| 黄色欧美日韩| 97香蕉久久超级碰碰高清版| 日韩一区二区视频在线| 久久一本综合频道| 国产欧美欧洲在线观看| 国产绿帽刺激高潮对白| 国产精品456露脸| 国产精品一区二区三区在线| 午夜影院在线视频| 日本一区二区三区高清不卡| 亚洲一区在线免费| 影音先锋中文在线视频| 图片区日韩欧美亚洲| 成熟老妇女视频| 日韩国产大片| 欧美精品一区二区三区蜜桃 | 国产欧美一区二区三区鸳鸯浴| 亚洲精品成人自拍| 成人免费网址| 狠狠色噜噜狠狠狠狠97| 一级黄色特级片| 日韩在线网址| 亚洲欧洲国产精品| 国精产品久拍自产在线网站| 欧美午夜不卡| 久久免费福利视频| 无码久久精品国产亚洲av影片| 激情久久久久久久久久久久久久久久| 国产精品一区二区a| 国产永久免费高清在线观看视频| 亚洲欧洲色图综合| 国产精品沙发午睡系列| 久久不卡日韩美女| 亚洲福利视频二区| 精品丰满少妇一区二区三区| 激情久久久久久久| 国产精品视频导航| 高h震动喷水双性1v1| 国产亚洲欧洲一区高清在线观看| 9色视频在线观看| 欧美日韩视频网站| 欧美一区二区免费观在线| 老鸭窝一区二区| 亚洲精品国产偷自在线观看| 欧美中文字幕在线观看| 国产毛片毛片毛片毛片毛片| 久久美女高清视频| 日本精品福利视频| 色成人免费网站| 精品999在线播放| 国产视频精品免费| 香蕉成人久久| 国产精品一区二区三区免费观看 | 欧美激情一区二区三区在线视频观看 | 黄色片网站免费在线观看| 亚洲国产高清aⅴ视频| 水蜜桃色314在线观看| 四虎永久精品在线| 亚洲天堂av在线免费观看| 久久一级黄色片| 激情五月播播久久久精品| 欧美日韩电影一区二区三区| 牛牛精品视频在线| 欧美一区二视频| 国产在线免费av| 久久青草久久| 国产偷国产偷亚洲高清97cao| 黄网站在线免费看| 欧美日韩国产区一| 人妻视频一区二区| 性欧美暴力猛交另类hd| 国产欧美在线一区二区| 性欧美videoshd高清| 欧美精品vⅰdeose4hd| 亚洲无人区码一码二码三码的含义| 中文字幕一区二区三区乱码图片| 国产精品入口福利| 国产福利小视频在线观看| 欧美性精品220| 午夜理伦三级做爰电影| 宅男噜噜噜66一区二区| 好吊色欧美一区二区三区视频| 欧洲黄色一区| 精品福利av导航| 国产在线一二区| 从欧美一区二区三区| 日本精品福利视频| 91蜜桃臀久久一区二区| 欧美精品福利在线| 可以免费观看的毛片| 一区二区日韩av| 亚洲中文字幕无码一区| 99伊人成综合| 麻豆精品传媒视频| 成人免费网站www网站高清| 在线成人免费网站| 一级片免费网站| 亚洲欧美一区二区三区久本道91| 日本r级电影在线观看| 中文字幕免费一区二区| 成人资源视频网站免费| 国产精品高颜值在线观看| 精品成人在线观看| 羞羞影院体验区| 国产片一区二区| www.cao超碰| 综合在线一区| 精品伦精品一区二区三区视频| 亚洲欧洲日本韩国| 国产亚洲免费的视频看| 国产精品伦一区二区三区| 亚洲国产人成综合网站| 90岁老太婆乱淫| 黄页网站大全一区二区| 亚洲理论电影在线观看| 最近国产精品视频| 国产日产亚洲精品| bl在线肉h视频大尺度| 亚洲男人av电影| 99在线精品视频免费观看20| 欧美日韩激情视频| www成人啪啪18软件| 国产成人午夜片在线观看高清观看| 浮妇高潮喷白浆视频| 精品国产一区二区三区av片| 亚洲www视频| 中文字幕在线官网| 俺去亚洲欧洲欧美日韩| 少妇av一区二区| 欧美艳星brazzers| 久久精品国产亚洲av高清色欲| 久久久久国产精品人| 欧美视频亚洲图片| 噜噜噜91成人网| 老司机午夜网站| 亚洲精品aaaaa| 97视频热人人精品| 精品123区| 午夜精品久久久久久99热| 2019中文字幕在线视频| 亚洲国产天堂久久综合网| 中文字幕一区2区3区| 午夜精品久久久久久久99樱桃| 天美传媒免费在线观看| av中文字幕亚洲| 香蕉视频xxxx| 蜜臀久久99精品久久久画质超高清| 免费看欧美黑人毛片| 久久午夜无码鲁丝片| 欧美天堂一区| 97精品久久久| 国产丝袜在线| 亚洲日本成人网| 蜜臀av免费在线观看| 欧美日韩一区视频| 国产91国语对白在线| 一区二区三区精密机械公司| 美女100%露胸无遮挡| youjizz久久| 中文字幕1234区| 免费观看成人鲁鲁鲁鲁鲁视频| 国产精品后入内射日本在线观看| 欧美99久久| 香蕉精品视频在线| 国产一区二区欧美| 免费在线观看91| 日韩av不卡一区| 国产日韩在线一区二区三区| 日本一区二区三区视频在线看| 国产精品自产拍在线观看中文| 成人免费短视频| 8090成年在线看片午夜| av电影在线地址| 欧美精品www在线观看| 污视频网站在线免费| 粗暴蹂躏中文一区二区三区| 国产在线二区| 久久九九亚洲综合| 日本中文字幕伦在线观看| 一区二区三区四区精品| 女人偷人在线视频| 亚洲视频在线看| 国产视频网址在线| 国产亚洲欧洲高清| 在线激情小视频| 久久精品成人动漫| 成人黄色网址| 欧美国产日韩精品| h片精品在线观看| 97超级碰碰碰久久久| 黄视频免费在线看| 91成品人片a无限观看| 综合久久2023| 国产精品mp4| 草民电影神马电影一区二区| 国产日韩欧美夫妻视频在线观看| 韩国精品视频在线观看| 成人在线视频福利| 清纯唯美激情亚洲| 精品在线一区| 国产精品一区二区99| 亚洲欧美影院| 欧美体内she精视频在线观看| 男女日批视频在线观看| 性伦欧美刺激片在线观看| 午夜免费一区二区| 国产制服丝袜一区| 久久久国产精品久久久| a美女胸又www黄视频久久| 日韩乱码人妻无码中文字幕久久| 亚洲国产精品v| 国产这里有精品| 精品久久久视频| 亚洲精品国产欧美在线观看| 欧美一区二区三区四区在线观看 | 精品丝袜在线| 日韩免费av一区二区| va天堂va亚洲va影视| 国产精品二区二区三区| 美日韩中文字幕| 日本在线视频www色| 在线成人国产| 中文字幕国内自拍| 国产精品888| 四虎永久免费在线观看| 亚洲男人电影天堂| wwwwww国产| 91精品黄色片免费大全| 亚洲欧洲国产综合| 久久精品免费播放| 亚洲美女尤物影院| 91沈先生作品| 国产一区二区三区站长工具| 国产乱子伦精品视频| 久久午夜精品一区二区| 三大队在线观看| 国产精品视频看| 国产精品视频久久久久久久| 欧美三级电影网| 亚洲欧美日韩精品永久在线| 久久精品美女视频网站| 性爽视频在线| 成人动漫在线观看视频| 成人同人动漫免费观看| 黄色大片中文字幕| 国产一本一道久久香蕉| 卡一卡二卡三在线观看| 午夜精品福利一区二区三区av| 亚洲图片小说视频| 精品偷拍一区二区三区在线看| 天堂av在线电影| 国产日本欧美在线观看| 国产精品片aa在线观看| 日本a在线免费观看| 国产一区高清在线| 岛国片在线免费观看| 精品久久香蕉国产线看观看gif| 国产精品老熟女视频一区二区| 永久免费毛片在线播放不卡| 国产精选在线| 肥熟一91porny丨九色丨| 亚洲欧美在线专区| 天天视频天天爽| 国产婷婷色一区二区三区在线| 午夜精品三级久久久有码| 精品少妇一区二区三区免费观看| 免费在线毛片网站| 国产精选久久久久久| 国产欧美日韩一区二区三区四区| 无码人妻丰满熟妇区96| 成人avav影音| 久草免费在线观看视频| 日韩一区二区三区在线观看 | 中文字幕在线视频一区| 亚洲精品国产无码| 亚洲精品有码在线| 日韩伦理福利| 精品久久精品久久| 99pao成人国产永久免费视频| 黄色av电影网站| 一区二区三区欧美久久| 精品国产18久久久久久| 欧美大成色www永久网站婷| 国产精品亚洲欧美一级在线| 中国成人在线视频| 韩国精品免费视频| 欧美高清视频一区二区三区| 日韩一区二区麻豆国产| 91麻豆免费在线视频| 99re6热在线精品视频播放速度| 欧美黄色一区| 国产在线不卡av| 懂色av中文一区二区三区天美| 久久久pmvav| 国产精品精品一区二区三区午夜版| 热久久天天拍国产| 久久久精品视频国产| 一区二区三区日韩欧美精品| 日批免费在线观看| 1769国内精品视频在线播放| 激情五月综合网| 色婷婷一区二区三区av免费看| 亚洲男人都懂的| 凸凹人妻人人澡人人添| 国产精品www| 欧美va天堂| 亚洲熟女一区二区| 色94色欧美sute亚洲线路二| 生活片a∨在线观看| 99中文视频在线| 中文国产一区| 天堂网av2018| 欧美成人一区二区| 午夜av不卡| 一区国产精品| 成人av第一页| 在线免费观看高清视频| 欧美美女18p| 亚洲动漫在线观看| 免费精品99久久国产综合精品应用| 一区二区三区在线免费视频| 蜜桃视频在线免费| 亚洲一区二区在线播放| 9色国产精品| 四虎影院中文字幕| 日韩av网站在线| 高清不卡一区| 日韩手机在线观看视频| 亚洲黄色小说网站| 国产精品视频二区三区| 不卡一区二区三区视频| 玖玖玖国产精品| 久久久久久国产精品免费播放| 亚洲人成人99网站| 亚州一区二区|