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

使用 paddle來(lái)進(jìn)行文本生成

企業(yè)動(dòng)態(tài)
paddle 是百度在2016年9月份開源的深度學(xué)習(xí)框架, 就我最近體驗(yàn)的感受來(lái)說(shuō)的它具有幾大優(yōu)點(diǎn)。

paddle 簡(jiǎn)單介紹

paddle 是百度在2016年9月份開源的深度學(xué)習(xí)框架。

就我最近體驗(yàn)的感受來(lái)說(shuō)的它具有幾大優(yōu)點(diǎn):

1. 本身內(nèi)嵌了許多和實(shí)際業(yè)務(wù)非常貼近的模型比如個(gè)性化推薦,情感分析,詞向量,語(yǔ)義角色標(biāo)注等模型還有更多實(shí)際已經(jīng)內(nèi)嵌了但是目前還沒有出現(xiàn)在官方文檔上的模型比如物體檢測(cè),文本生成,圖像分類,ctr預(yù)估等等,可以快速應(yīng)用到項(xiàng)目中去

2. 就實(shí)際體驗(yàn)來(lái)看,訓(xùn)練的速度相比于調(diào)用keras,在同等數(shù)據(jù)集上和相同網(wǎng)絡(luò)架構(gòu)上要快上不少。當(dāng)然也是因?yàn)閗eras本身也是基于在tensorflow或者theano上面的,二次調(diào)用的速度不如paddle直接調(diào)用底層迅速。

缺點(diǎn)也有很多:

1. 一開始的安裝對(duì)新手極其的不友好,使用docker安裝感覺這個(gè)開源框架走不長(zhǎng)久,所幸這個(gè)問題已經(jīng)解決。

2. 目前很多的文檔并不完善,也許百度系的工程師目前對(duì)這方面其實(shí)并不是很重視,新手教程看起來(lái)并非那么易懂。

3. 層的封裝并不到位,很多神經(jīng)網(wǎng)絡(luò)層得自己去寫,感覺非常的不方便。

***希望借由本文,可以讓你快速上手paddle。

一分鐘安裝paddle

docker 安裝

 之前paddle的安裝方式是使用docker安裝,感覺非常的反人類。

 安裝命令:

  1. docker pull paddlepaddle/paddle:latest 

pip 安裝

現(xiàn)在已經(jīng)支持pip 安裝了。對(duì)(OS: centos 7, ubuntu 16.04, macos 10.12, python: python 2.7.x) 可以直接使用

  1. pip install paddlepaddle     安裝cpu 版本。 
  2. pip install paddlepaddle-gpu 安裝gpu 版本。 

安裝完以后,測(cè)試的代碼

  1. import paddle.v2 as paddle 
  2. x = paddle.layer.data(name='x', type=paddle.data_type.dense_vector(13)) 
  3. y = paddle.layer.fc(input=x, size=1, param_attr=paddle.attr.Param(name="fc.w")) 
  4. params = paddle.parameters.create(y) 
  5. print params["fc.w"].shape 

當(dāng)輸出 [13,1],那么恭喜你,已經(jīng)成功安裝了paddle.  

遇到的問題     

當(dāng)我在使用pip 安裝方式安裝了gpu版本的paddle以后,遇到了numpy 版本不兼容的問題。解決的辦法是:在把本地的numpy卸載以后,我首先把安裝的paddle卸載了,然后重新再安裝了一遍paddle。這樣在安裝的過程當(dāng)中,可以借由paddle的安裝過程來(lái)檢測(cè)你系統(tǒng)的其他python包是否符合paddle需要的環(huán)境。其他類似的python包的問題,都可以借由這個(gè)辦法幫忙解決。

使用paddle中的循環(huán)神經(jīng)網(wǎng)絡(luò)來(lái)生成文本

背景簡(jiǎn)介

首先paddle實(shí)際上已經(jīng)內(nèi)嵌了這個(gè)項(xiàng)目:

  1. https://github.com/PaddlePaddle/models/tree/develop/generate_sequence_by_rnn_lm 

文本生成有很多的應(yīng)用,比如根據(jù)上文生成下一個(gè)詞,遞歸下去可以生成整個(gè)句子,段落,篇章。目前主流生成文本的方式是使用rnn來(lái)生成文本。

主要有兩個(gè)原因:

1. 因?yàn)镽NN 是將一個(gè)結(jié)構(gòu)反復(fù)使用,即使輸入的文本很長(zhǎng),所需的network的參數(shù)都是一樣的。

2. 因?yàn)镽NN 是共用一個(gè)結(jié)構(gòu)的,共用參數(shù)的。可以用比較少的參數(shù)來(lái)訓(xùn)練模型。這樣會(huì)比較難訓(xùn)練,但是一旦訓(xùn)練好以后,模型會(huì)比較難overfitting,效果也會(huì)比較好。

對(duì)于RNN使用的這個(gè)結(jié)構(gòu),由于原生的RNN的這個(gè)結(jié)構(gòu)本身無(wú)法解決長(zhǎng)程依賴的問題,目前主要使用Lstm 和GRU來(lái)進(jìn)行代替。但是具體到LSTM 和GRU,因?yàn)長(zhǎng)STM需要使用三個(gè)門結(jié)構(gòu)也就是通常所說(shuō)的遺忘門,更新門,輸出門。而GRU的表現(xiàn)和LSTM類似,卻只需要兩個(gè)門結(jié)構(gòu)。訓(xùn)練速度更快,對(duì)內(nèi)存的占用更小,目前看起來(lái)使用GRU是更好的選擇。

項(xiàng)目實(shí)戰(zhàn)

  •        首先
     
    1. git clone https://github.com/PaddlePaddle/models/tree/develop/generate_sequence_by_rnn_lm 
     到本地model 目錄下
  •        代碼結(jié)構(gòu)如下
  1. ├── data 
  2. │   └── train_data_examples.txt         # 示例數(shù)據(jù),可參考示例數(shù)據(jù)的格式,提供自己的數(shù)據(jù) 
  3. ├── config.py                           # 配置文件,包括data、train、infer相關(guān)配置 
  4. ├── generate.py                 # 預(yù)測(cè)任務(wù)腳本,即生成文本 
  5. ├── beam_search.py                # beam search 算法實(shí)現(xiàn) 
  6. ├── network_conf.py                 # 本例中涉及的各種網(wǎng)絡(luò)結(jié)構(gòu)均定義在此文件中,希望進(jìn)一步修改模型結(jié)構(gòu),請(qǐng)修改此文件 
  7. ├── reader.py                           # 讀取數(shù)據(jù)接口 
  8. ├── README.md 
  9. ├── train.py                            # 訓(xùn)練任務(wù)腳本 
  10. └── utils.py                            # 定義通用的函數(shù),例如:構(gòu)建字典、加載字典等 

運(yùn)行說(shuō)明

  •          首先執(zhí)行python train.py 開始訓(xùn)練模型,待模型訓(xùn)練完畢以后。
  •          執(zhí)行python generate.py 開始運(yùn)行文本生成代碼。(默認(rèn)的文本輸入為data/train_data_example.txt,生成文本保存為data/gen_result.txt)

代碼解析

  •          paddle 的使用有幾個(gè)固定需要遵守的流程。
    •   大致需要4步。1:初始化,2:定義網(wǎng)絡(luò)結(jié)構(gòu),3:訓(xùn)練,4:預(yù)測(cè)。
    •       其中定義網(wǎng)絡(luò)結(jié)構(gòu)具體需要定義 1:定義具體的網(wǎng)絡(luò)結(jié)構(gòu),2:定義所需要的參數(shù),3:定義優(yōu)化的方法,4:定義event_handler 打印訓(xùn)練信息。
    •       總體來(lái)說(shuō),paddle 的代碼上手難度其實(shí)對(duì)新手挺大的,但思路非常的清晰,耐心閱讀應(yīng)該可以明白。下面我們具體介紹:

1. 首先需要加載paddle 進(jìn)行初始化

import paddle.v2 as paddle
import numpy as np
paddle.init(use_gpu=False)

2. 定義網(wǎng)絡(luò)結(jié)構(gòu)

  1. # 變量說(shuō)明 
  2. # vocab_dim: 輸入變量的維度數(shù). 
  3. # type vocab_dim: int 
  4. # emb_dim: embedding vector的維度數(shù) 
  5. # type emb_dim: int 
  6. # rnn_type: RNN cell的類型. 
  7. # type rnn_type: int 
  8. # hidden_size: hidden unit的個(gè)數(shù). 
  9. # type hidden_size: int 
  10. # stacked_rnn_num: 堆疊的rnn cell的個(gè)數(shù). 
  11. # type stacked_rnn_num: int 
 
  1. # 定義輸入層 
  2. input = paddle.layer.data( 
  3.     name="input", type=paddle.data_type.integer_value_sequence(vocab_dim)) 
  4. if not is_infer: 
  5.     target = paddle.layer.data( 
  6.         name="target"
  7.         type=paddle.data_type.integer_value_sequence(vocab_dim)) 
  8.   
  9. # 定義embedding層 
  10. # 該層將上層的輸出變量input 做為本層的輸入灌入embedding層,將輸入input 向量化,方便后續(xù)處理 
  11. input_emb = paddle.layer.embedding(input=input, size=emb_dim) 
  12.   
  13. # 定義rnn層 
  14. # 如果 rnn_type 是lstm,則堆疊lstm層 
  15. # 如果rnn_type 是gru,則堆疊gru層 
  16. # 如果 i = 0的話,先將 input_emb做為輸入,其余時(shí)刻則將上一時(shí)刻的rnn_cell作為輸入進(jìn)行堆疊 
  17. # stack_rnn_num 等于多少就堆疊多少個(gè) rnn層 
  18. if rnn_type == "lstm"
  19.     for i in range(stacked_rnn_num): 
  20.         rnn_cell = paddle.networks.simple_lstm( 
  21.             input=rnn_cell if i else input_emb, size=hidden_size) 
  22. elif rnn_type == "gru"
  23.     for i in range(stacked_rnn_num): 
  24.         rnn_cell = paddle.networks.simple_gru( 
  25.             input=rnn_cell if i else input_emb, size=hidden_size) 
  26. else
  27.     raise Exception("rnn_type error!"
  28.   
  29. # 定義全聯(lián)接層 
  30. # 將上層最終定義得到的輸出rnn_cell 做為輸入灌入該全聯(lián)接層 
  31. output = paddle.layer.fc( 
  32.     input=[rnn_cell], size=vocab_dim, act=paddle.activation.Softmax())<br data-filtered="filtered"
  33.   
  34. # ***一層cost中記錄了神經(jīng)網(wǎng)絡(luò)的所有拓?fù)浣Y(jié)構(gòu),通過組合不同的layer,我們即可完成神經(jīng)網(wǎng)絡(luò)的搭建。 
  35. cost = paddle.layer.classification_cost(input=output, label=target) 

paddle的網(wǎng)絡(luò)結(jié)構(gòu)從這里可以看出其實(shí)定義起來(lái)需要自己寫非常多的代碼,感覺非常的冗余,雖然同樣也是搭建積木自上而下一層層來(lái)寫,代碼開發(fā)的工作量其實(shí)蠻大的。

3. 訓(xùn)練模型

在完成神經(jīng)網(wǎng)絡(luò)的搭建之后,我們首先需要根據(jù)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來(lái)創(chuàng)建所需要優(yōu)化的parameters(也就是網(wǎng)絡(luò)結(jié)構(gòu)的參數(shù)),并創(chuàng)建optimizer(求解網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)的優(yōu)化方法比如Sgd,Adam,Rmstrop)之后,我們可以創(chuàng)建trainer來(lái)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。在這里我們使用adam算法來(lái)作為我們優(yōu)化的算法,L2正則項(xiàng)來(lái)作為正則項(xiàng)。并根據(jù)cost 中記錄的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)來(lái)創(chuàng)建神經(jīng)網(wǎng)絡(luò)所需要的參數(shù)。

  1. # create optimizer 
  2. adam_optimizer = paddle.optimizer.Adam( 
  3.     learning_rate=1e-3
  4.     regularization=paddle.optimizer.L2Regularization(rate=1e-3), 
  5.     model_average=paddle.optimizer.ModelAverage( 
  6.         average_window=0.5, max_average_window=10000)) 
  7.   
  8. # create parameters 
  9. parameters = paddle.parameters.create(cost) 
  10. # create trainer 
  11. trainer = paddle.trainer.SGD( 
  12.     cost=cost, parameters=parameters, update_equation=adam_optimizer) 

其中,trainer接收三個(gè)參數(shù),包括神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) cost神經(jīng)網(wǎng)絡(luò)參數(shù) parameters以及迭代方程 adam_optimizer。在搭建神經(jīng)網(wǎng)絡(luò)的過程中,我們僅僅對(duì)神經(jīng)網(wǎng)絡(luò)的輸入進(jìn)行了描述。而trainer需要讀取訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,PaddlePaddle中通過reader來(lái)加載數(shù)據(jù)。

  1. # define reader 
  2. reader_args = { 
  3.     "file_name": conf.train_file, 
  4.     "word_dict": word_dict, 
  5. # 讀取訓(xùn)練數(shù)據(jù) 
  6. train_reader = paddle.batch( 
  7.     paddle.reader.shuffle( 
  8.         reader.rnn_reader(**reader_args), buf_size=102400), 
  9.     batch_size=conf.batch_size) 
  10. # 讀取測(cè)試數(shù)據(jù) 
  11. test_reader = None 
  12. if os.path.exists(conf.test_file) and os.path.getsize(conf.test_file): 
  13.     test_reader = paddle.batch( 
  14.         paddle.reader.shuffle( 
  15.             reader.rnn_reader(**reader_args), buf_size=65536), 
  16.         batch_size=conf.batch_size) 

最終我們可以調(diào)用trainer的train方法啟動(dòng)訓(xùn)練:

  1. # define the event_handler callback 
  2. # event_handler 主要負(fù)責(zé)打印訓(xùn)練的進(jìn)度信息,訓(xùn)練的損失值,這里可以自己定制 
  3. def event_handler(event): 
  4.     if isinstance(event, paddle.event.EndIteration): 
  5.         if not event.batch_id % conf.log_period: 
  6.             logger.info("Pass %d, Batch %d, Cost %f, %s" % ( 
  7.                 event.pass_id, event.batch_id, event.cost, event.metrics)) 
  8.   
  9.         if (not event.batch_id % 
  10.                 conf.save_period_by_batches) and event.batch_id: 
  11.             save_name = os.path.join(model_save_dir, 
  12.                                      "rnn_lm_pass_%05d_batch_%03d.tar.gz" % 
  13.                                      (event.pass_id, event.batch_id)) 
  14.             with gzip.open(save_name, "w") as f: 
  15.                 parameters.to_tar(f) 
  16.   
  17.     if isinstance(event, paddle.event.EndPass): 
  18.         if test_reader is not None: 
  19.             result = trainer.test(reader=test_reader) 
  20.             logger.info("Test with Pass %d, %s" % 
  21.                         (event.pass_id, result.metrics)) 
  22.         save_name = os.path.join(model_save_dir, "rnn_lm_pass_%05d.tar.gz" % 
  23.                                  (event.pass_id)) 
  24.         with gzip.open(save_name, "w") as f: 
  25.             parameters.to_tar(f) 
  26.   
  27. # 開始訓(xùn)練 
  28. trainer.train( 
  29.     reader=train_reader, event_handler=event_handler, num_passes=num_passes) 

  至此,我們的訓(xùn)練代碼定義結(jié)束,開始進(jìn)行訓(xùn)練 

  1. python train.py 

pass 相當(dāng)于我們平常所使用的 epoch(即一次迭代), batch是我們每次訓(xùn)練加載的輸入變量的個(gè)數(shù),cost 是衡量我們的網(wǎng)絡(luò)結(jié)構(gòu)損失函數(shù)大小的具體值,越小越好,***一項(xiàng) classification_error_evaluator 是表明我們目前的分類誤差的損失率,也是越小越好。

4.生成文本

當(dāng)?shù)却舾蓵r(shí)間以后,訓(xùn)練完畢以后。開始進(jìn)行文本生成。

  1. python generate.py 

 

 生成文本展示

  1. 81    若隱若現(xiàn) 地像 幽靈 , 像 死神 
  2. -12.2542    一樣 。 他 是 個(gè) 怪物 <e> 
  3. -12.6889    一樣 。 他 是 個(gè) 英雄 <e> 
  4. -13.9877    一樣 。 他 是 我 的 敵人 <e> 
  5. -14.2741    一樣 。 他 是 我 的 <e> 
  6. -14.6250    一樣 。 他 是 我 的 朋友 <e> 

其中:

  1. ***行 81 若隱若現(xiàn) 地像 幽靈 , 像 死神\t為分隔,共有兩列:
    • ***列是輸入前綴在訓(xùn)練樣本集中的序號(hào)。
    • 第二列是輸入的前綴。
  2. 第二 ~ beam_size + 1 行是生成結(jié)果,同樣以 \t 分隔為兩列:
    • ***列是該生成序列的對(duì)數(shù)概率(log probability)。
    • 第二列是生成的文本序列,正常的生成結(jié)果會(huì)以符號(hào)<e>結(jié)尾,如果沒有以<e>結(jié)尾,意味著超過了***序列長(zhǎng)度,生成強(qiáng)制終止

總結(jié):

我們這次說(shuō)明了如何安裝paddle。如何使用paddle開始一段項(xiàng)目。總體來(lái)說(shuō)paddle 的文檔目前是非常的不規(guī)范,閱讀的體驗(yàn)也不是很好,需要開發(fā)者耐心細(xì)致的閱讀源代碼來(lái)掌握paddle的使用方法。第二很多層的封裝感覺寫法非常的冗余,比如一定要用paddle作為前綴,把python寫出了java的感覺。但是瑕不掩瑜,從使用的角度來(lái)看,一旦掌握了其使用方法以后,自己定義網(wǎng)絡(luò)結(jié)構(gòu)感覺非常的方便。訓(xùn)練的速度也是挺快的。

責(zé)任編輯:張燕妮 來(lái)源: www.cnblogs.com
相關(guān)推薦

2021-08-30 07:57:26

OpenAttack文本對(duì)抗攻擊

2023-05-04 07:12:02

Linuxshell人工智能

2023-06-11 17:00:06

2022-11-21 17:44:03

機(jī)器學(xué)習(xí)文本生成器自然語(yǔ)言

2024-09-30 09:04:20

2020-12-31 05:37:05

HiveUDFSQL

2018-04-08 09:02:00

CGIHTML動(dòng)態(tài)網(wǎng)站

2023-07-05 07:36:36

SpringJava代碼

2016-11-16 15:05:42

情感分析

2023-06-19 07:08:22

結(jié)構(gòu)化數(shù)據(jù)ChatGPT

2023-02-06 10:12:04

人工智能文本生成工具

2017-04-07 09:00:46

UbuntuVim文本選擇

2024-02-19 09:19:54

OpenAIAI模型人工智能

2021-02-01 10:11:04

工具代碼開發(fā)

2023-11-28 09:00:00

機(jī)器學(xué)習(xí)少樣本學(xué)習(xí)SetFit

2023-11-13 18:37:44

2025-02-06 13:57:26

2023-08-30 08:58:10

2022-06-06 14:29:20

圖像模型任務(wù)

2016-12-14 09:32:49

FileChanne文件復(fù)制
點(diǎn)贊
收藏

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

www.国产精品一区| 亚洲三级中文字幕| 一区二区三区四区日韩| 日韩视频免费观看高清完整版| 777久久精品一区二区三区无码 | 精品一区二区国产| 波多野结衣毛片| 亚洲精彩视频| 亚洲经典中文字幕| 久热精品在线播放| 超碰在线最新网址| 欧美极品美女视频| 不卡一区二区三区四区五区| 国产污污视频在线观看| 日韩在线观看| 日韩精品视频在线观看免费| 毛片毛片毛片毛| 午夜影视一区二区三区| 亚洲同性gay激情无套| 精品国产乱码久久久久久久软件| 中文字幕一区二区人妻| 亚洲激情av| 久久天天躁狠狠躁夜夜爽蜜月| av鲁丝一区鲁丝二区鲁丝三区| 日本精品久久| 在线中文字幕一区二区| 九色自拍视频在线观看| 超碰电影在线播放| 久久久99精品免费观看| 国产福利久久精品| 亚洲熟妇av乱码在线观看| 亚洲免费成人| 欧美人在线观看| 长河落日免费高清观看| 蜜臀av免费一区二区三区| 欧美成人r级一区二区三区| 亚洲国产精品三区| 亚洲伦乱视频| 天天射综合影视| 大伊香蕉精品视频在线| 污污片在线免费视频| 国产精品福利一区二区| 日本一区二区三区在线视频 | 99热在这里有精品免费| 99理论电影网| 国产口爆吞精一区二区| 麻豆国产精品一区二区三区| 日韩av色综合| 亚洲第一网站在线观看| 西西人体一区二区| 欧美亚洲日本黄色| 亚洲精品午夜国产va久久成人| 在线不卡亚洲| 国语自产精品视频在线看一大j8| 久久久久人妻一区精品色欧美| 亚洲天堂免费| 欧美xxxx18性欧美| 午夜免费激情视频| 午夜亚洲福利| 欧美精品激情视频| 国产精品成人aaaa在线| 亚洲福利一区| 欧亚精品在线观看| 天天综合久久综合| 免费观看久久久4p| 91久久精品国产91性色| 99国产成人精品| 国产精品夜夜爽| 国产成人精品免费视频大全最热| 亚洲爆乳无码一区二区三区| 成人18视频日本| 久久综合一区| 成年人在线观看| 国产精品热久久久久夜色精品三区| 亚洲欧美影院| 天堂av在线电影| 舔着乳尖日韩一区| 国产精品天天av精麻传媒| 欧美va视频| 91精选在线观看| 日韩精品视频一区二区| 女人av一区| 色妞在线综合亚洲欧美| 国产精品成人免费观看| 亚洲麻豆一区| 国产精品嫩草影院久久久| 国产精品乱码一区二区| 成人国产精品免费观看视频| 久久综合中文色婷婷| 亚洲图片88| 亚洲国产视频直播| 九热视频在线观看| 日韩精品一区二区三区中文在线| 亚洲国产日韩欧美在线图片| 国产精品国产三级国产专业不| 亚洲精品一区二区在线看| 久久久久国产精品www| 亚洲第一网站在线观看| 国产精品一区二区久久不卡| 欧美日韩在线观看一区二区三区| 日本中文在线| 狠狠做深爱婷婷久久综合一区| 色婷婷综合网站| 北条麻妃一区二区三区在线观看| 亚洲性夜色噜噜噜7777| 精品爆乳一区二区三区无码av| 另类国产ts人妖高潮视频| 成人午夜激情网| 亚洲欧美日韩精品永久在线| ㊣最新国产の精品bt伙计久久| 国产精品久久中文字幕| 亚洲精品自拍| 亚洲无av在线中文字幕| 久久久国产精品黄毛片| 免费在线观看精品| 精品一区二区三区国产| а天堂中文在线官网| 日本高清不卡一区| 欧美日韩电影在线播放| 日韩欧美精品在线观看视频| 久久青草免费| 亚洲免费电影一区| 久久久久久久久久久久国产| 免费成人av资源网| 久久婷婷人人澡人人喊人人爽| 黄色大片在线播放| 日本高清不卡一区| 一二三不卡视频| 国产综合自拍| 亚洲www永久成人夜色| 久久久久久久久亚洲精品| 亚洲国产另类精品专区| 中文字幕av一区二区三区人妻少妇| 欧美人与牛zoz0性行为| 午夜免费日韩视频| 亚洲国产剧情在线观看| 国产精品国产自产拍高清av| 国产a视频免费观看| 国产95亚洲| 精品国产一区久久久| 亚洲视频在线观看一区二区| 国产亚洲短视频| 青青在线视频观看| 婷婷精品在线观看| 2019av中文字幕| 亚州视频一区二区三区| 亚洲国产视频在线| 苍井空张开腿实干12次| 你懂的国产精品| 亚洲综合社区网| 午夜伦理大片视频在线观看| 欧美一区二区三区啪啪| 伊人久久久久久久久久久久久久| 麻豆精品一区二区av白丝在线| 色综合电影网| 成人精品国产亚洲| 日韩专区在线播放| 国产露脸无套对白在线播放| 亚洲色欲色欲www| √天堂资源在线| 一区二区免费不卡在线| av一本久道久久波多野结衣| 里番在线播放| 精品亚洲男同gayvideo网站| 少妇太紧太爽又黄又硬又爽| av电影在线观看完整版一区二区| 可以在线看的av网站| 校花撩起jk露出白色内裤国产精品| 国产ts一区二区| 国产福利在线| 在线不卡免费欧美| 久久黄色免费视频| 91亚洲国产成人精品一区二区三| 国产精品欧美激情在线观看| 不卡一区综合视频| 成人黄色激情网| 免费在线观看的电影网站| 日韩av在线播放资源| 瑟瑟视频在线免费观看| 亚洲免费观看高清完整 | 99久久伊人精品| 91视频免费版污| 欧美一区二区三区久久精品| 国产伦精品一区| 日韩成人影音| 美日韩精品视频免费看| 天堂在线一二区| 欧美日韩三级在线| 久久久精品视频在线| 91久色porny| 午夜视频在线网站| 亚洲欧洲一区二区天堂久久| 深田咏美在线x99av| 免费观看性欧美大片无片| 2024亚洲男人天堂| 国产精品扒开做爽爽爽的视频| 精品国产乱子伦一区| 波多野结衣一二区| 亚洲综合999| 免费成人深夜天涯网站| 成人综合在线视频| 男女视频在线看| 国产日韩视频| 一区二区三区四区免费观看| 亚洲另类av| 国产精品都在这里| 国内精品久久久久国产| 亚洲男人天堂网| 亚洲精品一区二区三区新线路| 欧美三级韩国三级日本一级| 日韩黄色三级视频| 亚洲精品国产无天堂网2021| 亚洲一区视频在线播放| 成人sese在线| 性生活一级大片| 美国av一区二区| 久久久噜噜噜www成人网| 国产一区欧美| av中文字幕av| 999视频精品| 亚洲高清视频一区二区| 在线一级成人| 久久96国产精品久久99软件| 亚洲伊人影院| 亚洲free嫩bbb| 午夜精品久久久久久毛片| 国产第一区电影| 欧美男男激情videos| 午夜精品国产精品大乳美女| 黄色大片在线| 欧美激情中文字幕乱码免费| 亚洲欧美成人影院| 欧美精品日韩三级| a级影片在线| 欧美不卡视频一区发布| 黄色免费在线网站| 久热爱精品视频线路一| 国产理论在线观看| www.午夜精品| 国产精品扒开做爽爽爽的视频| 久久久电影免费观看完整版| 免费a级毛片在线播放| 久久久国产视频91| 97视频在线观看网站| 中文字幕在线看视频国产欧美在线看完整| 国产中文字幕在线观看| 国产一区二区三区18| 超碰在线影院| 亚洲a中文字幕| 欧美性猛交久久久乱大交小说| 午夜精品福利影院| 91影院在线免费观看视频| 日日av拍夜夜添久久免费| 欧美另类高清videos| 久久天堂电影| 亚洲精品理论电影| 熟妇人妻中文av无码| 欧美一区二区三区免费在线看| 中文字幕无线码一区| 欧美日韩一区二区在线观看视频| 在线精品免费视| 欧美日韩国产精品专区| 日韩三级av在线| 亚洲成人免费观看| 国产香蕉在线视频| 中文一区二区完整视频在线观看| 阿v天堂2014| 国产蜜臀av在线一区二区三区| 97伦伦午夜电影理伦片| 国产日本欧美一区二区| 老头老太做爰xxx视频| 久久精品欧美一区二区三区不卡| 免费视频91蜜桃| 国产精品色婷婷久久58| 91精品久久久久久久久久久久| 国产精品免费久久| 小早川怜子一区二区的演员表| 国产精品国产三级国产普通话三级 | 8av国产精品爽爽ⅴa在线观看| 国产成人a亚洲精品| 日本成人伦理电影| 91精品国自产在线观看| 国产成人高清精品免费5388| 久久精品国产美女| 日韩精品一区二区三区免费观看| 爱爱爱视频网站| 激情成人综合| 国产一线二线三线在线观看| 狠狠色综合日日| 欧美xxxx日本和非洲| 久久久久国产一区二区三区四区| 懂色av蜜桃av| 亚洲三级在线免费| 久久久久在线视频| 在线成人av网站| 国产又粗又猛又爽又黄的| 欧美精品一区二区在线观看| 美丽的姑娘在线观看免费动漫| 日韩在线观看网址| 女人高潮被爽到呻吟在线观看| 国产精品高潮视频| a一区二区三区亚洲| 欧美极品日韩| 午夜精品一区二区三区国产 | 久久综合桃花网| av一二三不卡影片| 五月婷婷婷婷婷| 欧美视频专区一二在线观看| 在线观看中文字幕码| 精品国产乱码久久久久久久久| 三区四区电影在线观看| 久久99热精品这里久久精品| 精品国产第一福利网站| 97久久精品午夜一区二区| 国产精品嫩模av在线| 国产69精品久久久久999小说| 日本成人在线电影网| 91传媒理伦片在线观看| 亚洲啪啪综合av一区二区三区| 高清乱码免费看污| 欧美成人aa大片| www.在线视频| 日韩免费av一区二区| 日韩中文字幕视频网| 一本一道久久a久久综合精品| 国产精品日韩| 天天操天天爱天天爽| 91蜜桃在线免费视频| www.超碰在线观看| 欧美亚男人的天堂| 色哟哟在线观看| 久久久久久中文| 亚洲精品一区二区三区在线| 亚洲欧美日韩精品在线| 免费视频一区| 亚洲精品成人无码| 婷婷中文字幕综合| 国产精品一品二区三区的使用体验| 国产一区二区三区精品久久久 | 国产日韩欧美一区二区三区乱码 | 国产精品久久久久久久久久| 美女视频免费精品| 国内外成人激情免费视频| 久久精品国产色蜜蜜麻豆| 久久久久久久久久久久久久久| 激情成人在线视频| 人妻一区二区三区四区| 久久99国产精品久久久久久久久| 日韩在线你懂得| 伊人久久青草| 麻豆精品视频在线观看| 自拍视频一区二区| 色综合久久久网| 九色在线观看| 国产美女被下药99| 久久亚洲国产| 三级性生活视频| 亚洲综合在线免费观看| 国产suv一区二区| 久久久久久久久网站| 9l视频自拍蝌蚪9l视频成人| 大桥未久一区二区三区| 国产精品一区二区久久精品爱涩| 国产精品 欧美激情| 欧美一级二级三级蜜桃| 丰满的护士2在线观看高清| 成人av资源网| 狠狠爱综合网| 国模无码视频一区| 午夜婷婷国产麻豆精品| 黄色在线小视频| 国产精品高潮呻吟视频| 国产成人手机高清在线观看网站| 亚洲色图 在线视频| 国产精品国产精品国产专区不蜜 | 一区二区三区四区五区视频在线观看| 国产欧美日韩成人| 久久人人爽人人| 在线看成人短视频| 九九视频精品在线观看| 亚洲欧美日韩精品久久久久| 国产精品伊人久久| 精品国产一区二区三区久久| 2020最新国产精品| 国产精品一区二区免费在线观看| 国产精品丝袜黑色高跟| 国产精品视频一二区| 久久久视频免费观看| 欧美视频网址| 无人码人妻一区二区三区免费| 天天做天天摸天天爽国产一区| 国产有码在线| 91中文在线观看| 日韩国产在线观看| 久久精品黄色片| 一区二区三区黄色| 精品久久国产一区| 热99这里只有精品| 亚洲视频一二三| 污视频网站免费观看|