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

谷歌開源 Swift for TensorFlow:我們是不是終于可以放下Python了?

開發 后端 移動開發
提到Swift語言,大家第一個想到的是Apple。所以,很自然地,Swift For TensorFlow,乍聽起來,似乎僅僅是iOS開發者需要關心的事。然而,其實iOS開發者并不需要關心Swift For TensorFlow,反而是機器學習開發者都需要關心Swift For TensorFlow.

今年3月的TensorFlow開發者峰會上,Google宣布了Swift For TensorFlow項目,提到這一項目將在4月開源。就在4月快過去的時候,Google終于在GitHub上公開了Swift For TensorFlow的源代碼。

[[228170]]

提到Swift語言,大家第一個想到的是Apple。所以,很自然地,Swift For TensorFlow,乍聽起來,似乎僅僅是iOS開發者需要關心的事。

然而,其實iOS開發者并不需要關心Swift For TensorFlow,反而是機器學習開發者都需要關心Swift For TensorFlow.

Swift For TensorFlow并不面向iOS開發

目前而言,iOS應用,如果想集成機器學習功能,那可以通過Apple提供的Core ML框架:

谷歌開源 Swift for TensorFlow:我們是不是終于可以放下Python了?

Core ML的工作流程如上圖所示,上面的Core ML機器學習模型,可以是你從網上找的現成的,也可能是你自己開發的(一般由基于MXNet、TensorFlow等開發的模型轉換而來)。所以,其實Core ML并不在意你的模型是用Python加TensorFlow編寫的,還是Swift加TensorFlow編寫的,甚至是用MXNet編寫的。最終iOS應用都是通過Core ML框架調用Core ML格式的模型。

所以,Swift For TensorFlow并不面向iOS開發,而是要取代Python!

其實這并不奇怪。雖然人們總是把Swift和Apple聯系起來,但其實Swift之父Chris Lattner在Google Brain(順便提下,Python之父Guido Van Rossum在2012年底離開Google去了Dropbox)。

谷歌開源 Swift for TensorFlow:我們是不是終于可以放下Python了?

Lattner在Swift發布前發推:“下個月我將是第一個也是唯一一個有4年swift編程經驗的人 :-)”

Python有什么不好

雖然Python是現在最流行的機器學習語言,但其實在機器學習場景下,Python的問題還真不少:

  1. 部署麻煩,運行時依賴太多。首先,移動端應用,帶上一大堆Python包,不太現實。其次,很多公司的生產環境,基于運維需求,不想部署大量Python包。目前的補救方法是,使用Python訓練模型,而真正的推理(運用)階段用別的語言,比如C++重寫,這導致了重復勞動,拖慢了開發周期。
  2. 動態類型,沒有編譯期類型檢查。這導致很多錯誤要到運行時才能發現。在機器學習場景下,這一問題的后果更加嚴重,因為機器學習模型常常需要訓練、運行很長時間。事實上,大型的Python項目都非常依賴單元測試,通過單元測試捕捉很多錯誤。但在機器學習的場景下,單元測試沒有用武之地。普通程序,跑一遍單元測試可能也就不到半小時,發現報錯,改過來再跑一遍就是了。而機器學習,模型跑了半個月,報錯了,發現是代碼編寫錯誤,試求此時心理陰影面積。
  3. 并發困難,臭名昭著的GIL問題。而機器學習模型對算力的貪婪需求,迫切需要靠并發緩解。
  4. 性能太差。事實上,像PyTorch這樣的框架,挖空心思補救Python的性能問題。而TensorFlow依靠圖模型(詳見下一節)以及C++、CUDA定制操作來規避Python的性能問題。使用C++、CUDA定制操作帶來了兩個問題:
  • C++是一門復雜的語言。尤其是很多研究人員和數據分析人員,并不具備C++經驗。
  • 使用C++/CUDA定制TensorFlow操作導致和硬件緊密耦合(CUDA意味著只能在Nvidia的GPU上跑),遷移到新硬件困難。這一點對Google來說尤其關鍵,因為Google除了用Nvidia的GPU外,自家還有TPU。

使用TensorFlow的時候,你真的在寫Python嗎?

讓我們看一段簡短的TensorFlow代碼示例:

 

  1. import tensorflow as tf 
  2.  
  3. x = tf.placeholder(tf.float32, shape=[1, 1]) 
  4. m = tf.matmul(x, x) 
  5.  
  6. with tf.Session() as sess: 
  7.     print(sess.run(m, feed_dict={x: [[2.]]})) 

這上面是合法的Python代碼,但是仔細看看,這些代碼實際上干了什么,我們就會發現,其實這些代碼構建了一個圖m,然后通過tf.Session()的run方法運行了圖m。

下面一段代碼可能更明顯,我們想迭代數據集dataset,在TensorFlow下需要這樣寫:

 

  1. dataset = tf.data.Dataset.range(100) 
  2. iterator = dataset.make_one_shot_iterator() 
  3. next_element = iterator.get_next() 
  4.  
  5. for i in range(100): 
  6.   value = sess.run(next_element) 
  7.   assert i == value 

我們看到,我們不能直接使用Python迭代數據集,而要通過TensorFlow提供的方法構建迭代器。

這一情況可以類比使用Python訪問SQL數據庫:

 

  1. t = ('RHAT',) 
  2. q = 'SELECT * FROM stocks WHERE symbol=?' 
  3. c.execute(q, t) 

這里,我們構造了SQL請求語句,然后通過Python“執行”(execute)這些語句。表面上你在寫Python,其實關鍵的邏輯在SQL語句里。更準確地說,你是在用Python構造SQL語句,然后運行構造的語句。這稱為元編程(meta programming)。

同理,在TensorFlow下,表面上你在寫Python,其實關鍵的邏輯都在TensorFlow圖里。更準確地說,你是在用Python構造TensorFlow圖,然后運行構造的圖。

實際上,2017年萬圣節(10月31日),Google發布了TensorFlow Eager Execution(貪婪執行),讓你可以直接使用Python編程,而不是使用Python元編程TensorFlow圖。

使用Eager Execution,上面兩段TensorFlow代碼可以改寫為:

 

  1. import tensorflow as tf 
  2. import tensorflow.contrib.eager as tfe 
  3.  
  4. # 開啟貪婪執行模式 
  5. tfe.enable_eager_execution() 
  6.  
  7. x = [[2.]] 
  8. m = tf.matmul(x, x) 
  9.  
  10. print(m) 
  11.  
  12. dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5, 6]) 
  13.  
  14. dataset = dataset.map(tf.square).shuffle(2).batch(2) 
  15. # Python風格的迭代器類 
  16. for x in tfe.Iterator(dataset): 
  17.   print(x) 

你看,TensorFlow明明可以“好好地”用Python編程的嘛。之前為什么要這么大費周折地繞一個圈子?

因為性能。

機器學習,尤其是現代的復雜模型,有著極高的算力需求。TensorFlow圖可以很好地應對貪婪的算力需求,而Python則對此力不從心。

TensorFlow圖專門針對機器學習的需求設計,所以可以很好地優化,以提升性能。然而,性能的優化并不是沒有代價的,為了更好地優化,TensorFlow圖對模型有著許多假設(這些假設從另一方面來說也是限制),也要求構造、運行分階段進行(靜態圖模型)。這影響了模型的靈活性和表達力,因此,不支持動態圖模型是TensorFlow的一大痛點。

兼顧性能與靈活性

TensorFlow Eager Executation支持動態圖,但是性能很差(還記得我們之前提到的Python的性能和GIL問題嗎?);常規的TensorFlow性能好,但靈活性不行。那么,有沒有可以兼顧兩者的方案呢?

機器學習社區在這方面做了很多探索。

傳統上,解釋器(TensorFlow Eager Executation本質上是一個解釋器)的性能,常常可以通過JIT來提升。PyTorch就嘗試通過Tracing JIT(跟蹤即時編譯)提升性能(基于Python、支持動態圖模型的PyTorch飽受Python性能問題的困擾)。簡單來說,Tracing JIT統計頻繁執行的操作,將其編譯為機器碼執行,從而優化性能。然而,Tracing JIT有一些問題,包括“展開的”運算可能導致非常長的trace,可能污染trace導致排錯困難,無法利用“以后的代碼”加以優化,等等。

因此,最終TensorFlow選擇了代碼生成這一條路。也就是對動態圖模型代碼進行分析,自動生成對應的TensorFlow圖程序。而正是這一選擇,導致了Python的出局。

 

谷歌開源 Swift for TensorFlow:我們是不是終于可以放下Python了?

圖程序提取(黃色方框)是Swift For TensorFlow的關鍵技術

Python有一大堆動態特性,使得Python無法被可靠地靜態分析。

那么,就只有兩個選擇:

  1. 對Python語言進行剪裁,得到一個便于靜態分析的子集。
  2. 換語言。

實際上,Google在2017年開源過一個Tangent項目。當時做Tangent,是為了解決自動微分(automatic differentiation)問題——自動微分同樣依賴于對代碼進行分析,而Python語言很難分析。然而,Python的類高度依賴動態特性,很難在這樣的子集上得到支持。而如果連類這樣的抽象層級都不支持的話,那基本上已經完全不像Python了。

所以,就換語言吧。

順帶提一下,TensorFlow選擇了靜態分析后生成代碼并編譯的路線,但其實生成代碼并不一定非得使用編譯器。2010年提出的Lightweight Modular Staging(LMS)技術可以支持在運行時進行代碼生成,無需編譯器。不過,LMS技術下,對控制流程的支持需要一些極少數語言(比如Scala)才支持的奇異特性。所以即使用LMS,也一樣需要換掉Python。而TensorFlow之所以沒有選擇LMS,除了可以進行LMS的語言極少之外,還有一個原因是LMS需要用戶介入,比如,在Scala下,需要將數據類型顯式地包裹進Rep類型才能支持LMS。

為什么是Swift?

其實,雖然有這么多編程語言,可供選擇的范圍并不大。

首先,語言的生態系統很重要。選擇一門語言,其實也是選擇這門語言的生態系統

,包括開發環境、調試工具、文檔、教程、庫、用戶。這就排除了創造一門新語言和使用大多數學術性語言兩個選項。

然后,動態性導致大批語言出局。之前已經提過,Python的大量動態特性導致難以可靠地靜態分析。同理,像R、Ruby、JavaScript之類的動態語言,也被排除了。

甚至像TypeScript、Java、C#、Scala這樣的靜態語言也不行,因為在這些語言中,動態分發(dynamic dispatch)非常普遍。具體來說,這些語言的主要抽象特征(類和接口)其實基于高度動態的構造。比如,在Java中,Foo foo = new Bar();foo.m()調用的是Bar類的m方法,而不是Foo類的m方法。

Google自家的Go語言也有這個問題。Go的接口也是動態分發的。而且,Go沒有泛型,當然,Go的map類型具有一些內建在語言中的類似泛型的特性。如果TensorFlow使用Go語言的話,Tensor也得像map一樣內建進Go語言才行,而Go語言社區推崇輕量設計,在Go語言中內建Tensor有悖其核心理念。

 

[[228172]]

在Swift For TensorFlow發布的同一天,Go發布了新設計的logo

那么,剩下的選擇就屈指可數了:

  • C++
  • Rust
  • Swift
  • Julia

C++很復雜,而且C++有著未定義行為太多的不好名聲,另外,C++大量依賴C宏和模板元編程。Rust的學習曲線非常陡峭。Julia是個很有趣的語言,雖然它是動態的,但是Julia有很多類型專門化(type specialization)的黑科技,因此也許可以支持TensorFlow圖特征提取。不過,Julia的社區比Swift小,再加上Swift之父在Google Brain,最終TensorFlow選擇了Swift.

當然,需要指出的是,Swift的類同樣是高度動態的,但是Swift有sturt和enum這些靜態的結構,而且這些結構同樣支持泛型、方法、協議(Swift的協議提供類似接口的特性及mixin)。這使得Swift既可以被可靠地靜態分析,又能有可用的高層抽象。

另外,還記得之前我們提到的Python的缺點嗎?讓我們看看Swift在這些方面的表現:

  1. 部署簡單。Swift可以編譯為機器碼,基于Swift編寫的ML模型可以編譯為簡單易部署的.o/.h文件。
  2. 靜態類型,提供編譯器檢查。另一方面,靜態類型也讓IDE可以更加智能地提示錯誤。這在實際編程中極有幫助。
  3. Swift在語言層面還不支持并發,但可以很好地配合pthreads使用。而且Swift即將在語言層面加入并發支持。
  4. Swift性能很好,對內存的需求也不高。由于Swift在移動端使用很普遍,因此Swift社區很重視性能優化。等顯式內存所有權支持加入后,Swift在很多場景下可以取代C++. Swift基于LLVM(別忘了,Swift之父也是LLVM之父),能夠直接訪問LLVM底層,而LLVM可以為Nvidia和AMD顯卡生成GPU核。因此,未來基于Swift定制TensorFlow操作也會是Swift For TensorFlow的優勢。

當然,目前機器學習社區積累了很多Python組件,因此,Swift For Python也提供了Python互操作性。比如,下面的代碼展示了如何在swift下訪問python的numpy庫(注釋為python代碼):

 

  1. import Python 
  2.  
  3. let np = Python.import("numpy")             // import numpy as np 
  4. let a = np.arange(15).reshape(3, 5)         // a = np.arange(15).reshape(3, 5) 
  5. let b = np.array([6, 7, 8])                 // b = np.array([6, 7, 8]) 

Python即將沒落?

最后,我們簡單展望下Python的前途。

想想現在Python主要用于什么場景?

教學。是的,Python作為教學語言很合適,但是,僅僅適合作為教學語言,遠遠不夠。上了年紀的讀者可能還記得小時候微機課(是的,那時候還用“微機”稱呼電腦)上教的Logo語言(操作小烏龜畫圖),現在還有多少人用呢?曾經風光無限的Pascal語言就是為教學而開發的,現在還有多少人用呢?而且,教學語言的選擇很大程度上受語言流行程度影響,而不是相反。當年鬧得沸沸揚揚的MIT計算機科學和編程入門課程從scheme換成python,理由之一就是python更流行。

工具。Python用來寫一些小工具不錯,因為Python的標準庫非常出色,寫起來不啰嗦,小工具也不太考慮性能問題,項目規模小,缺乏編譯期類型檢測也不是大問題。但這一塊已經逐漸被Go蠶食,因為Go的標準庫同樣出色,寫起來也很簡潔,性能還比Python好,部署起來還比Python方便。

web開發。Python的web開發,其實更多地是因為Python流行,庫多,容易招人,而不是真的有多么適合web開發。在web開發方面,Python有太多競爭者。古老的PHP仍有活力,PHP 7修正了很多一直被詬病的缺陷,還有Facebook這樣的巨頭為其開發配套工具。Ruby也仍然很受歡迎,很火的Python web開發框架Flask,其實最早就是借鑒了Ruby的Sinatra框架的設計。而高性能web開發越來越強調高IO、非阻塞,Node.js和Go在這方面表現出色,Java社區也出現了Netty和Vert.x(要比庫多,好招人,誰比得過Java?)。所以,Python在這方面實在沒什么優勢。

科學計算。目前而言,Python在這方面仍有顯著優勢。然而,曾幾何時,Fortran也在科學計算領域占據統治地位。現在還有多少人用呢?而且,由于Python的性能問題,實際上大量Python的科學計算庫底層大量依賴C或C++的,有朝一日轉移的話,會比當年的Fortran快太多。

機器學習。不得不說,AI和ML的浪潮,給Python打了強心針。因為科學計算相對而言,關注度沒有那么高。對比一下R,在統計分析領域也很流行,但從來沒有Python這么受關注,這是因為R并不適合寫工具和開發web. 然而,成也蕭何,敗也蕭何,Swift For TensorFlow的出現,就說明Python的機器學習主流語言的地位并不穩固(Python在機器學習領域的流行,更多地是因為科學計算方面的積累和流行程度,而不是真正適合建模機器學習問題)。

所以說,Python的沒落,很有可能喲~

責任編輯:未麗燕 來源: 論智原創
相關推薦

2018-04-30 18:07:51

谷歌開源編程

2020-09-26 10:43:57

Python語言數據分析

2021-07-29 20:29:36

Linux c 代碼Java

2024-07-16 16:53:09

2015-12-07 09:45:18

Swift開源好處

2021-11-28 17:26:50

PyTorchJuliaPython

2025-07-01 08:24:10

2018-09-12 16:44:45

iPhone蘋果雙卡雙待

2014-02-18 17:23:51

開源微軟開放技術

2019-05-30 10:42:30

Apache開源EAR

2015-08-11 09:51:06

谷歌重組Alphabet

2021-05-27 21:18:56

谷歌Fuchsia OS操作系統

2015-03-05 09:32:08

云應用AWS賬單提示

2021-08-10 09:02:37

NumPy視圖內存

2016-12-20 13:35:52

谷歌開源項目

2021-11-11 06:57:00

PythonPyPy程序

2013-07-17 10:16:57

Github項目許可證

2025-04-02 04:55:00

2013-08-19 11:03:21

微軟谷歌

2021-07-29 06:26:33

代碼Activity開發
點贊
收藏

51CTO技術棧公眾號

五月天av影院| 欧洲激情综合| 亚洲免费伊人电影| 成人国产精品av| xxxx黄色片| 成人免费看黄| 中文字幕一区二区三区四区不卡| 成人免费在线一区二区三区| 日韩精品久久久久久免费| 九九综合九九| 制服丝袜激情欧洲亚洲| 丁香婷婷综合激情| 四虎在线免费看| 午夜精品久久99蜜桃的功能介绍| 精品剧情v国产在线观看在线| 国产精品日韩三级| www.国产精品.com| 播五月开心婷婷综合| 国产在线视频91| 日韩精品在线免费看| 欧美视频网址| 欧美sm极限捆绑bd| 亚洲色精品三区二区一区| 国产精品刘玥久久一区| 国模大尺度一区二区三区| 欧美一区二区色| 青青青在线视频| 日韩黄色大片| 亚洲欧美日韩爽爽影院| 日韩欧美中文视频| 日本综合视频| 欧美性videos高清精品| 中文字幕欧美人与畜| 欧美色视频免费| 成人动漫精品一区二区| 亚洲a在线观看| 在线免费a视频| 午夜亚洲福利在线老司机| 欧美精品福利在线| 成人在线观看小视频| 国产在线日韩精品| 国产一区二区区别| 91精品久久久久久久91蜜桃 | 欧美暴力调教| 日韩毛片视频在线看| 日韩欧美激情一区二区| 色视频免费在线观看| 成人性视频免费网站| 91精品天堂| 午夜精品久久久99热福利| 91麻豆成人久久精品二区三区| 久久天堂电影网| 精品国产av色一区二区深夜久久 | 国产日本精品| 欧美精品福利在线| 国产精品美女毛片真酒店| 国产精品jizz在线观看美国| 久久久国产精品一区| 国产精品麻豆免费版现看视频| 日韩成人精品一区| 精品视频1区2区3区| 午夜精品久久久久久久99热影院| 国产激情欧美| 久久一二三四| 成人av在线影院| 国产精品流白浆视频| av网址在线观看免费| 欧美13videosex性极品| 第一福利永久视频精品| 91久色国产| 国产中文字幕视频| 欧美日韩免费| 亚洲人成电影在线| 在线观看免费小视频| 99精品全国免费观看视频软件| 日韩中文字幕国产| 日韩色av导航| 久激情内射婷内射蜜桃| 97人澡人人添人人爽欧美| 日韩电影一区二区三区| 亚洲精品成a人在线观看| 波多野结衣三级视频| 综合在线影院| 这里只有精品视频在线观看| wwwxxxx在线观看| 激情小说亚洲图片| 国产亚洲欧洲高清| 91aaa在线观看| 99亚洲伊人久久精品影院红桃| 国产精品国产福利国产秒拍| 92看片淫黄大片欧美看国产片| 国产黄在线免费观看| 在线看片不卡| 日韩在线视频观看| 久久亚洲成人av| 免费日韩一区二区| 91久久国产精品91久久性色| 中文字幕久久熟女蜜桃| 久久久久久黄| 欧美在线视频免费| 99热这里只有精品99| 久久精品女人| 国产精品偷伦视频免费观看国产| jizz中国少妇| 99国产精品| 久久青草福利网站| 中文在线观看免费高清| 成人免费av在线| 欧美三级在线视频| 国产成人精品免费视频大全最热 | 欧美亚洲黄色片| 欧美无毛视频| 日韩女优av电影| 国产精品酒店视频| 新狼窝色av性久久久久久| 久久69精品久久久久久国产越南| 欧产日产国产69| 成人永久aaa| 国产免费一区二区三区四在线播放 | 在线观看成人免费视频| 波多野结衣免费观看| 老司机亚洲精品一区二区| 成人欧美一区二区三区小说| 激情五月宗合网| 日韩一区二区三区免费视频| 日韩午夜精品视频| youjizz.com国产| 91精品国产调教在线观看| 日韩美女视频在线观看| 色综合久久久久久| 一区二区三区91| 国产不卡的av| 国产精品99在线观看| 国产精品高潮在线| 久久国产高清视频| 亚洲制服av| 国产在线一区二区三区播放| 午夜羞羞小视频在线观看| 四虎影视国产精品| 日韩精品专区在线影院重磅| 在线观看国产免费视频| 亚洲综合小说| 亚洲人午夜精品免费| 精品国产免费久久久久久婷婷| 亚洲男女av一区二区| 欧美在线xxx| 波多野结衣乳巨码无在线| 久久av偷拍| 中文字幕日韩av电影| 国产一级18片视频| 97se亚洲国产综合在线| 国产精品手机视频| 高清在线视频不卡| 精品夜色国产国偷在线| 久久国产视频一区| 久久精品亚洲国产奇米99| 欧美精品成人网| 精品一区不卡| 色94色欧美sute亚洲线路一ni | 香蕉精品999视频一区二区| 影音先锋日韩有码| 久久免费视频99| 午夜亚洲性色福利视频| 欧美日产一区二区三区在线观看| h片在线观看视频免费免费| 91 com成人网| 久久久久久天堂| 国产98色在线|日韩| 91丨九色丨国产在线| 人成网站在线观看| 亚洲日本一区二区三区| 美女扒开腿免费视频| 国产精品美女| 亚洲蜜桃av| heyzo高清国产精品| 精品性高朝久久久久久久| 在线观看国产区| 亚洲视频综合在线| 免费日本黄色网址| 国产探花视频在线观看| 亚洲欧洲日本mm| 国产精品久久7| 牛牛精品在线视频| 亚洲欧美日韩精品久久奇米色影视| 亚洲视屏在线观看| 国产欧美视频一区二区| 精品久久久久av| 超碰97久久| 国产精品成熟老女人| 青青久草在线| 午夜精彩视频在线观看不卡| 中文字幕网站在线观看| 九九国产精品视频| 国产精品入口夜色视频大尺度 | 91九色蝌蚪国产| 99在线视频影院| 中文字幕欧美专区| 天堂av手机版| 欧美精品日韩综合在线| 国产做受高潮漫动| 亚洲欧洲日本在线| 3d动漫精品啪啪一区二区下载| 亚洲成a人片77777精品| 欧美aaaaaa午夜精品| 在线观看18视频网站| 香蕉视频一区二区三区| 国产一区红桃视频| 国产福利片在线观看| 中文字幕一精品亚洲无线一区| 亚洲欧美黄色片| 欧美a级片一区| 久久亚洲综合网| 中文在线综合| 国产日韩精品视频| 国产伦理精品| 久久亚洲精品网站| av首页在线观看| 精品久久久久久中文字幕| 天天鲁一鲁摸一摸爽一爽| 久久久久久久久一| 中文字幕三级电影| 国产精品12区| 中文av字幕在线观看| 日韩精品视频网| 91免费视频网站在线观看| 欧美日韩国产欧| 亚洲高清中文字幕| 亚洲高清不卡一区| 日韩中文字幕| 久久免费视频网站| 成人黄色在线电影| 亚洲国内精品视频| www.黄色国产| 欧美裸体一区二区三区| 欧美成人久久久免费播放| 狠狠综合久久| 日本婷婷久久久久久久久一区二区| 日韩免费高清视频网站| 欧美精品久久久久久久久久| 性感美女一级片| 亚洲成a天堂v人片| 成人在线观看小视频| 成人免费一区二区三区视频| 国产主播av在线| 国产欧美日韩卡一| 亚洲а∨天堂久久精品2021| 国产日韩v精品一区二区| 亚洲第一页av| 国产视频一区在线观看| 欧美激情日韩图片| 国产精品视频在线观看免费| 久久久国产精品麻豆| 在线免费视频a| 影音先锋久久久| 韩国无码av片在线观看网站| 久久精品免费一区二区三区| 中文字幕一区二区三区四区五区六区 | 国产精品2018| 69堂国产成人免费视频| 国产精品成人av在线| 欧美激情国产精品免费| 久久综合九色综合97_久久久| 捆绑裸体绳奴bdsm亚洲| 不卡一区在线观看| 国产美女视频免费观看下载软件| 91丝袜呻吟高潮美腿白嫩在线观看| 久久国产精品高清| www.99re7| 91视视频在线观看入口直接观看www | av电影一区二区| 日本黄色录像片| 久久久久久久综合狠狠综合| 在线看片中文字幕| 国产麻豆精品95视频| www精品久久| 国产精品.xx视频.xxtv| 91手机在线播放| 林ゆな中文字幕一区二区| 久久国产欧美精品| 色综合天天爱| 精品一区二区三区无码视频| 香蕉久久国产| 国产一级片91| 99成人免费视频| 孩娇小videos精品| 粉嫩av亚洲一区二区图片| 九色porny自拍视频| av中文字幕电影在线看| 亚洲欧美日韩爽爽影院| 国产在线观看a| 久久99精品久久久久久青青91| 中日精品一色哟哟| 久久久www成人免费无遮挡大片| 强制高潮抽搐sm调教高h| 亚洲理论在线观看| 亚洲毛片亚洲毛片亚洲毛片| 四季av一区二区三区免费观看| 国产1区2区3区中文字幕| 亚洲美洲欧洲综合国产一区| 国产精品视频中文字幕| 成人小视频在线观看| 91l九色lporny| 中文av一区特黄| 免费三片在线播放| 色94色欧美sute亚洲线路一ni | 亚洲精品中文字幕av| 成人看av片| 精品国产成人在线影院| 香蕉视频黄色片| 久久成人精品一区二区三区| 四虎4545www国产精品| 国产精品一级久久久| 国产精品黑丝在线播放| 日韩在线www| 国产精品日日夜夜| 欧美亚洲愉拍一区二区| 天堂v在线观看| 欧美另类老女人| 视频在线日韩| 国产高清在线不卡| 日韩第一区第二区| 日韩亚洲综合在线| 中文字幕在线直播| 国产精品一区二区三区免费视频| www中文字幕在线观看| 日韩免费中文字幕| sis001欧美| 国产自产在线视频一区| 精品72久久久久中文字幕| 日韩美女爱爱视频| 老司机精品福利视频| 好吊操视频这里只有精品| 亚洲日本电影在线| 国产精品系列视频| 俺去亚洲欧洲欧美日韩| 91成人在线| 水蜜桃亚洲一二三四在线| 久久综合导航| jizz中文字幕| 国产美女久久久久| 亚洲自拍的二区三区| 亚洲免费一区二区| 少妇户外露出[11p]| 一区二区三区日韩在线观看| 亚洲在线精品视频| 色婷婷综合久久久久中文字幕1| 色视频免费在线观看| 久久久人成影片一区二区三区| 麻豆电影在线播放| 欧美激情小视频| 亚洲图色一区二区三区| 成人国产亚洲精品a区天堂华泰| 俺要去色综合狠狠| 日韩福利视频在线| 国产成人高清视频| 激情综合网五月天| 精品美女一区二区| 91色在线看| 久久大香伊蕉在人线观看热2| 校园激情久久| 日韩av片在线免费观看| 在线电影一区二区三区| 肉肉视频在线观看| 国产一级特黄a大片99| 国产一级久久| 国产精品久久免费观看| 欧美精品第1页| 亚洲淫性视频| 欧美在线激情网| 欧美伦理在线视频| 久久久精品高清| 制服丝袜专区在线| 国产精品第一视频| 欧美丝袜丝交足nylons172| 17c国产在线| 亚洲激情一二三区| 免费国产精品视频| 久久久久久久久亚洲| 91麻豆免费在线视频| 国产视频999| 伊人蜜桃色噜噜激情综合| 国产乱淫av麻豆国产免费| 黄网站色欧美视频| 日韩不卡高清视频| 久久久久www| 欧美日韩一本| 欧美一级黄色影院| 亚洲综合视频在线| 亚洲精品福利网站| 国产精品电影观看| 激情久久久久久久| av中文字幕免费观看| 欧美视频中文字幕在线| 黄色网在线看| 欧美另类一区| 国产老肥熟一区二区三区| 国产性生活视频| 欧美激情精品久久久久| 韩国美女久久| 美女亚洲精品|