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

PaddlePaddle與TensorFlow的對比分析

原創
人工智能 深度學習
本文主要從框架概覽、系統架構、編程模型、分布式架構、框架對比這五大方面比較TensorFlow和PaddlePaddle框架。

【51CTO.com原創稿件】

本文主要從框架概覽、系統架構、編程模型、分布式架構、框架對比這五大方面比較TensorFlow和PaddlePaddle框架。作為國際兩大搜索引擎研發的深度學習框架,使用側重點不同,卻同樣提供了優雅簡潔的設計架構,并且還在不斷發展。對于PaddlePaddle來說,它的易用性和本土性、快速業務集成性,對國內以速度致勝的互聯網公司是一個非常有利的武器;而TensorFlow的靈活性和相對偏科研性,是AI研究領域的一大利好。

框架概覽

PaddlePaddle的研發始于2013年,伴隨著百度廣告、文本、圖像、語音等訓練數據的快速增長,以及百度外賣、搜索、無人駕駛領域的算法要求,百度深度學習實驗室在基于單GPU訓練平臺的基礎上,研發了Paddle(Parallel Asynchronous Distributed Deep Learning)這個多機并行GPU這個訓練平臺。

PaddlePaddle自開源以來,它的設計和定位就一直集中在“易用、高效、靈活、可擴展”上。正如官網的設計定位: An Easy-to-use, Efficient, Flexible and Scalable Deep Learning Platform 。下圖是Paddle的官方網站:

paddle

PaddlePaddle框架的開源始于2016年9月份,它最大的特點和定位是easy to use,因此對很多算法進行了完整的封裝,不僅是針對只目前現成的CV、NLP等算法 (如VGG、ResNet、LSTM、GRU等),它在模型庫models(https://github.com/PaddlePaddle/models)模塊下,封裝了詞向量(包括Hsigmoid加速詞向量訓練和噪聲對比估計加速詞向量訓練)、RNN 語言模型、點擊率預估、文本分類、排序學習(信息檢索和搜索引擎研究的核心問題之一)、結構化語義模型、命名實體識別、序列到序列學習、閱讀理解、自動問答、圖像分類、目標檢測、場景文字識別、語音識別等多個技術領域人工智能的通用解決方案。

上述的每個解決方案都是針對某個技術場景而設計,因此,開發者可能只需要略微了解下源碼原理,按照官網的示例執行運行的命令,更換成自己的數據、修改一些超參數就能運行起來。并且因為沒有向用戶暴露過多的python接口,理解和使用起來還比較容易。但是因為側重在使用,在科研或者新增功能方面,如果修改算法,需要從框架的C++底層開始實現。

它的第二大特色是分布式部署,并且是目前是唯一很好的支持Kubernetes的深度學習庫。在本文的“分布式架構”中會進一步說明。

TensorFlow官網上對TensorFlow的描述是 An open-source software library for Machine Intelligence,一個開源的機器學習庫。

tensorflow

從使用人數和活躍度上來說,TensorFlow是目前最流行的人工智能的算法引擎。它提供了深度學習的基本元素的實現,例如conv、pooling、lstm和其它的基本算子。如下圖是TensorFlow支持的常用算子:

類別

示例

數學運算操作

Add、Sub、Mul、Div、Exp、Log、Greater、Less、Equal……

數組運算操作

Concat、Slice、Split、Constant、Rank、Shape、Shuffle……

矩陣運算操作

MatMul、MatrixInverse、MatrixDeterminant……

有狀態的操作

Variable、Assign、AssignAdd……

神經網絡構建操作

SoftMax、Sigmoid、ReLU、Convolution2D、MaxPool,……

檢查點操作

Save、Restore

隊列和同步操作

Enqueue、Dequeue、MutexAcquire、MutexRelease……

控制張量流動的操作

Merge、Switch、Enter、Leave、NextIteration

2016年4月,TensorFlow的0.8版本就支持了分布式、支持多GPU運算。2016年6月,TensorFlow的0.9版本改進了對移動設備的支持。2017年2月,TensorFlow的1.0正式版本中,增加了Java和Go的實驗性API,以及專用編譯器XLA和調試工具Debugger,還發布了tf.transform,專門用來數據預處理。同時,圍繞著模型部署推出了TensorFlow Serving,用于將算法動態部署到線上;以及逐步完善的類似于scikit-learn功能的tf.contrib.learn。并且還推出了“動態圖計算”TensorFlow Fold,這是被評價為“第一次清晰地在設計理念上領先”

用戶還可以使用谷歌公司的PaaS TensorFlow產品Cloud Machine Learning來做分布式訓練。現在也已經有了完整的TensorFlow Model Zoo。

2018年1月,TensorFlow已經支持到1.5.0版本,完整開放了TensorFlow Lite移動端應用以及動態圖機制Eager Execution,使得調試即刻的運行錯誤并和Python 工具進行整合。

TensorFlow的一大亮點是支持異構設備分布式計算

何為異構?信息技術當中的異構是指包含不同的成分,有異構網絡(如互聯網,不同廠家的硬件軟件產品組成統一網絡且互相通信)、異構數據庫(多個數據庫系統的集合,可以實現數據的共享和透明訪問)。這里的異構設備是指使用CPU、GPU等核心進行有效地協同合作;與只依靠CPU相比,性能更高,功耗更低。

那何為分布式?分布式架構目的在于幫助我們調度和分配計算資源(甚至容錯,如某個計算節點宕機或者太慢),使得上千萬、上億數據量的模型能夠有效地利用機器資源進行訓練。

總結來看,目前AI領域有幾大主流的框架,而今天我們所對比的這兩個框架的共性就是有都有下面的一些特點。我們參考《The Unreasonable Effectiveness of Recurrent Neural Networks》,這篇文章梳理了一個有效框架應該具有的功能。

  • Tensor庫是對CPU/GPU透明的,并且實現了很多操作(如切片、數組或矩陣操作等)。這里的透明是指,在不同設備上如何運行,都是框架幫用戶去實現的,用戶只需要指定在哪個設備上進行哪種運算即可。
  • 有一個完全獨立的代碼庫,用腳本語言(最理想的是Python)來操作Tensors,并且實現所有深度學習的內容,包括前向傳播/反向傳播、圖形計算等。
  • 可以輕松地共享預訓練模型(如Caffe的模型及TensorFlow中的slim模塊、PaddlePaddle的models模塊)。
  • 沒有編譯過程。深度學習是朝著更大、更復雜的網絡發展的,因此在復雜圖算法中花費的時間會成倍增加。而且,進行編譯的話會丟失可解釋性和有效進行日志調試的能力。

那么PaddlePaddle 對開發者來說有什么優勢?

首先,是易用性。相比偏底層的谷歌 TensorFlow,PaddlePaddle 的易用特點非常明顯:它讓開發者開發精力放在構建深度學習模型的高層部分。

除此之外,PaddlePadddle 是國內巨頭百度開源的框架,他的本土性不僅非常符合國人的使用習慣,而且非常重視主流互聯網技術的使用場景和解決方法。

其次,是更快的速度。如上所說,PaddlePaddle 的代碼和設計更加簡潔,用它來開發模型顯然能為開發者省去一些時間。這使得 PaddlePaddle 很適合于工業應用,尤其是需要快速開發的場景。

我們知道,系統架構就直接決定了框架設計的根本不同,現在我們就一起窺探一番。

系統架構

下圖給出的是TensorFlow的系統架構,自底向上分為設備層和網絡層、數據操作層、圖計算層、API層、應用層,其中設備層和網絡層、數據操作層、圖計算層是TensorFlow的核心層。

下面就自底向上詳細介紹一下TensorFlow的系統架構。最下層是網絡通信層和設備管理層。網絡通信層包括gRPC(google Remote Procedure Call Protocol)和遠程直接數據存取(Remote Direct Memory Access,RDMA),這都是在分布式計算時需要用到的。設備管理層包括TensorFlow分別在CPU、GPU、FPGA等設備上的實現,也就是對上層提供了一個統一的接口,使上層只需要處理卷積等邏輯,而不需要關心在硬件上的卷積的實現過程。

其上是數據操作層,主要包括卷積函數、激活函數等操作。再往上是圖計算層,也是我們要了解的核心,包含本地計算圖和分布式計算圖的實現(包括圖的創建、編譯、優化和執行)。再往上是API層和應用層。

應用

可能因為歷史遺留原因,PaddlePaddle整體架構思路和caffe有些類似,是基于神經網絡中的功能層來開發的,一個層包括了許多復雜的操作,如下圖中展示了目前包括FCN、CTC、BN、LSTM多種功能層。

gnc

并且它將數據讀取(DataProvider)、功能層(Layers)、優化方式(Optimizer)、評估(Evaluators)、激活函數(Activation)、池化(Pooling)這幾個過程分布實現成類,構建PaddlePaddle的神經網絡的過程就是組合這些層構成整個網絡。如下圖所示:

wl

同時,在一層一層累加之外,為了提高靈活性,還額外封裝好了的networks類,也就是設置mixed_layer來組合不同的輸入,如下圖。這里面封裝了一些可能需要的組合,如conv+batchnorm+pooling,它可以極大的簡化構建神經網絡的方式。使用更少的代碼,依據成熟的算法構建網絡的同時,修改數據的輸入就可以順利運行。

im

編程模型

Paddle目前整體模塊如下圖所示:

bclj

  • Math模塊是Paddle的數學計算模塊。其中有各種矩陣和向量的實現,矩陣和向量基類是BaseMatrix。這個模塊里主體分為兩個部分。
  • MemoryHandle: 申請、管理內存和顯存的模塊。Paddle中的所有計算都是對MemoryHandle的操作。(MemoryHandle本質上是對一段內存的抽象。包括這段內存的地址和大小。這段內存可以是申請在普通內存上,也可以是申請在GPU設備上。)
  • Matrix/Vector: Paddle中實現計算邏輯的類型。本質上是MemoryHandle的一個view。
  • 矩陣和向量組成了神經網絡的參數Parameter和神經網絡層的輸入和輸出Arguments。

Parameter和Arguments表示神經網絡中所有的數據和參數。其中Parameter表示神經網絡中層與層之間的連接參數,而Argument表示每一層的輸入和輸出。即Parameter表示下圖中的黃色連線,而Argument表示下圖中的的輸入和輸出(Input, Output)。

 

input

并且Parameter與Argument并不只保存了參數值,還同時保存了梯度,動量等信息。

  • Layer使用Argument和Parameter完成計算。

PaddlePaddle整體是一個基于Layer配置的神經網絡框架。為了支持更細粒度的神經網絡配置,支持配置op和projection,Paddle提供了MixedLayer。

MixedLayer和其他Layer不同,使用的輸入類型不直接是其他Layer本身,而是其他Layer的projection或者operation。其他Layer的projection和operation的結果依次相加到MixedLayer的輸出中。

  • GradientMachine是一個把神經網絡各個層組合在一起調用的類型。這是個基類,具有神經網絡常見的forward、backward函數,并且處理了單機多線程和多顯卡的功能。

GradientMachine是PaddlePaddle中對于神經網絡的一種抽象,即該數據類型可以計算出Gradient,進而將計算后的結果放入Parameter中即可。一個GradientMachine一般用來計算一個神經網絡的拓撲結構。進而,根據拓撲結構的形態,GradientMachine會創建一些parameters_,而forward根據輸入的args和本地的參數,計算神經網絡的前饋,而backward函數根據之前前饋的結果,計算出各個參數的梯度,并將各個參數的梯度保存在parameters_中。

  • Trainer調用GradientMachine計算出參數的梯度。
  • ParameterUpdaterParameterUpdater主要用于在gradientMachine通過forward backward計算出gradient之后,調用update算法更新參數。
  • Trainer優化的拓撲結構是Python端的config_parser.py程序生成的。

TensorFlow是用數據流圖做計算的,因此我們先創建一個數據流圖(也稱為網絡結構圖),如圖所示,看一下數據流圖中的各個要素。

圖中講述了TensorFlow的運行原理。圖中包含輸入(input)、塑形(reshape)、Relu層(Relu layer)、Logit層(Logit layer)、Softmax、交叉熵(cross entropy)、梯度(gradient)、SGD訓練(SGD Trainer)等部分,是一個簡單的回歸模型。

它的計算過程是,首先從輸入開始,經過塑形后,一層一層進行前向傳播運算。Relu層(隱藏層)里會有兩個參數,即Wh1和bh1,在輸出前使用ReLu(Rectified Linear Units)激活函數做非線性處理。然后進入Logit層(輸出層),學習兩個參數Wsm和bsm。用Softmax來計算輸出結果中各個類別的概率分布。用交叉熵來度量兩個概率分布(源樣本的概率分布和輸出結果的概率分布)之間的相似性。然后開始計算梯度,這里是需要參數Wh1、bh1、Wsm和bsm,以及交叉熵后的結果。隨后進入SGD訓練,也就是反向傳播的過程,從上往下計算每一層的參數,依次進行更新。也就是說,計算和更新的順序為bsm、Wsm、bh1和 Wh1。

ceng

顧名思義,TensorFlow是指“張量的流動”。TensorFlow的數據流圖是由節點(node)和邊(edge)組成的有向無環圖(directed acycline graph,DAG)。TensorFlow由Tensor和Flow兩部分組成,Tensor(張量)代表了數據流圖中的邊,而Flow(流動)這個動作就代表了數據流圖中節點所做的操作。

那么,在分布式計算下,兩種框架又各自有哪些實現特點呢?

分布式架構

PaddlePaddle的分布式結構主要有兩個部分,trainer和parameter server。分布式訓練架構如下圖所示:

mx

數據分片(Data shard): 用于訓練神經網絡的數據,被切分成多個部分,每個部分分別給每個trainer使用。

計算節點(Trainer): 每個trainer啟動后讀取切分好的一部分數據,開始神經網絡的“前饋”和“后饋”計算,并和參數服務器通信。在完成一定量數據的訓練后,上傳計算得出的梯度(gradients),然后下載優化更新后的神經網絡參數(parameters)。

參數服務器(Parameter server):每個參數服務器只保存整個神經網絡所有參數的一部分。參數服務器接收從計算節點上傳的梯度,并完成參數優化更新,再將更新后的參數下發到每個計算節點。

在使用同步SGD訓練神經網絡時,PaddlePaddle使用同步屏障(barrier),使梯度的提交和參數的更新按照順序方式執行。在異步SGD中,則并不會等待所有trainer提交梯度才更新參數,這樣極大地提高了計算的并行性:參數服務器之間不相互依賴,并行地接收梯度和更新參數,參數服務器也不會等待計算節點全部都提交梯度之后才開始下一步,計算節點之間也不會相互依賴,并行地執行模型的訓練。可以看出,雖然異步SGD方式會提高參數更新并行度, 但是并不能保證參數同步更新,在任意時間某一臺參數服務器上保存的參數可能比另一臺要更新,與同步SGD相比,梯度會有噪聲。

同時,Paddle本身支持多種分布式集群的部署和運行方式,包括fabric集群、openmpi集群、Kubernetes單機、Kubernetes distributed分布式等。TensorFlow的分布式架構主要由客戶端(client)和服務端(server)組成,服務端又包括主節點(master)和工作節點(worker)兩者組成。我們需要關注客戶端、主節點和工作節點這三者間的關系和它們的交互過程.

客戶端、主節點和工作節點的關系

簡單地來說,在TensorFlow中,客戶端通過會話來聯系主節點,實際的工作交由工作節點實現。每個工作節點占據一臺設備(是TensorFlow具體計算的硬件抽象,即CPU或GPU)。在單機模式下,客戶端、主節點和工作節點都在同一臺服務器上;在分布式模式下,它們可以位于不同的服務器上。下圖展示了這三者之間的關系。

kehd

1.客戶端

客戶端用于建立TensorFlow計算圖,并建立與集群進行交互的會話層。因此,代碼中只要包含Session()就是客戶端。一個客戶端可以同時與多個服務端相連,同時一個服務端也可以與多個客戶端相連

2.服務端

服務端是一個運行了tf.train.Server實例的進程,是TensorFlow執行任務的集群(cluster)的一部分,并有主節點服務(Master service,也叫主節點)和工作節點服務(Worker service,也叫工作節點)之分。運行中由一個主節點進程和數個工作節點進程組成,主節點進程和工作節點進程之間通過接口通信。單機多卡和分布式都是這種結構,因此只需要更改它們之間通信的接口就可以實現單機多卡和分布式的切換。

3.主節點服務

主節點服務實現了tensorflow::Session接口,通過RPC服務程序來遠程連接工作節點,與工作節點的服務進程中的工作任務進行通信。在TensorFlow服務端中,一般是task_index為0的作業(job)。

4.工作節點服務

工作節點服務實現了worker_service.proto接口,使用本地設備對部分圖進行計算。在TensorFlow服務端中,所有工作節點都包含工作節點的服務邏輯。每個工作節點負責管理一個或者多個設備。工作節點也可以是本地不同端口的不同進程,或者多臺服務器上的多個進程。

下圖左邊是單機多卡的交互,右邊是分布式的交互。

fbs

框架對比

下面是PaddlePaddle和TensorFlow在框架流行度和代碼穩定性上的比較。可以看出,兩個框架在活躍度、穩定性上都是一流,并且在代碼質量上也不分伯仲。

對PaddlePaddle我這里列舉以下Paddle的幾個亮點的地方:

  • 更易用的API,更好的封裝,更快速的業務集成;
  • 占用內存小,速度快,因為Paddle在百度內部也服務了眾多大并發大數據場景,工業經驗也很豐富;
  • 本土化支持,也是唯一有官方中文文檔的深度學習框架;
  • 在自然語言處理上有很多現成的應用,比如情感分類,神經機器翻譯,閱讀理解、自動問答等,使用起來相對簡單;
  • PaddlePaddle支持多機多卡訓練,并且本身支持多種集群方式。

總結本文主要從框架概覽、系統架構、編程模型、分布式架構、框架對比等幾個方面說明了PaddlePaddle和TensorFlow。總而言之,“易學易用、靈活高效”是PaddlePaddle的最大亮點,非常適合傳統互聯網引入AI模塊的集成,設計清晰也在研究方面也有所助力;除此之前,分布式架構支持的多種集群環境,可以較輕松地和企業的分布式架構結合。相信隨著眾多好用的模型的不斷釋出,一定會讓你在業務中找到滿意易用的算法方案。

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

責任編輯:張昂 來源: 51CTO
相關推薦

2018-01-26 14:29:01

框架

2010-07-20 16:16:21

SDH

2017-03-20 14:32:57

2021-05-18 10:18:15

Java

2023-05-14 22:00:01

2025-01-17 09:29:42

2010-06-08 11:15:43

OpenSUSE Ub

2010-08-04 15:47:24

NFS版本

2016-10-18 21:10:17

GitHubBitbucketGitLab

2024-08-08 07:38:42

2010-07-14 10:26:58

IMAP協議

2023-10-10 08:39:25

Java 7Java 8

2020-04-24 16:00:58

存儲分析應用

2017-05-05 10:15:38

深度學習框架對比分析

2010-06-24 21:35:33

2013-01-17 16:11:11

數據中心交換機網絡虛擬化

2018-06-07 09:45:08

2019-07-03 10:58:22

Kubernetes網絡插件

2015-11-16 15:37:13

編排工具集群管理對比

2019-12-26 16:21:59

ReactJSAngularJSVue.js
點贊
收藏

51CTO技術棧公眾號

五月天激情婷婷| 日韩精品一区二区三区国语自制| 久久人体av| 亚洲人成在线播放网站岛国| 国产精品国产精品国产专区蜜臀ah | 日韩精品欧美专区| 99精品久久久久久中文字幕 | 色综合老司机第九色激情| 少妇丰满尤物大尺度写真| 成人免费网站观看| 国产精品久久影院| 黄色91av| av中文字幕免费在线观看| 亚洲一区二区网站| 欧美老少配视频| 一本色道久久综合亚洲精品图片| 日本a人精品| 亚洲成人av一区二区三区| 秋霞毛片久久久久久久久| 一区不卡在线观看| 国产精品久久久久毛片大屁完整版| 亚洲最新av在线| 玖玖爱在线精品视频| 欧美成人黄色| 一本到不卡免费一区二区| 成人一区二区av| 在线激情网站| 国产欧美一区二区在线观看| 波多野结衣精品久久| 一本一道精品欧美中文字幕| 国产欧美成人| 欧美精品成人91久久久久久久| 国产一区第一页| 国产精品探花在线观看| 亚洲国产精品va在线看黑人| 青娱乐国产精品视频| 姬川优奈av一区二区在线电影| 亚洲一区二三区| 精品一区二区成人免费视频 | 不卡的av中国片| 97se亚洲综合在线| 国产一区二区自拍视频| 奇米影视一区二区三区| 2019精品视频| 黄色一级片免费看| 国内精品久久久久久久影视蜜臀 | 精品国产一区二区国模嫣然| 做a视频在线观看| 国产成+人+综合+亚洲欧美| 欧美体内谢she精2性欧美| 成人性生活视频免费看| 欧美日韩经典丝袜| 一区二区三区资源| 国产专区在线视频| 色噜噜狠狠狠综合欧洲色8| 1024国产精品| 穿情趣内衣被c到高潮视频| 黄网站app在线观看| 国产精品国产三级国产普通话三级| 日本一区二区不卡高清更新| 九色蝌蚪在线| 国产欧美一区二区精品性色超碰| 欧美在线3区| av资源在线观看免费高清| 国产欧美精品一区二区色综合| 欧美日韩高清在线一区| 麻豆app在线观看| 日本一区二区在线不卡| 一本色道久久99精品综合| 91美女视频在线| 综合色中文字幕| 久久www视频| 老司机深夜福利在线观看| 欧美日韩一区二区免费视频| 黄色一级大片在线观看| 成人精品动漫| 日韩精品中文字幕在线一区| 精品久久久久久无码人妻| 久久中文字幕导航| 亚洲欧美国产视频| 国产又粗又长又硬| 欧美视频四区| 欧美最顶级的aⅴ艳星| 亚洲av无码不卡| 狠狠色狠狠色综合| 国产欧美日韩在线播放| 加勒比一区二区三区在线| 国产精品国产三级国产| 日韩美女爱爱视频| 日韩成人亚洲| 日韩午夜在线观看| 欧美bbbbb性bbbbb视频| 精品视频网站| 欧美老女人性视频| www.色国产| 国产乱码精品一区二区三区忘忧草 | 91欧美一区二区| 中日韩在线视频| 九色porny自拍视频在线播放| 欧美在线色视频| 久久久久亚洲AV成人网人人小说| 亚洲性视频大全| 久久资源免费视频| 欧美a视频在线观看| 国产乱码一区二区三区| 日本视频一区在线观看| 日皮视频在线观看| 欧美三区在线视频| 精品无码国产一区二区三区51安| 99精品视频在线观看免费播放| 久久久久久一区二区三区| 国产精品sm调教免费专区| 国产超碰在线一区| 一区二区三区视频| 刘亦菲一区二区三区免费看| 日韩女优电影在线观看| 中文字幕在线观看二区| 国产色综合网| 91传媒在线免费观看| www日韩tube| 欧美日韩国产综合新一区 | 国产精品视频在线看| 欧美乱大交xxxxx潮喷l头像| 久久久精品一区二区毛片免费看| 日韩成人在线视频观看| 黄色一级视频免费| 精品亚洲国产成人av制服丝袜| 欧美日本韩国国产| 国产精品高颜值在线观看| 欧美一区二区在线看| 青青青视频在线播放| 久久电影一区| 久久久久综合一区二区三区| av第一福利在线导航| 日韩一级精品视频在线观看| jizzjizz日本少妇| 日韩精品成人一区二区三区| 久久久久久久久久久久久9999| 欧美黑人xx片| 欧美电视剧在线看免费| 欧美色图亚洲视频| 国产精品影视网| 久久最新免费视频| 996久久国产精品线观看| 色婷婷综合成人av| 7777久久亚洲中文字幕| 国产欧美日韩在线观看| 日韩免费高清在线| 激情五月综合| 国产精品久久久久久影视| 国产三级电影在线观看| 色噜噜狠狠一区二区三区果冻| 中文字幕一区二区久久人妻网站| 在线视频免费在线观看一区二区| 精选一区二区三区四区五区| 国产高清视频色在线www| 日韩精品视频三区| 国产主播第一页| 亚洲国产精品v| 九九九九九国产| 久久激情电影| 91麻豆国产精品| 天堂8中文在线| 亚洲国产日韩欧美在线99| 日本一区二区不卡在线| wwwwxxxxx欧美| 91蝌蚪视频在线观看| 日韩精品一区二区三区免费观影| 国产日本欧美一区| а√中文在线8| 亚洲国产精品久久久久久| 欧美激情亚洲综合| 国产欧美综合色| 色偷偷中文字幕| 欧美日韩mv| 欧美精品一区二区三区在线看午夜 | 亚洲国产一区二区三区| 亚洲精品视频大全| 免费av网站大全久久| 中文网丁香综合网| 久久香蕉网站| 国产精品亚洲自拍| 牛牛电影国产一区二区| 国产午夜精品理论片a级探花| 国产亚洲久一区二区| 一区二区高清免费观看影视大全| 久久偷拍免费视频| 久久99热99| 你懂的av在线| 国产精品99一区二区三| 国产精品一区二区欧美黑人喷潮水| 女人让男人操自己视频在线观看 | 日本vs亚洲vs韩国一区三区二区| 特级黄色录像片| 九一亚洲精品| 99久久伊人精品影院| 欧美性猛交xxx高清大费中文| 久久精品国产一区二区电影| 无码精品视频一区二区三区| 欧美日韩视频在线第一区 | 在线综合+亚洲+欧美中文字幕| 国产网友自拍视频| 中文字幕精品三区| 免费a v网站| 黄色精品一二区| 国产精品第12页| 国产精品vip| 日韩欧美一区二区三区四区五区| 91成人精品在线| 91精品国产综合久久久久久蜜臀| 嗯啊主人调教在线播放视频 | 国产在线精品免费| 欧美丰满熟妇xxxxx| 亚洲精品在线二区| 中国女人做爰视频| 日韩欧美中文| 日韩免费电影一区二区| 精品国产导航| 国产精品18毛片一区二区| 国产精品久久久久久久久久辛辛 | 久久婷婷国产麻豆91天堂 | 欧美刺激性大交免费视频| 国产三级视频在线看| 亚洲精品视频在线观看视频| 精品久久久中文字幕人妻| 欧美日韩激情一区| 国产91av在线播放| 色综合色综合色综合色综合色综合 | 天天综合天天综合| 日韩欧美www| 国产成人精品毛片| 91麻豆精品国产自产在线观看一区| 凹凸精品一区二区三区| 色综合久久88色综合天天 | 欧美精选一区二区| 成人一级免费视频| 日本韩国视频一区二区| 二区视频在线观看| 精品人伦一区二区三区蜜桃免费| 黄网站免费在线| 亚洲一级电影视频| 国产无码精品视频| 亚洲成人资源在线| 国产91av视频| 红桃视频成人在线观看| 五月婷婷开心网| 污片在线观看一区二区| 国产精品二区一区二区aⅴ| 亚洲国产欧美日韩另类综合 | 亚洲一区 欧美| 国产欧美日韩久久| 美女福利视频网| 国产精品久久精品日日| 91ts人妖另类精品系列| 国产精品家庭影院| 国产67194| 亚洲精品成人a在线观看| 久久久精品99| 亚洲va韩国va欧美va精品| 亚洲国产综合久久| 色婷婷精品久久二区二区蜜臂av | 日本一区二区三区在线视频| 国产成人精品三级高清久久91| 欧洲亚洲一区| 日韩免费高清| 精品91一区二区三区| 激情欧美一区| 成人在线观看黄| 久久99久久久久| 香蕉视频在线观看黄| gogogo免费视频观看亚洲一| 中文字幕5566| 一区精品在线播放| 精品在线免费观看视频| 欧美丝袜第一区| 国产一区二区在线视频观看| 精品国产一区二区精华| 日韩精品福利| 日韩在线视频二区| 国模精品视频| 国产在线精品一区免费香蕉| 91精品国产乱码久久久竹菊| 久久久久久久久久久久久久一区| 欧美亚洲国产激情| 日韩亚洲欧美一区二区| 校园激情久久| 中文字幕一区二区三区四| 成人免费毛片片v| 婷婷丁香综合网| 午夜精品久久久久影视| 最近中文字幕免费观看| 精品久久人人做人人爽| yiren22综合网成人| 久久久久久久久爱| 成人精品动漫| 久久国产精品亚洲va麻豆| 日本道不卡免费一区| aa视频在线播放| 激情六月婷婷久久| 国产精品1000部啪视频| 亚洲免费观看高清完整版在线观看 | 国产精品高潮粉嫩av| 97超碰成人| 亚洲国产精品综合| 99精品欧美| 久久黄色一级视频| 欧美经典一区二区| 国产成人亚洲精品自产在线| 精品视频1区2区| 日本又骚又刺激的视频在线观看| 欧美成人精品在线观看| av在线一区不卡| 久久久婷婷一区二区三区不卡| 女主播福利一区| 中文字幕视频三区| 国产三级欧美三级日产三级99| 九热这里只有精品| 制服丝袜一区二区三区| 成年人在线观看网站| 欧美一级黄色网| 国产日韩三级| 欧美a级免费视频| 国产真实乱对白精彩久久| 亚洲一区视频在线播放| 欧美视频一二三| 五月天激情婷婷| 97精品国产97久久久久久春色 | 欧美日韩天天操| 99在线精品视频在线观看| 91人妻一区二区三区| 综合久久久久综合| 亚洲中文字幕一区二区| 夜夜躁日日躁狠狠久久88av| 日韩大片免费观看| 九九九热999| 99成人免费视频| 91视频啊啊啊| 欧美日韩中文字幕日韩欧美| 蜜桃91麻豆精品一二三区| 久久国产加勒比精品无码| 四虎视频在线精品免费网址| 日韩高清av电影| 日韩电影在线一区二区三区| 91成人在线免费视频| 在线亚洲一区二区| 尤物网址在线观看| 91精品视频免费看| 欧美人与禽猛交乱配视频| 日本黄色一级网站| 亚洲综合视频网| 人妻妺妺窝人体色www聚色窝| 久久久久久亚洲| 婷婷五月色综合香五月| 能在线观看的av网站| 欧美国产视频在线| 91麻豆成人精品国产| 久久精品人人爽| 亚洲专区**| 国产精品一区二区免费在线观看| 91在线免费播放| 成人a v视频| 久久久国产一区二区| 国产美女亚洲精品7777| 免费看黄色a级片| aaa亚洲精品一二三区| 手机看片久久久| 自拍偷拍亚洲精品| 日韩在线观看中文字幕| 国产美女在线一区| 国产日韩精品久久久| 国产精品视频第一页| 欧美韩日一区二区| 伊人久久大香线蕉av不卡| 天天干天天综合| 日韩理论片网站| 天堂在线视频观看| 国产精品久久久久77777| 五月天久久777| 国产一线在线观看| 欧美色图免费看| 福利在线导航136| 手机看片福利永久国产日韩| 国产原创一区二区三区| 日韩av在线播| 爽爽爽爽爽爽爽成人免费观看| 视频成人永久免费视频| 成人一级片网站| 亚洲另类一区二区| 毛片网站在线| www.久久久| 蜜臀久久99精品久久久久宅男| 久久久无码精品亚洲国产| 亚洲欧洲成视频免费观看| 国产色99精品9i| 国产日韩成人内射视频| 亚洲午夜久久久久中文字幕久| 第一福利在线| 久久av一区二区| 国产一区二区不卡老阿姨| 午夜久久久久久久久久影院|