欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

TensorFlow實(shí)戰(zhàn)指南:從計(jì)算圖原理到生產(chǎn)部署的完整路徑

TensorFlow實(shí)戰(zhàn)指南:從計(jì)算圖原理到生產(chǎn)部署的完整路徑 1. 從零開始理解TensorFlow到底在做什么很多人第一次接觸TensorFlow腦子里冒出來的第一個(gè)問題不是“怎么用”而是“這玩意兒到底是干嘛的”。我剛開始學(xué)的時(shí)候也一樣看到一堆tf.constant、tf.Variable、Session老版本之類的概念完全不知道這些東西在實(shí)際工作中對(duì)應(yīng)什么。所以這一章我不急著講代碼先把TensorFlow的定位和核心邏輯說清楚。1.1 它本質(zhì)上是一個(gè)“計(jì)算圖執(zhí)行引擎”TensorFlow的核心思想其實(shí)可以用一句話概括先把計(jì)算過程描述成一張圖然后再把數(shù)據(jù)喂進(jìn)去執(zhí)行。這個(gè)“圖”就是所謂的計(jì)算圖Computational Graph。你可以把計(jì)算圖想象成一張工廠的流水線圖紙。圖紙上畫好了每個(gè)工位做什么、物料怎么流轉(zhuǎn)但圖紙本身不生產(chǎn)任何東西。只有當(dāng)你按下啟動(dòng)按鈕、把原材料送進(jìn)去流水線才開始運(yùn)轉(zhuǎn)。TensorFlow里的“圖紙”就是計(jì)算圖“原材料”就是張量Tensor“啟動(dòng)按鈕”就是會(huì)話或即時(shí)執(zhí)行模式。這種設(shè)計(jì)帶來的好處是計(jì)算圖可以被優(yōu)化、被分布式部署、被跨平臺(tái)執(zhí)行。比如你在本地定義好一張圖可以把它放到服務(wù)器集群上跑也可以轉(zhuǎn)成移動(dòng)端能用的格式。這是TensorFlow早期最大的賣點(diǎn)也是它能在工業(yè)界站穩(wěn)腳跟的根本原因。1.2 張量一切數(shù)據(jù)的基本單位TensorFlow里所有的數(shù)據(jù)都以**張量Tensor**的形式存在。張量這個(gè)詞聽起來很唬人但你可以把它簡單理解為“多維數(shù)組”零階張量就是一個(gè)標(biāo)量比如5一階張量就是一個(gè)向量比如[1, 2, 3]二階張量就是一個(gè)矩陣比如[[1,2],[3,4]]更高階的就是三維、四維數(shù)組比如一張彩色圖片可以表示為[高度, 寬度, 3]的三階張量在TensorFlow中張量有**形狀shape和數(shù)據(jù)類型dtype**兩個(gè)關(guān)鍵屬性。形狀決定了數(shù)據(jù)的維度結(jié)構(gòu)數(shù)據(jù)類型決定了每個(gè)元素占多少內(nèi)存、能做什么運(yùn)算。這兩個(gè)屬性在調(diào)試時(shí)極其重要后面我會(huì)專門講怎么排查形狀不匹配的問題。1.3 為什么它叫“TensorFlow”名字里的“Flow”指的是張量在計(jì)算圖中的流動(dòng)過程。數(shù)據(jù)從輸入節(jié)點(diǎn)流入經(jīng)過一系列運(yùn)算節(jié)點(diǎn)最終從輸出節(jié)點(diǎn)流出。整個(gè)過程中張量像水流一樣沿著圖的邊傳遞這就是“TensorFlow”這個(gè)名字的由來。理解了這一點(diǎn)你就能明白為什么TensorFlow的代碼總是圍繞“定義圖”和“執(zhí)行圖”這兩個(gè)階段展開。雖然現(xiàn)在TensorFlow 2.x默認(rèn)使用即時(shí)執(zhí)行Eager Execution看起來跟普通Python代碼沒什么區(qū)別但底層的計(jì)算圖機(jī)制依然存在只是在需要的時(shí)候比如用tf.function裝飾器才會(huì)被顯式構(gòu)建和優(yōu)化。1.4 適合誰學(xué)、能解決什么問題TensorFlow的應(yīng)用場(chǎng)景非常廣從圖像識(shí)別、自然語言處理到推薦系統(tǒng)、時(shí)間序列預(yù)測(cè)幾乎覆蓋了深度學(xué)習(xí)的全部領(lǐng)域。它特別適合以下幾類人想進(jìn)入工業(yè)界做AI工程的人TensorFlow在生產(chǎn)部署方面的生態(tài)非常成熟TF Serving、TF Lite、TF.js等工具鏈覆蓋了從服務(wù)器到移動(dòng)端到瀏覽器的全場(chǎng)景。需要做大規(guī)模分布式訓(xùn)練的人TensorFlow的分布式策略API可以讓你用很少的代碼把訓(xùn)練任務(wù)擴(kuò)展到多機(jī)多卡。做研究但需要快速驗(yàn)證想法的人Keras作為TensorFlow的高層API幾行代碼就能搭出一個(gè)可用的模型。當(dāng)然如果你只是想做學(xué)術(shù)研究、快速實(shí)驗(yàn)PyTorch可能更順手。這不是誰好誰壞的問題而是工具定位不同。后面我會(huì)專門用一章來對(duì)比這兩個(gè)框架的流行趨勢(shì)和選型邏輯。2. 安裝TensorFlow時(shí)最容易踩的五個(gè)坑安裝TensorFlow看起來只是pip install tensorflow一行命令的事但實(shí)際操作中十個(gè)人里有六七個(gè)會(huì)在這一步卡住。我見過太多人在環(huán)境配置上耗掉一整天最后連第一行代碼都沒跑起來。這一章我把最常見的坑一個(gè)個(gè)拆開講每個(gè)坑都給出完整的排查思路和解決方案。2.1 Python版本與TensorFlow版本的對(duì)應(yīng)關(guān)系這是最基礎(chǔ)但也最容易被忽略的問題。TensorFlow對(duì)Python版本有明確的兼容范圍裝錯(cuò)了版本輕則import報(bào)錯(cuò)重則pip直接拒絕安裝。截至2024年主流TensorFlow版本的Python兼容情況如下TensorFlow版本支持的Python版本備注2.16.x3.9 - 3.12默認(rèn)集成Keras 32.15.x3.9 - 3.11穩(wěn)定性好推薦生產(chǎn)使用2.14.x3.9 - 3.11最后一個(gè)支持Keras 2的版本之一2.13.x3.8 - 3.11老項(xiàng)目兼容首選2.12.x3.8 - 3.11部分舊教程基于此版本注意如果你用的是Python 3.12請(qǐng)務(wù)必選擇TensorFlow 2.16及以上版本否則pip會(huì)直接報(bào)“No matching distribution found”。我的建議是新手直接用Python 3.10或3.11這兩個(gè)版本兼容性最好幾乎所有主流的TensorFlow版本都支持第三方庫的適配也最完善。2.2 pip安裝時(shí)的網(wǎng)絡(luò)超時(shí)問題pip install tensorflow下載的包體積不小CPU版本約200MBGPU版本更大如果網(wǎng)絡(luò)不穩(wěn)定很容易在下載中途超時(shí)。典型報(bào)錯(cuò)是ReadTimeoutError: HTTPSConnectionPool(hostpypi.org, port443): Read timed out.解決辦法是換用國內(nèi)鏡像源并適當(dāng)延長超時(shí)時(shí)間pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple --timeout 120如果你需要安裝GPU版本把tensorflow換成tensorflow[and-cuda]TensorFlow 2.16的寫法或tensorflow-gpu老版本寫法。不過要注意從TensorFlow 2.11開始Windows平臺(tái)已經(jīng)不再支持GPU版本了Windows用戶只能用CPU版本或者走WSL2。2.3 GPU版本安裝后檢測(cè)不到顯卡這是GPU用戶最常遇到的問題裝完了tensorflow[and-cuda]運(yùn)行tf.config.list_physical_devices(GPU)卻返回空列表。原因通常有三個(gè)第一個(gè)原因是CUDA和cuDNN版本不匹配。TensorFlow每個(gè)版本都對(duì)CUDA和cuDNN有明確的版本要求。比如TensorFlow 2.15需要CUDA 12.2和cuDNN 8.9你裝了CUDA 11.8就認(rèn)不出來。查版本對(duì)應(yīng)關(guān)系最靠譜的方法是去TensorFlow官網(wǎng)的“Tested build configurations”頁面看表格不要憑記憶。第二個(gè)原因是環(huán)境變量沒配好。Windows上需要把CUDA的bin目錄和cuDNN的bin目錄都加到PATH里。Linux上需要設(shè)置LD_LIBRARY_PATH。很多人只加了CUDA忘了加cuDNN結(jié)果就是找不到cudnn64_8.dll之類的文件。第三個(gè)原因是驅(qū)動(dòng)版本太老。NVIDIA顯卡驅(qū)動(dòng)有一個(gè)最低版本要求低于這個(gè)版本即使CUDA裝對(duì)了也用不了。用nvidia-smi命令可以查看當(dāng)前驅(qū)動(dòng)版本和支持的最高CUDA版本。排查的時(shí)候按這個(gè)順序來先確認(rèn)驅(qū)動(dòng)版本夠不夠再確認(rèn)CUDA和cuDNN版本對(duì)不對(duì)最后確認(rèn)環(huán)境變量有沒有配全。三步走完99%的GPU檢測(cè)問題都能解決。2.4 虛擬環(huán)境里裝完了換終端就找不到這個(gè)坑的本質(zhì)是虛擬環(huán)境沒有激活。很多人在PyCharm或者VS Code里創(chuàng)建了虛擬環(huán)境在IDE的終端里裝好了TensorFlow一換到系統(tǒng)終端就報(bào)ModuleNotFoundError: No module named tensorflow。解決辦法很簡單每次打開新終端先激活虛擬環(huán)境。Windows下venv\Scripts\activateLinux或macOS下source venv/bin/activate激活后命令行前面會(huì)出現(xiàn)(venv)字樣這時(shí)候再運(yùn)行Python就能找到TensorFlow了。如果你用的是conda環(huán)境對(duì)應(yīng)命令是conda activate 環(huán)境名。提示可以在IDE的設(shè)置里把默認(rèn)終端配置成自動(dòng)激活虛擬環(huán)境省去每次手動(dòng)激活的麻煩。2.5 安裝成功但import時(shí)報(bào)DLL錯(cuò)誤Windows用戶特別容易遇到這個(gè)ImportError: DLL load failed while importing _pywrap_tensorflow_internal這個(gè)錯(cuò)誤的根源通常是缺少Visual C Redistributable。TensorFlow的底層C擴(kuò)展依賴微軟的運(yùn)行庫新裝的系統(tǒng)或者精簡版系統(tǒng)往往沒帶。去微軟官網(wǎng)下載最新的“Visual C Redistributable for Visual Studio 2015-2022”裝上重啟終端再試基本就能解決。如果裝完還是報(bào)錯(cuò)檢查一下是不是同時(shí)裝了多個(gè)TensorFlow版本導(dǎo)致沖突。用pip list | grep tensorflow看看有沒有重復(fù)的包有的話先全部卸載再重新裝一個(gè)干凈的。3. 用Keras快速搭出第一個(gè)能跑的模型環(huán)境配好之后下一步就是寫出第一個(gè)能跑通的模型。TensorFlow 2.x把Keras作為官方高層API搭模型的門檻已經(jīng)降得很低了。但“能跑”和“跑得好”之間還有不少細(xì)節(jié)這一章我按實(shí)際項(xiàng)目中的流程從數(shù)據(jù)準(zhǔn)備到模型訓(xùn)練到結(jié)果驗(yàn)證完整走一遍。3.1 數(shù)據(jù)管道的構(gòu)建為什么不用NumPy直接喂新手最常見的做法是把數(shù)據(jù)轉(zhuǎn)成NumPy數(shù)組然后直接傳給model.fit()。小數(shù)據(jù)集上這么做沒問題但數(shù)據(jù)量一上來就會(huì)遇到內(nèi)存瓶頸。TensorFlow提供了tf.data.DatasetAPI來構(gòu)建高效的數(shù)據(jù)管道核心優(yōu)勢(shì)有三個(gè)惰性加載數(shù)據(jù)不會(huì)一次性全部讀進(jìn)內(nèi)存而是按需分批讀取并行預(yù)處理可以在CPU上并行做數(shù)據(jù)增強(qiáng)、歸一化等操作同時(shí)GPU在跑訓(xùn)練預(yù)取機(jī)制當(dāng)前批次在訓(xùn)練時(shí)下一批次已經(jīng)在準(zhǔn)備了減少GPU等待時(shí)間一個(gè)典型的數(shù)據(jù)管道構(gòu)建流程是這樣的import tensorflow as tf # 假設(shè)數(shù)據(jù)在磁盤上用image_dataset_from_directory快速構(gòu)建 train_ds tf.keras.utils.image_dataset_from_directory( data/train, image_size(224, 224), batch_size32, label_modecategorical ) # 加上預(yù)取和緩存提升吞吐 train_ds train_ds.cache().prefetch(buffer_sizetf.data.AUTOTUNE)cache()把數(shù)據(jù)緩存在內(nèi)存或本地文件里避免每個(gè)epoch重新讀盤。prefetch()讓數(shù)據(jù)準(zhǔn)備和模型計(jì)算重疊起來。這兩個(gè)操作加起來通常能讓訓(xùn)練速度提升30%以上而且代碼只多了一行。3.2 模型結(jié)構(gòu)設(shè)計(jì)從Sequential到Functional APIKeras提供了兩種主要的模型構(gòu)建方式Sequential和Functional API。Sequential適合層與層之間線性堆疊的場(chǎng)景寫法最簡潔model tf.keras.Sequential([ tf.keras.layers.Rescaling(1./255, input_shape(224, 224, 3)), tf.keras.layers.Conv2D(32, 3, activationrelu), tf.keras.layers.MaxPooling2D(), tf.keras.layers.Conv2D(64, 3, activationrelu), tf.keras.layers.MaxPooling2D(), tf.keras.layers.Flatten(), tf.keras.layers.Dense(128, activationrelu), tf.keras.layers.Dense(10, activationsoftmax) ])但實(shí)際項(xiàng)目中模型往往不是一條直線走到底的。比如你想做多輸入圖片文本、多輸出分類回歸或者想加殘差連接Sequential就力不從心了。這時(shí)候需要用Functional APIinputs tf.keras.Input(shape(224, 224, 3)) x tf.keras.layers.Rescaling(1./255)(inputs) x tf.keras.layers.Conv2D(32, 3, activationrelu)(x) x tf.keras.layers.MaxPooling2D()(x) # ... 更多層 outputs tf.keras.layers.Dense(10, activationsoftmax)(x) model tf.keras.Model(inputsinputs, outputsoutputs)Functional API的本質(zhì)是“把層當(dāng)作函數(shù)來調(diào)用”輸入張量進(jìn)去輸出張量出來最后用Model把輸入和輸出串起來。這種寫法靈活度極高幾乎能表達(dá)任何你能想到的網(wǎng)絡(luò)結(jié)構(gòu)。我的經(jīng)驗(yàn)是原型階段用Sequential快速驗(yàn)證一旦結(jié)構(gòu)復(fù)雜起來立刻切到Functional API。不要等到Sequential寫不下去了才改那時(shí)候重構(gòu)成本更高。3.3 編譯與訓(xùn)練優(yōu)化器、損失函數(shù)、指標(biāo)怎么選模型結(jié)構(gòu)定義好之后用compile()方法配置訓(xùn)練過程model.compile( optimizertf.keras.optimizers.Adam(learning_rate1e-3), losscategorical_crossentropy, metrics[accuracy] )這三個(gè)參數(shù)的選擇有講究優(yōu)化器方面Adam是默認(rèn)首選它對(duì)學(xué)習(xí)率不敏感大多數(shù)場(chǎng)景下都能work。如果訓(xùn)練不穩(wěn)定可以試試AdamW帶權(quán)重衰減的Adam或者SGDMomentum。學(xué)習(xí)率從1e-3開始試效果不好再調(diào)。損失函數(shù)取決于任務(wù)類型。多分類用categorical_crossentropy標(biāo)簽是one-hot或sparse_categorical_crossentropy標(biāo)簽是整數(shù)。二分類用binary_crossentropy?;貧w用mse或huber。指標(biāo)是給人看的不影響訓(xùn)練過程。分類任務(wù)通常看accuracy但類別不平衡時(shí)accuracy會(huì)誤導(dǎo)人這時(shí)候應(yīng)該看AUC或F1Score。訓(xùn)練用fit()方法history model.fit( train_ds, validation_dataval_ds, epochs20, callbacks[ tf.keras.callbacks.EarlyStopping(patience3, restore_best_weightsTrue), tf.keras.callbacks.ModelCheckpoint(best_model.keras, save_best_onlyTrue) ] )EarlyStopping在驗(yàn)證集指標(biāo)不再提升時(shí)自動(dòng)停止訓(xùn)練避免過擬合。ModelCheckpoint保存驗(yàn)證集上表現(xiàn)最好的模型權(quán)重。這兩個(gè)回調(diào)幾乎是我每個(gè)項(xiàng)目都會(huì)加的標(biāo)配。3.4 訓(xùn)練過程中的形狀不匹配問題排查形狀不匹配是TensorFlow報(bào)錯(cuò)里出現(xiàn)頻率最高的一類。典型報(bào)錯(cuò)長這樣ValueError: Input 0 of layer dense is incompatible with the layer: expected axis -1 of input shape to have value 128, but received input with shape (None, 64)這個(gè)報(bào)錯(cuò)的意思是Dense層期望輸入的最后一位是128但實(shí)際收到的是64。排查思路是從報(bào)錯(cuò)的那一層往前推看前一層的輸出形狀到底是多少。常見原因有幾個(gè)卷積層到全連接層之間忘了加Flatten()導(dǎo)致傳進(jìn)去的是四維張量而不是二維池化層算錯(cuò)了輸出尺寸比如輸入是7x7用了3x3的池化窗口加步長2輸出就變成3x3而不是預(yù)期的2x2多輸入模型里把不同形狀的張量拼錯(cuò)了位置排查的時(shí)候可以在模型定義里逐層打印形狀for layer in model.layers: print(layer.name, layer.output_shape)或者在構(gòu)建模型時(shí)用model.summary()看每一層的輸入輸出形狀。養(yǎng)成定義完模型先跑一遍summary()的習(xí)慣能省掉大量調(diào)試時(shí)間。4. TensorFlow與PyTorch的選型邏輯2024年的真實(shí)格局“TensorFlow和PyTorch選哪個(gè)”這個(gè)問題從2019年問到2024年答案一直在變。我不想給你一個(gè)非此即彼的結(jié)論而是把兩個(gè)框架在2024年的真實(shí)格局拆開講讓你根據(jù)自己的場(chǎng)景做判斷。4.1 學(xué)術(shù)界與工業(yè)界的分化趨勢(shì)先看一組我觀察到的趨勢(shì)基于論文投稿、開源項(xiàng)目、招聘需求三個(gè)維度的綜合判斷維度TensorFlowPyTorch學(xué)術(shù)論文實(shí)現(xiàn)占比逐年下降占比超過80%工業(yè)部署生態(tài)成熟TF Serving/TFLite追趕中TorchServe/TorchScript移動(dòng)端TFLite非常成熟PyTorch Mobile活躍度一般瀏覽器端TF.js生態(tài)完整支持有限教學(xué)入門Keras上手極快代碼更Pythonic分布式訓(xùn)練tf.distribute成熟DDP簡潔高效學(xué)術(shù)界的趨勢(shì)很明顯新論文的官方實(shí)現(xiàn)越來越多用PyTorch。原因不復(fù)雜——PyTorch的動(dòng)態(tài)圖機(jī)制寫起來更直觀調(diào)試更方便跟Python原生控制流結(jié)合得更好。研究者不需要考慮部署問題他們只需要快速驗(yàn)證想法。工業(yè)界的格局則不同。TensorFlow在部署工具鏈上的積累非常深尤其是移動(dòng)端和邊緣設(shè)備。TFLite可以把模型壓縮到幾MB在手機(jī)上跑實(shí)時(shí)推理這套流程已經(jīng)非常成熟。很多公司的線上服務(wù)是用TF Serving搭的遷移成本很高。4.2 動(dòng)態(tài)圖與靜態(tài)圖的本質(zhì)差異兩個(gè)框架最根本的區(qū)別在于計(jì)算圖的構(gòu)建方式。PyTorch是動(dòng)態(tài)圖每次前向傳播時(shí)實(shí)時(shí)構(gòu)建計(jì)算圖代碼怎么寫就怎么執(zhí)行。這意味著你可以用普通的Pythonif、for、print來調(diào)試跟寫普通Python程序沒區(qū)別。TensorFlow 2.x默認(rèn)也是動(dòng)態(tài)圖Eager Execution但在需要用tf.function裝飾器時(shí)會(huì)把Python函數(shù)編譯成靜態(tài)圖。靜態(tài)圖的好處是執(zhí)行效率高、可以跨平臺(tái)部署代價(jià)是調(diào)試?yán)щy——圖里面的print不會(huì)按預(yù)期輸出if語句的行為也跟普通Python不同。我的實(shí)際體驗(yàn)是日常開發(fā)和調(diào)試用動(dòng)態(tài)圖最終部署前用tf.function把關(guān)鍵函數(shù)編譯成圖。這樣既保留了開發(fā)效率又拿到了部署時(shí)的性能優(yōu)勢(shì)。tf.function def train_step(x, y): with tf.GradientTape() as tape: predictions model(x, trainingTrue) loss loss_fn(y, predictions) gradients tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(gradients, model.trainable_variables)) return loss這個(gè)train_step函數(shù)第一次調(diào)用時(shí)會(huì)被追蹤trace成圖后續(xù)調(diào)用直接執(zhí)行圖速度比純Eager模式快不少。4.3 什么場(chǎng)景下TensorFlow仍然是更優(yōu)解雖然PyTorch在學(xué)術(shù)界的聲量更大但以下幾種場(chǎng)景我仍然會(huì)優(yōu)先選TensorFlow第一需要部署到移動(dòng)端或嵌入式設(shè)備。TFLite的工具鏈成熟度目前還是領(lǐng)先的模型量化、剪枝、轉(zhuǎn)換的流程都有官方支持踩坑成本低。第二需要瀏覽器端推理。TF.js可以直接在瀏覽器里跑模型不需要后端服務(wù)。這個(gè)能力在演示、教育、隱私敏感場(chǎng)景下很有價(jià)值。第三團(tuán)隊(duì)已經(jīng)有TensorFlow技術(shù)積累。遷移框架的成本很高如果現(xiàn)有系統(tǒng)跑得好好的沒必要為了追新而重構(gòu)。第四需要用到TPU。TensorFlow對(duì)TPU的支持是原生的PyTorch雖然也支持但生態(tài)相對(duì)薄弱。4.4 我的實(shí)際選型建議如果你問我個(gè)人怎么選我的答案是兩個(gè)都學(xué)但先精通一個(gè)。先精通哪個(gè)取決于你的目標(biāo)。想進(jìn)大廠做AI工程、做部署先把TensorFlow的部署鏈路走通。想做研究、發(fā)論文、快速實(shí)驗(yàn)先把PyTorch用熟。但不管先學(xué)哪個(gè)另一個(gè)的基本用法都要會(huì)——實(shí)際工作中經(jīng)常需要讀別人的代碼、復(fù)現(xiàn)別人的模型兩個(gè)框架都懂才能游刃有余。從學(xué)習(xí)路徑上看我的建議是先學(xué)TensorFlow的Keras部分建立深度學(xué)習(xí)整體認(rèn)知再學(xué)PyTorch理解底層機(jī)制最后回到TensorFlow的tf.function和分布式策略深入工程化能力。這個(gè)路徑走下來兩個(gè)框架的核心能力都能掌握。5. 訓(xùn)練效率優(yōu)化從能跑到跑得快的實(shí)戰(zhàn)技巧模型能跑通只是第一步實(shí)際項(xiàng)目中更常見的問題是“跑得太慢”。一個(gè)epoch要幾個(gè)小時(shí)調(diào)一次參等一天這種效率根本沒法迭代。這一章我分享幾個(gè)在實(shí)際項(xiàng)目中驗(yàn)證過的優(yōu)化手段每個(gè)都附帶具體的代碼和效果對(duì)比。5.1 輸入管道的性能瓶頸定位優(yōu)化之前先要找到瓶頸在哪。TensorFlow提供了tf.data的性能分析工具options tf.data.Options() options.autotune.enabled True dataset dataset.with_options(options)更直接的方法是用TensorBoard的Profilertf.profiler.experimental.start(logdir) model.fit(train_ds, epochs1) tf.profiler.experimental.stop()然后在TensorBoard里看“Profile”標(biāo)簽頁它會(huì)告訴你時(shí)間花在數(shù)據(jù)讀取上還是模型計(jì)算上。如果數(shù)據(jù)讀取占了大部分時(shí)間說明輸入管道是瓶頸需要優(yōu)化tf.data如果模型計(jì)算占大頭說明該優(yōu)化模型結(jié)構(gòu)或換更強(qiáng)的GPU。5.2 混合精度訓(xùn)練幾乎免費(fèi)的加速混合精度訓(xùn)練是性價(jià)比最高的優(yōu)化手段之一。它的原理是前向傳播和反向傳播用16位浮點(diǎn)數(shù)float16計(jì)算權(quán)重更新用32位浮點(diǎn)數(shù)float32保持精度。這樣既能利用現(xiàn)代GPU的Tensor Core加速又不會(huì)損失模型精度。開啟方式非常簡單policy tf.keras.mixed_precision.Policy(mixed_float16) tf.keras.mixed_precision.set_global_policy(policy)然后在模型編譯時(shí)把優(yōu)化器包一層optimizer tf.keras.optimizers.Adam(learning_rate1e-3) optimizer tf.keras.mixed_precision.LossScaleOptimizer(optimizer)實(shí)測(cè)下來在支持Tensor Core的GPU上比如V100、A100、RTX 30/40系列訓(xùn)練速度能提升1.5到2倍而模型精度幾乎不受影響。這個(gè)投入產(chǎn)出比非常高我建議所有GPU訓(xùn)練場(chǎng)景都默認(rèn)開啟。5.3 數(shù)據(jù)預(yù)取與并行策略的組合拳tf.data的優(yōu)化手段可以組合使用效果是疊加的train_ds ( tf.data.Dataset.from_tensor_slices((x_train, y_train)) .shuffle(buffer_size10000) .batch(64) .map(preprocess_fn, num_parallel_callstf.data.AUTOTUNE) .cache() .prefetch(buffer_sizetf.data.AUTOTUNE) )這里每個(gè)操作都有明確目的shuffle打亂數(shù)據(jù)順序防止模型學(xué)到順序相關(guān)的偏見batch把數(shù)據(jù)分批批次大小影響內(nèi)存占用和梯度穩(wěn)定性map做預(yù)處理num_parallel_calls讓多個(gè)CPU核心并行處理cache把處理好的數(shù)據(jù)緩存起來第二個(gè)epoch開始直接讀緩存prefetch讓數(shù)據(jù)準(zhǔn)備和模型計(jì)算重疊注意cache()放在map()之后還是之前效果差別很大。放在map()之后緩存的是預(yù)處理后的數(shù)據(jù)省去了每個(gè)epoch重復(fù)預(yù)處理的時(shí)間放在map()之前緩存的是原始數(shù)據(jù)預(yù)處理還是要重做。數(shù)據(jù)量不大時(shí)放map()之后更好。5.4 分布式訓(xùn)練策略的選擇當(dāng)單卡放不下模型或者訓(xùn)練太慢時(shí)就需要上分布式。TensorFlow提供了tf.distribute.StrategyAPI最常用的兩種策略是MirroredStrategy單機(jī)多卡每個(gè)GPU持有一份完整的模型副本梯度通過AllReduce同步。適合模型能單卡放下、但想加速訓(xùn)練的場(chǎng)景。strategy tf.distribute.MirroredStrategy() with strategy.scope(): model build_model() model.compile(optimizeradam, losscategorical_crossentropy)MultiWorkerMirroredStrategy多機(jī)多卡原理類似但跨機(jī)器通信。配置稍復(fù)雜需要設(shè)置TF_CONFIG環(huán)境變量指定各節(jié)點(diǎn)角色。選擇策略的原則很簡單能單卡跑就單卡跑單卡太慢就MirroredStrategy單機(jī)裝不下就MultiWorker。不要一上來就搞多機(jī)通信開銷和調(diào)試成本會(huì)吃掉大部分收益。6. 模型保存、加載與生產(chǎn)部署的完整鏈路訓(xùn)練出一個(gè)好模型只是完成了工作的一半另一半是把它保存下來、加載到生產(chǎn)環(huán)境、穩(wěn)定地提供服務(wù)。這一章我把從訓(xùn)練完成到線上服務(wù)的完整鏈路走一遍重點(diǎn)講那些文檔里不會(huì)寫的實(shí)操細(xì)節(jié)。6.1 SavedModel格式與Keras格式的選擇TensorFlow支持多種模型保存格式最常用的兩種是Keras格式.keras或.h5保存模型結(jié)構(gòu)、權(quán)重、優(yōu)化器狀態(tài)、訓(xùn)練配置。適合在Python環(huán)境里繼續(xù)訓(xùn)練或推理。model.save(my_model.keras) loaded_model tf.keras.models.load_model(my_model.keras)SavedModel格式TensorFlow的標(biāo)準(zhǔn)部署格式包含計(jì)算圖和權(quán)重可以被TF Serving、TF Lite、TF.js等工具直接加載。適合跨平臺(tái)部署。model.save(saved_model_dir, save_formattf)選擇原則還在開發(fā)階段用Keras格式準(zhǔn)備部署時(shí)轉(zhuǎn)成SavedModel。SavedModel不依賴Python環(huán)境可以用C、Java、Go等語言加載這是它最大的優(yōu)勢(shì)。6.2 自定義層的保存陷阱如果你的模型里用了自定義層保存和加載時(shí)會(huì)遇到一個(gè)經(jīng)典問題加載時(shí)找不到自定義層的定義。報(bào)錯(cuò)通常是ValueError: Unknown layer: MyCustomLayer解決辦法有兩個(gè)。一是在加載時(shí)通過custom_objects參數(shù)傳入loaded_model tf.keras.models.load_model( my_model.keras, custom_objects{MyCustomLayer: MyCustomLayer} )二是給自定義層加上tf.keras.utils.register_keras_serializable()裝飾器這樣Keras會(huì)自動(dòng)記錄它的位置加載時(shí)不需要手動(dòng)指定。tf.keras.utils.register_keras_serializable() class MyCustomLayer(tf.keras.layers.Layer): # ...我強(qiáng)烈推薦第二種方式一次配置后續(xù)所有保存加載都不需要額外處理。6.3 用TF Serving搭建推理服務(wù)TF Serving是TensorFlow官方的模型服務(wù)工具專門為生產(chǎn)環(huán)境設(shè)計(jì)。它的核心優(yōu)勢(shì)是支持模型熱更新、支持gRPC和REST兩種接口、支持批量推理、性能經(jīng)過大規(guī)模驗(yàn)證。基本使用流程是把SavedModel放到一個(gè)目錄下目錄結(jié)構(gòu)要符合TF Serving的要求models/ my_model/ 1/ saved_model.pb variables/其中1是版本號(hào)TF Serving會(huì)自動(dòng)加載最新版本也支持同時(shí)加載多個(gè)版本做A/B測(cè)試。用Docker啟動(dòng)TF Servingdocker run -p 8501:8501 \ --mount typebind,source/path/to/models/my_model,target/models/my_model \ -e MODEL_NAMEmy_model \ tensorflow/serving發(fā)REST請(qǐng)求做推理curl -X POST http://localhost:8501/v1/models/my_model:predict \ -d {instances: [[1.0, 2.0, 3.0, 4.0]]}TF Serving會(huì)自動(dòng)處理批處理、并發(fā)、模型版本管理這些事情你只需要關(guān)注業(yè)務(wù)邏輯。6.4 模型量化與TFLite轉(zhuǎn)換如果要把模型部署到移動(dòng)端或嵌入式設(shè)備TFLite是首選方案。轉(zhuǎn)換過程本身不復(fù)雜converter tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) tflite_model converter.convert() with open(model.tflite, wb) as f: f.write(tflite_model)但直接轉(zhuǎn)換出來的模型可能還是太大這時(shí)候需要做量化。量化是把float32的權(quán)重轉(zhuǎn)成int8模型體積能縮小到原來的1/4推理速度也能提升2到4倍。代價(jià)是精度會(huì)有輕微下降通常在1%以內(nèi)。converter.optimizations [tf.lite.Optimize.DEFAULT] # 如果需要完全整數(shù)量化還需要提供代表性數(shù)據(jù)集 converter.representative_dataset representative_data_gen converter.target_spec.supported_ops [tf.lite.OpsSet.TFLITE_BUILTINS_INT8] converter.inference_input_type tf.int8 converter.inference_output_type tf.int8提示量化后的模型一定要在真實(shí)數(shù)據(jù)上驗(yàn)證精度。我遇到過量化后精度掉5%的情況原因是某些層的權(quán)重分布太集中int8表示不了。這種時(shí)候可以只量化部分層或者換用float16量化。7. 那些文檔里不會(huì)寫的調(diào)試經(jīng)驗(yàn)最后一章我想聊幾個(gè)在實(shí)際項(xiàng)目中反復(fù)遇到的問題以及我總結(jié)出來的排查思路。這些東西在官方文檔里找不到但每一個(gè)都能幫你省下幾個(gè)小時(shí)甚至幾天的時(shí)間。7.1 Loss變成NaN的排查順序訓(xùn)練過程中l(wèi)oss突然變成NaN這是最讓人頭疼的問題之一。我的排查順序是這樣的第一步檢查學(xué)習(xí)率是不是太大。學(xué)習(xí)率過大導(dǎo)致梯度爆炸是NaN最常見的原因。把學(xué)習(xí)率降一個(gè)數(shù)量級(jí)試試比如從1e-3降到1e-4。第二步檢查數(shù)據(jù)里有沒有異常值。輸入數(shù)據(jù)里如果有inf或nan經(jīng)過幾層計(jì)算就會(huì)污染整個(gè)網(wǎng)絡(luò)。用np.isfinite(x).all()檢查一下輸入數(shù)據(jù)。第三步檢查損失函數(shù)里有沒有l(wèi)og(0)。交叉熵?fù)p失在預(yù)測(cè)值為0時(shí)會(huì)算出inf。解決辦法是給預(yù)測(cè)值加一個(gè)極小值或者用tf.keras.losses里已經(jīng)處理過這個(gè)問題的內(nèi)置損失函數(shù)。第四步檢查有沒有除零操作。自定義層里如果有除法分母可能為0。加一個(gè)tf.maximum(denominator, 1e-7)保護(hù)一下。第五步開啟梯度裁剪。在優(yōu)化器里加clipnorm或clipvalue參數(shù)把梯度限制在一個(gè)合理范圍內(nèi)optimizer tf.keras.optimizers.Adam(learning_rate1e-3, clipnorm1.0)按這個(gè)順序排查大部分NaN問題都能定位到原因。7.2 GPU內(nèi)存不夠用的四種解法ResourceExhaustedError: OOM when allocating tensor這個(gè)報(bào)錯(cuò)做深度學(xué)習(xí)的沒人沒見過。解決辦法按優(yōu)先級(jí)排列方案一減小batch size。這是最直接有效的辦法。batch size減半內(nèi)存占用基本也減半。缺點(diǎn)是訓(xùn)練可能變慢、梯度噪聲變大。方案二開啟內(nèi)存增長。默認(rèn)情況下TensorFlow會(huì)一次性占滿所有GPU內(nèi)存開啟內(nèi)存增長后按需分配gpus tf.config.list_physical_devices(GPU) for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True)方案三用梯度累積模擬大batch。如果小batch導(dǎo)致訓(xùn)練不穩(wěn)定可以累積幾個(gè)小batch的梯度再更新一次效果等價(jià)于大batchtf.function def train_step(accum_steps, dataset_iter): total_loss 0.0 for _ in range(accum_steps): x, y next(dataset_iter) with tf.GradientTape() as tape: loss loss_fn(y, model(x, trainingTrue)) / accum_steps grads tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(grads, model.trainable_variables)) total_loss loss return total_loss方案四混合精度訓(xùn)練。float16占用的內(nèi)存是float32的一半開啟混合精度后顯存占用能明顯下降同時(shí)還能加速。7.3 訓(xùn)練集表現(xiàn)好但驗(yàn)證集差的系統(tǒng)性排查過擬合是深度學(xué)習(xí)里最普遍的問題但“過擬合”只是一個(gè)籠統(tǒng)的描述具體原因可能有很多種。我通常按這個(gè)清單逐項(xiàng)排查現(xiàn)象可能原因?qū)Σ哂?xùn)練loss持續(xù)下降驗(yàn)證loss先降后升經(jīng)典過擬合加Dropout、L2正則、EarlyStopping訓(xùn)練loss和驗(yàn)證loss都高欠擬合增加模型容量、延長訓(xùn)練、調(diào)學(xué)習(xí)率訓(xùn)練loss低驗(yàn)證loss一直高數(shù)據(jù)分布不一致檢查訓(xùn)練集和驗(yàn)證集是否同分布訓(xùn)練準(zhǔn)確率高驗(yàn)證準(zhǔn)確率隨機(jī)數(shù)據(jù)泄露或標(biāo)簽錯(cuò)誤檢查數(shù)據(jù)預(yù)處理流程驗(yàn)證指標(biāo)波動(dòng)大驗(yàn)證集太小增大驗(yàn)證集或做交叉驗(yàn)證這個(gè)表格我放在工位上遇到問題就對(duì)著看一遍基本能覆蓋80%的情況。7.4 模型推理速度慢的優(yōu)化清單訓(xùn)練完了要上線發(fā)現(xiàn)推理速度達(dá)不到要求。這時(shí)候可以從這幾個(gè)方向優(yōu)化模型剪枝去掉不重要的權(quán)重減小模型體積知識(shí)蒸餾用大模型教小模型小模型推理更快算子融合把多個(gè)連續(xù)操作合并成一個(gè)減少內(nèi)存訪問批處理一次處理多個(gè)請(qǐng)求提高GPU利用率TFLite轉(zhuǎn)換用移動(dòng)端優(yōu)化過的運(yùn)行時(shí)TensorRTNVIDIA的推理加速庫對(duì)TensorFlow模型有專門優(yōu)化這些手段可以組合使用具體選哪些取決于你的延遲要求和精度容忍度。我的經(jīng)驗(yàn)是先做量化再做剪枝最后考慮知識(shí)蒸餾。量化的投入產(chǎn)出比最高剪枝次之知識(shí)蒸餾需要重新訓(xùn)練所以成本最高。7.5 一個(gè)真實(shí)的調(diào)試案例最后分享一個(gè)我最近遇到的真實(shí)問題。有個(gè)圖像分類模型訓(xùn)練的時(shí)候一切正常準(zhǔn)確率能到95%。但部署到線上之后同樣的圖片推理結(jié)果完全不對(duì)。排查過程是這樣的先確認(rèn)線上和訓(xùn)練的預(yù)處理是否一致發(fā)現(xiàn)線上用的是PIL讀圖訓(xùn)練用的是tf.io.read_file加tf.image.decode_jpeg。兩種方式的顏色通道順序不同——PIL默認(rèn)是RGBTensorFlow的decode_jpeg默認(rèn)也是RGB但PIL在某些模式下會(huì)返回BGR。把線上預(yù)處理改成跟訓(xùn)練完全一致后問題解決。這個(gè)案例的教訓(xùn)是訓(xùn)練和推理的預(yù)處理必須嚴(yán)格一致包括顏色空間、歸一化參數(shù)、resize方法。任何一點(diǎn)差異都可能導(dǎo)致推理結(jié)果完全錯(cuò)誤。我現(xiàn)在養(yǎng)成的習(xí)慣是把預(yù)處理邏輯封裝成一個(gè)獨(dú)立的函數(shù)訓(xùn)練和推理都調(diào)用同一個(gè)函數(shù)從根源上杜絕不一致的可能。這個(gè)習(xí)慣看起來簡單但幫我省掉了至少三次類似的排查。如果你也在做模型部署強(qiáng)烈建議從下一個(gè)項(xiàng)目開始就這么做。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色婷婷五月天小说网| 99乱视频| 久碰视频| 97五月天婷婷综合激情网| 97色色婷婷| 九九视频精品在线免费| 日韩无码专区| 天天综合网~91| 亚洲无AV在线中文字幕| 五月婷婷六月天| 99成人精品视频| 99精品丰满| 天天综合网、天天综合色| 日日操夜夜擼| 亚洲人妻av| 亚洲va欧洲va国产va不卡| 99re思思热在线视频| 成人做爰A片免费看网站找不到了| 九九热99热| 久久99热这里| 女性自慰系列第五页| 婷婷丁香大香蕉| 少妇综合网| 五月天成人小说| 婷婷五月天va| 婷婷色五月亚洲| 久婷婷婷| 人人操97| 激情综合网址| 99碰| 日韩美女羞羞网站在线观看| 99久高清视频| 99免费偷拍视频| 欧美综合激情| 无码 av电影| 久久这里只有精品8| 五月丁香免费看| 五月丁香 啪啪啪| 精品五月丁香| 久久AAAA片一区二区| 五月丁香黄色| 五月丁香啪啪| 热久久这里只有精品| 五月丁香成人网| 天天天天色天天天天天干| 九九这里有精品视频| 五月天开心色情网| 婷婷丁香六月| 天天综合五月| 久久婷五月婷| 精品久久人妻热| 婷婷色五月激情| 中文字幕综合| 久久98| 五他月天啪啪啪| 校花娇喘呻吟校长陈若雪视频 | 日本97久久久精品| 99熟女啪啪视频| 色欲色香,www,com| 色色色区| 91操人| 天搞天天天天天| 99日本在线| 猫咪伊人久久| 成人五月天综合网| 襙比视频| 五月天激情国产综合婷婷| www.minyis.com【JT】实力收量可预付QQ2101460746 | 99久久99九九九99九他书对| 五月天啪啪| 婷婷久久五月| 做爰丰满少妇1313| 亚洲精品V天堂中文字幕 | 伊人啪啪网| 激情五月婷婷色| 天天操屄网| site:feetmall.com| 婷婷五月免费在线| 激情五月天视频| 色婷婷的五月天| 色五月色五天色情网| 中文AV在线播放| 九九99九九99偷拍视频免费看| 91视频精品99| 欧美大肥婆大肥BBBBB| 免费做A爰片77777| 影音先锋偷偷色男人站| 天天狠天天狠| 夜夜干夜夜操| 99精在线| 久久R激情| 男女av免费看| 五月天大香蕉| 99思思| 99热思思| 97高清国语自产拍| 久9免费视频| 97狠狠色| 中文乱子伦视频| 人人视频人人干人人做| 色婷五月天网站| 99视频一区| 天天日天天色| 天天天天操| 色色婷婷综合| 丁香六月综合激情| 五月色婷婷综合| 久久丝袜婷婷| 青青草婷婷五月天| 日本99视频| 森林影视大全,最好看的2019年视频 | 激情婷婷六月天| 熟女人妻视频| 97色操| 99爱视频精品在线观看| 开心网五月色婷婷| 色五月情| www.激情| 激情综合五月婷婷丁香| 丁香六月天婷婷色| 五月激情丁香五月| 天天综合网站| 色域五月丁香| 国产va在线视频| 色婷婷狠狠| 99热在线只有精品| 激情性爱五月天| 激情又色又爽又黄的A片| 五月丁香在线观看国产| 欧美成人无码一区二区三区| 9久热在线视频精品| 成人中文网| 婷婷六月丁综合| 91碰| 国产亚洲精品久久一区二区三区| 色综合久久久无码中文字幕999| 激情五月色婷婷| 亚洲XX日本| 91超碰人人操| 国产精品操| 五月天婷婷深深爱| 久久小说| 五月丁香综合网色欲| 婷婷丁香小说| www.91AV.com| 99热国产在线| 婷婷丁香熟女| 99热精这里只有精品| 婷婷久热| 91肏| 96精品久久久久久久久| 色色色色区| 五月天婷婷丁香视频| 日日噜噜夜夜狠狠久久丁香六月| 9视频1在线| 五月丁香久久激情网| 婷婷,五月天,丁香,第一| 久久免片| 丁香婷婷六月| 激情婷婷在线中文字幕| 五月天激情网图片| 久久五月天激情婷婷| 狠狠狠人妻| 日比视频91| 天天肏天天舔AV| 久青草大香蕉| 中文字幕在线观看视频www| 五月婷婷六月丁香激情深爱| 噜噜噜噜噜色| 五月丁香激情综合网| 国产精品美女| 中文字幕久久婷九女同| 亚洲精品成人| 婷婷色日本| 色99网| 欧美日韩成人一区二区| 免费无码毛片一区二区A片| 九热网站| 五月婷婷六月丁香免费| 亚洲精色| 六月综合婷婷开心伊人| 99久久天堂婷婷| 99精品久久久久| 六月色婷婷色| 五月天婷婷无码视频| 91干视频| 91狼友视频在线观看| 免费亚洲成人电影AV| 婷婷色婷婷亚洲成人| 久久成人精品视频| 色五月天在线观看| 99久久終合| 综合激情五月丁香| 九九婷婷网五月天| 欧美日本日韩| 九九色欲网| 五月永久激情| 六月丁香五月天| 99久99久| 天天做天天爱天天爽在| 九九视频这里只有精品| 成人精品视频99在线观看免费| 亚洲精品99| 成片免费播放| 大伊香蕉玖玖爱| 久久亚洲精品成人无码网站导航| 99九九视频| 色五月激情五月| 婷婷9月天| 综合色99| 五月天婷婷基地| 少妇真实被内射视频三四区| 丁香综合网| 久热A| 99热这里全都是精品| 国产亚洲AV人片在线| 五夜婷婷| 棕合影院色色| 久热re在线视频| 五月婷高清视频| 五月丁香色婷婷色| 欧美婷婷综合| 9这里只有精品| 婷婷色婷婷| 91精品综合久久久久久五月天| 久99视频在线观看| 色天五月天在线观看视频| 精品国产乱码久久久久夜深人妻| 99热啪啪| 91成人品| 色久女| 日本五月天婷婷丁香| 无码AV免费精品一区二区三区| 99免费热视频在线| 狠狠草狠狠草| 色欲色香,www,com| 婷婷六月开心网| 啪啪一区| 色婷婷AAA| 亚洲视频色婷婷| 九久久婷婷| 久久久久久xxxxx| 狠狠色五月天| 久久精品日| 色综合五月婷婷狠狠干| 亚洲综合另类| 人人爱干人人爱草| 99久久99九九99九九九| 激情五月天久久丁香| 欧美日韩成人免费在线| 91精品国产日韩91久久久久久国模| 四色AVwww| 丰满老熟妇BBBBB搡BBB| 丁香六月 人妻| 97五月天| 这里只有精品99视频| 26uuu精品国产| 色五月激情综合| 婷婷激情小说| 99热性色| 五月久久婷婷| 色婷婷久久| 人人干av| 日韩黄色网络| 久久婷婷影院| 99热99网| 98国产精品综合一区二区三区| 天天日天天狠狠操| 亚洲色综合| 综合久久99| 啪啪啪大香蕉| 蜜臀A∨在线水帘洞| 色中色综合| 俺也去婷婷五月天第五色| 97碰免费视频在线| 久久久久久综合88| 无码色| WWW、日本色丁香co m| 97综合在线| 思思热99er在线视频| 婷婷五月天丁香| 色综合天天网| www超碰com| 五月婷婷六月综合| 97色天堂| 91久操| 婷五月丁香| 成 人片 黄 色 大 片| 亚洲激情99| 久久性爱视频| 日夜夜久久| 人妻五月天激情开心网| 五月丁香啪啪啪综合网| 色亚洲视频| 日韩AV免费看| 激情五月综合婷婷| 丁香婷婷色五月| 99热精品免费| 日批在线看| 五月婷婷激情啪啪| 123草逼网| 99热热热国产超碰| 久久久久久久人妻| 丁香婷婷成人在线播放| 国产亚洲成AV人片在线| 97人妻碰碰中文无码久热丝袜| 亚洲日本激情| 五月婷婷综合色啪首页| 9久精品视频| 婷婷欧美激情综合| 99在线看片| 亚洲 视频 导航 一区| 色婷视频| 亚洲AV久久久久久久久久久久久久久久| 丁香五月av在线| 性爱网六月丁香| 在线99热| 欧美成人精品一区二区| 激情九月婷婷| 丁香五月亚洲综合| 婷婷色五月天在线观看| 26uuuavcom| 色月丁| 久久99网| 黄色激情五月天| 97欧美在线| 99在线精品观看99| 丁香五月Av| 天天日天天做天天舔| 亚洲激情四射色| 五月丁香六月婷婷激情网| 另类精品视频在线观看| 色综合99无码| 亚洲五月婷婷| 狠狠高潮精品亚洲1| 丁香蜜臀黄色婷婷五月天| 免费视频WWW在线观看网站| 五月天激情啪啪| 伊人干综合| httpwww色com日本| 国产成人99久久亚洲综合精品| 婷婷五月天激情亚洲小说| 97黑人精品区| 婷婷丁香五月天之开心少妇| 婷婷五月天影院| 综合激情站| 国产精品久久久99视频| av在线免费网站| 99re6在线视频精品免费| 婷婷婷婷婷开心无码播放| 97婷婷丁香| 操日本99| 婷婷五月天基地| 色色色热热热| 色婷婷九月| 亚洲色色色色色色色色色| Caoub青青超碰| 色五月大香蕉| 大香蕉精品视频| 激情五月色在线播放| 五月综合激情久久| 丁香五月综合| 五月天久久www| 影音 五月 婷婷 久久| 99久re热视频精品98| 啄木鸟丝袜美女福利视频| 狠狠香婷婷五月| 丝袜激情网| 久久日婷婷| 97天堂| 婷婷五月婷婷| www.日日夜夜.com| 色播五月丁香| 99久久免费精品| 五月丁香久久久日婷婷久久婷婷日| 99热大香蕉| 91丨九色丨老熟女激情| 欧美综合激情| 青青久在线视频免费观看| 色5在线| 欧美99视频| av五月丁香婷婷网| 校园春色亚洲色| 国外亚洲成AV人片在线观看| 最近中文字幕2019视频1| www.色婷婷| 色色色婷婷| 99这里只有| 欧美婷婷五月天综合| 日本婷婷网| 丁香婷婷六月激情文学| 女人露出p毛视频www网站| 在线视频另类| 一逼色综合| 久久九九@| 在线综合91| 97碰精品| www.九月婷婷丁香.com| 91干婷婷| 天天躁日日躁狠狠躁日日躁2022年5月9日 | www.五月天婷婷| 久久五月天免费网站| 国模狼狼| 五月婷婷,六月婷婷| 久久综合9| 亚洲美女裸体被操在线观看| 波多婷婷久久| 中文字幕精品推荐免费在线观| 90色免费视频| 一区二区你懂的| 狠狠色综合图片| 西西4r午夜剧场| 亚洲欧美成人在线观看| 丁香五月婷婷亚洲天堂| wWW九九在线播放| 日本久久视频| 超碰av在线| 亚洲小视频免费播放| 99精品激情| 激情五月天啪啪视频| 色五月婷婷狠狠撸| 成年人99热| 激情综合五月色丁香婷婷| 中文不卡一二区| 色五月丁香伊人| 一起草性爱不卡视频| 天天艹夜夜艹| 久久精品婷婷| 91婷婷| 91人人人人人| xxxx五月天色色| 任你爽在线视频| 无码一级片| 大香蕉九九热| 天天做综合| 久热这里只有精品99re,久热这里只有精品7| 操逼在线视频| 色色色色色综合| 97色97干| 久久99热这里只频精品6学生| 亚洲欧洲中文日韩久久AV乱码| www.91五月| 99热国产婷婷| 亚洲视99| 久久久五月婷婷| 超碰99热| 色婷婷4| 婷婷丁香在线播放| 中文字幕AV在线播放| 综合激情五月丁香| 国产精品 的国产| 97在线碰| 色丁香久久久| 色播婷婷五月天| 99操碰| 中文字幕丰满乱孑伦无码专区| 91在线日本| 91久久| 天天干夜夜b| 这里只有精品在线视频在线观看| 夜夜大香蕉婷婷丁香| 婷婷99狠狠| 99精品视频播放| 生活片五区| www好屌操| 五月天婷婷婷| 99这里只有精品视频| 婷婷五月激情基地| 九月丁香| 成人开心五月天| 婷婷色婷婷| 九九精品9| 久久视频婷婷视频| 五月开心深深爱激情综合| 亚洲av日韩无码| 大色鬼综合| 日本久久婷婷| 丁香六月激情综合啪啪| 六月丁香啪啪啪| 一起草日本| 五月色婷婷亚洲 | 丁香六月婷婷综合缴| 99九色视频在线观看| 伊人丁香五月天丁香在线婷| 色欲丁香| AV性爱在线| 最近中文字幕大全免费版在线| 91成人看| 狠狠操天天操综合| www.激情| 婷婷玖玖丁香| 极品 少妇 内射| 综合性爱网| 亚洲V国产V欧美V久久久久久| 生活片五区| 婷婷五月天在线观看第二页| 高清一区二区三区日本久| 丁香六月婷婷综合啪啪| www.夜夜.com| 色99在线视频| 色综合久久88色综合天天看| 99爱在线视频观看| 亚洲国产精品VA在线看黑人| 色亚洲无码| 狠狠操天天干| 1234操逼网| 天天爽夜夜爽天天爽夜夜爽| 丰满少妇猛烈A片免费看观看| 任你艹| 九九这里是免费的视频5| 色婷婷色和| 97五月天婷婷| 婷婷碰碰| 精品少妇蜜臀91| 无码色| 超碰色综合| 天天干天天色综合| 久久探花91swag| 五月天六月天| 久热欧美| 色久女| 久久99热在线观看| 91亚洲视频| 色天天综合成人网| 一本大道伊人AV久久综合| 最新热中文字幕| 1024操逼视频| 久99热在线观看| 五月婷婷色五月| 成人精品网站在线观看| WWW.99热| 五月婷婷黄色网址| 99热成人在线观看| 夜色.cnm| 激情久久丁香| 九九综合| www.婷婷五月天| 九九热视频精品2| 综合色播| 春色激情第四色| seav天堂| 亚洲成人噜噜| 九九九午夜视频| 五月丁香亭亭| 婷婷性爱影院| 五月天大香蕉| 色婷激情网| 日B日潘金莲BB| 丁香五月六月婷婷殴美综合| 大香蕉懂9| 五月综合视频| 综合五月婷婷| BBWCUCKOLD精品熟妇| 婷婷六月中文字幕| 久久99免费视频| 天天爱天天秀天天做| 色五月婷婷操逼| 欧美色婷婷| 青青操avbb| 91919191919久久成人视频| 婷婷丁香综合| 97亚洲婷婷| 99热这里是精品| 亚洲视频在线观看99| 99热网精品| 五月婷婷免费看| 2015超碰| 五月天色综合| 色欲久久久久| 67194成I人在线观看线路1| 婷婷成人五月天成人文学| www.色婷婷。com| 九九色婷| 九九99九九99九九99视频网| 丁香六月av| 4399在线观看免费高清毛片| 性色婷婷| 欧美婷| 婷婷丁香综合| 丁香五月天堂| 五月花综合视频| 婷婷丁香色情| 俺也去五月婷婷丁| 天天干天天拍| 丁香桃色综合网| 免费成人中文字幕| 99热这里只有精品99| 五月丁香婷婷中文网| 伊人色综合久久久| 亚洲欧洲中文日韩久久AV乱码| 草逼大片| 亚洲精品va| 色色草97| www.天天干| 五月天五月天激情网| 九九五月天| 免费色婷婷| 久久久久9999| 色五月婷婷激情| 1024日韩| 国产精品成人网站| 99热久久这里只有精品| www.五月天| 综合久色五月| 久久激情五月婷婷| 狠狠色噜噜狠狠狠777奇米| 九九热九九| 99青青草| 亚洲色色在线| 色99热| 琪琪色五月婷婷老师| 综合另类视频| 激情五月天激情综合网| 国产裸舞福利资源在线视频| 97欧美在线| 五月婷婷视频| site:pnnrt.com| 五月激情六月综合| 岛国av网| 婷婷八月激情| 九热视频在线精品15| 五月婷婷视频| 婷婷五月天久久久| 天天色图| 丁香婷婷视频在线| 欧美va亚洲va在线播放| 亚洲五月丁香综合网| 久久999久久999久久999久久| 国产精品人成A片一区二区| 日本三久久| 久久人妻人人槡| 亚洲avjiujiur91| 久久多色| 亚洲婷婷激情综合激情999精品| 国产精产国品一二三在观看 | 99热这里只有精品1| 日韩欧美四五区| 激情综合亚洲| 久久五月激情| 欧美网站视频4399| 一起操 91N.com| 日韩一级一片内射视频4K| www.五月天婷婷| 久久综合中文字幕| 成人va在线播放| 激情婷婷综合五月少妇| 丁香5月啪啪| 综合狠狠伊人| AAA久久| 色女人久久| 婷婷丁香视频| 99色免费| 五月丁香婷色| 激情碰碰碰| 婷婷丁香精品视频在线观看| 丁香五月婷婷图片综合| 丰满人妻妇伦又伦精品国产 | 人妻精品久久久久久久| 激情 婷婷 丁香五月天| 26UUU欧美激情一区二区| 亚洲婷婷五月天综合| 色九区| 丁香花色色网| 色五月首页| 久久综合激情| 九九性视频| 婷婷亚洲天堂| 99综合色色色| 色黑鬼导航| 婷婷激情丁香五月婷婷激情丁香五月婷婷| 久久这里精彩免费在线观看| 欧亚洲在线高清视频| 另类图片天天影视在线观看| 精品久热| 久热这里只有精品性色AV| 久久久久久久丁香五月天婷婷| 99久re热视频精品98| 人妻av在线| 久久五月丁香婷婷| 天天日日人| 久草久青福利| 中国AV性爱观看| 五月天精品综合在线| 婷婷色Av| 婷婷五月综合亚洲| 波多野结衣AV无码Porn| 香蕉综合在线| 色人久久| 激情婷婷丁香| 激情丁香五月| 日本欧美国产| 久久er免费视频| 色五月aV| 久久这里只| 五月天激情综合| 超碰成人在线观看| 五月丁香综合啪啪| 五月天丁香婷婷网| 久久久久久久五月| 美女激情综合| 色婷婷中文字母五月丁香| 五月天激情网址| 婷婷五月六月丁香综合| 成人在线网址| 精品色情一区二区三区四区| AV国产有码| 激情六月综合| 97色片| 任你草| 丁香花综合永久入口| 亚洲AV无码成人精品区电影网| 九九热99免费视频| 无码网| 五月激情婷婷女| 夜色综合网| 五月丁香网站| 免费视频1区| 4399在线观看免费高清黄色视频| 婷婷丁香69精华| 99热骚货| 伊人www22综合色| 欧美精品XXXXBBBB| 看逼中文字幕| 亚洲精品色色| 色婷婷五月中文字幕在线dvd| 99丁香五月婷| 国产肥白大熟妇BBBB视频| 一本九九色| 婷婷五月小说色综合| 五月色天五月色| 狠狠色丁香婷婷久久综合| 东京热免费视频| 97婷婷久久丁香| 五月婷丁香| 五月久久丁香| 夜夜操夜夜姧| 六月婷久久| 99国产在线精品视频| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 欧美色色色色色色色| 成人午夜天| 色婷婷色九月| 九九婷婷五月天影视| 一级精品999WWW| 91性交在线播放| 91色涩| 天天爽天天草| 91啪啪视频| 久久婷婷东京热大香樵| 五月天六月天| 99在线精品视频| 色色色九九九五月婷婷| 亚洲精品亚洲人成人网| 日韩在线婷婷五月天综合| 99精彩视频| 超色欲天天| 天天插夜夜爽| 99婷婷| 无码一级片| 狠狠擼综合| 久久久久婷婷| AV免费在线网站| 五月社区婷婷激情| 色色操| 99碰碰中文| 欧洲亚洲欧洲99久久| 五月丁香综合激情| 激情五月婷婷啪啪| 日日狠夜夜狠| EEUSS鲁片一区二区三区| 大香蕉婷婷五月| 五月天综合图片| 青草视频在线观看视频| 97在线精品视频| 五月综合婷婷五月| 97色射| 玖玖伦理电影| www.丁香五月| 激情五月综合久久| 天堂草在线看www| 成人午夜天| 99er6免费视频热播| 五月婷婷九九热| 97人人操人人拍| 丁香六月婷婷综合麻豆| 人人播| 婷婷的99视频网站| 99色| 日本欧特黄色刺激一区影视久精品无码| 韩国婷婷丁香五月| 九九伊人网| jiqingtaose五月天| 婷婷五月综合色拍| 91视频综合网| xx人人xx| 色色网91| 婷婷婷婷婷开心无码播放| 99干免费视频| 婷婷丁香五月天狠狠| 99热亚洲精品| 婷婷五月欧美| 夜夜综合色| 五月精品99综合| 色五月婷婷啪啪五月| 精品一二三区久久AAA片| 人妻内射麻豆视频| 五月丁香六月激情| 天天爱天天做天天舔| 日本三级日本三级99| 妇激情基地| 婷婷综合激情| 五月婷婷久久综合| 久热99| 久久曰曰| 色综合天天综合成人网| 婷婷五月丁香五月| 五月天激情视频| 色五月开心婷婷| 另类视频五月天| 亚洲美女婷婷五月天| 久久曰曰| 这里只有精品,日韩视频| 天天日日夜夜| 九九热在线视频,| 91干婷婷| 五月婷婷激情综合网| 九九超日本| 国产精品爽爽久久久久久| 99操免费视频| 亚洲中文字幕av| 噜噜色天天开心| 9999久久久久| 色婷婷综合中心| 亚洲三A| 丁香五月23111| 色色色1网址| 播五月丁香三月婷婷| 99黄色在线视频精品熟女| 99热国产| 丁香五月另类小说在线阅读| 婷婷婷婷婷婷婷婷婷婷丁香| 99在线亚洲| 亚洲黄3级片网站欧美| 丁香六月啪啪啪| 天天色天天搡| 98国产精品综合一区二区三区| 久久九九99亚洲国产久精综合| 狠狠色婷婷综合开心影视| 色香欲综合| 日本久久综合| 午夜性做爰电影| 99re在线这里只有精品视频首页| 色开心五月丁香| 激情文学久久| 丁香五月婷婷动漫| 亚洲AV日韩AV永久无码网站| 五月天天综合| 欧美色狠婷久| 97人碰人操| 五月天成人在线播放| 婷婷大香蕉| 中文字幕丰满孑伦无码专区| www五月天com| 欧美色色色色色| 欧洲第一无人区观看| 婷婷五点亚洲| 黄色五月婷婷| 狠狠操狠狠| 色婷婷狠狠18| 欧美在线视频99| 综合色图婷婷| 大香蕉99| 婷婷开心青青草| 天天肏天天肏| 亚洲色五月天| 79色色| www.丁香五月| 久综合九综合99| av色婷婷| 少妇人妻凹凸视频| 色色色地址| 少妇熟女视频一区二区三区| 久久免片| 丁香五月婷婷婷婷欧美综合| AV中文字幕夜夜操b天天摸bb | 欧美日韩AAAAA| 99热亚洲综合| 天天日夜夜| 天天天综合网| 色婷婷丁香六月| 热九九九九| 丁香五月成人| 激情五月天婷婷| 激情综合网,五月| 97se视频在线| 亚洲AV在线免费看| 久久新地址| 99热中国| 欧美五月丁香啪啪响视频| 在线不卡的视频| 亚洲操人| 97亚洲婷婷| 国际国外精品欧洲南美洲专区无码不卡| 香蕉操亚洲| 两性婷婷丁香五月| 久久九九热视频| 五月花在线观看视频| 日本美女天天日天天爽| 综合性爱网| 人人妖人人97| 激情五月天色色网| 国产精品色婷婷久久久精品| 人妻 性久久久久久| 91啪啪视频| 9热久久在线| 亚洲亚洲人成综合网络| 9 1超碰九色| 丁香五月天在线观看| 97久久香草精品视频| 色色色色色色色色五月先| 亚洲区1| 国产精品18久久久| 丁香五月综合| 大婷婷色呦呦噜噜色呦呦噜噜| 九九热99精品| 色五月婷婷五月丁香五月激情五月视频 | 久久精品婷婷| 婷婷无码五月天| 国色天香伊人狠狠色| 激情综合五月激情XXXX| 人伦30P| 久久久久久18| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | www.色五月| www.夜夜操| 丁香婷婷婷五月| www.思思99热| 天天爽—爽| 亚洲操人| 丁香婷婷九月| 五月亭亭欧美女人| 婷婷五月激情视频网| 人妻激情久久| 成人做爰A片免费看网站找不到了| 九九热只有精品| 超碰色综合| 美国十月色婷婷在线观看| 丁香五月综合在线视频| www.丁香黄色五月天人与| 99热精品少| 丁香五月婷婷狠狠色| 开心五月综合激情网| 久久激情五月网| 丁香六月婷婷社区| 操日本色| 婷婷激情五月天激情小说| 97碰碰草| 丁香六月婷婷基地| 极品精品一区二区三区在线| 最近中文字幕2019视频1| 婷婷激情五月| 99热这里有精品| 激情99| 亚洲爆乳无码精品AAA片蜜桃| 思思99热| 色婷婷亚洲婷婷| 色色五月婷| 99综合免费视频| 婷婷五月综合在线| 色9999日韩国产| 大香网伊人久久综合| 婷婷视频网| AV九九| 99re6在线视频精品免费| 色婷婷五月天| 亚洲精品V天堂中文字幕 | 国产操B| 久久日婷婷| 丁香五月婷婷影院| 五月丁香888| 夜色综合网| 久久刺激网| 九月激情网| 色色综合无码| 亚洲婷婷月丁香五月| 日本特黄aaaaa| 中文字幕 久久9999| 五月婷婷六月婷| 丰满熟女人妻一区二区三| 久热这里| 丁香五月婷婷色情综合| 99热精品中文字幕| 日本猛少妇色XXXXX猛叫| 欧美日韩精品人妻狠狠躁免费视频 | 久久婷婷五月综合97色一本| 激情五月综合视频| 天天综合天天玩夜夜玩天天玩夜夜玩 | 天天做天天爱天天爽在| 五月丁香六月色婷婷| 欧美激情-区二区三区| 亚洲色99| 中文字幕AV在线| 国产精品色色| 狠狠插.com| 月色色综合婷婷网| 超碰女人天堂| 99热在这里只有免费精品| 九月婷婷丁香| 色欲一区二区三区精品A片| 色碰碰| 久久九九综合| 老司机视频lsj爱就色| 六月婷婷香蕉| 五月丁香爱婷婷深深| 能看的AV网站| 26uuu在线观看| 超碰在线人妻| 成人无码精品1区2区3区免费看 | 综合久久久| 九九色逼| 色情网综合| 久操福利| 丁香五月婷婷动漫| 天天做夜夜爽| 26uuu日韩| 99九九这里有免费视频| 中文字幕成| 亚洲婷婷五月天综合| 停停五月天激情网| 五月婷婷啪啪啪| 69精品人人人人| 91久草五月天婷婷| 91欧美| 激情网综合| 色啪影院| 99干日日干| www.sebowuyue| 国产欧美婷婷五月| 婷婷五月色天| 超碰九色| 国产美女主播vip| 激情五月激情综合俺也去婷婷小说| 六月狠狠综合| 日韩一级片| 九久久婷婷| 五月婷婷三级| 就爱射中文字幕资源网| 99色综合网| 五婷婷综合网| 亚洲激情视频在线观看| 丁香五月天啪啪激情综和网| 久久六月天| 天天色中文字幕女优AV| 99在线热| 看国产探花操逼三级片| 久久伊人大香蕉| 久久久9久| Xx色综合| WWW.17C亚洲精品| 九九在线热九九在线热99热| 第五婷婷伊人丁香色| 99精品网站| 国产成人99久久亚洲综合精品| 婷婷干| 五月激情婷婷图片基地| 日本五月天网站| 亚洲愉拍99热成人精品| 97狠狠色| 五月婷婷婷婷| 亚洲亚洲人成综合网络| 五月天丁香综合| 另类综合婷婷五月天欧美视频| 久久久网站| 午夜九九九九九九九九九九九九九| 婷婷丁香五月六月激情| av九九| 第四色网婷婷| 五月激情黄色小说| 操人无码| 精品在线网站| 婷婷天天色| 成人超碰网| 开心六月丁香五月婷婷| www.婷婷,com| 国产av网| 五月丁香网站在线播放| 五月丁香大香蕉| 亚洲av无码精品色午夜| 婷婷丁香激情| 99这里有精品| 激情五月天视频| 色五月亚洲| 黄色高清无码| 五月婷婷久久开心网| 午夜婷婷| 色五婷婷| 五月丁香六月欧美综合网站| 亚州在线中文字幕| 侠女刀之记忆电影在线看免费| 91婷婷色五月| 殴美日韩成人| 欧美婷婷五月丁香| 黄色国久久| 另类小说五月天综合| 激情丁香五月婷婷| 丁香婷婷黄网站| 丁香色成人| 亚洲AV无码影院| 色色网站在线| 婷婷色色色| 狠狠操狠狠做| 婷婷婷狠狠| 色婷五月丁香久亚洲| 激情五月天综合网| 久热这里只有精品6官网亚洲| 久久作爱| 九九99九九99九九99视频网| 开心激情站| 91丨九色熟女丨首页| 色色色无码| 国产黄色大片| 天天色激情| 激情影院69| 夜夜做夜夜愛| av首页在线| 99这里是精品| 97涩婷婷| 久久这里有| 婷婷综合干| 五月综合无码| 狠狠色狠狠爱| 五月丁香网站| 亚洲乱码w在线观看| 色丁香五月| 91婷婷搞| 九九人人操| 欧美日本VA| 九九热视频在线观看| 色六月天天激情综合网| 久热超碰| 五月综合在线婷婷图片| 色日本颜射| 激情网综合| 狠狠狠狠青草| 99精品网| 综合久久综合久久| 性一交一乱一交A片久久四色| 欧美在线干| 超碰在线99| 天天综合天天玩夜夜玩天天玩夜夜玩 | 中文字幕永久在线| 激情五月天婷婷激情| 亚洲人人操| 伊人五月网| 在线日韩av| 少妇人妻人伦A片| 五月天成人综合| 网站免费一站二站| 日日天天操| 狠狠婷婷日韩| 丁香五月天电影| 99热主页日本| 99这里都是精品| 91视屏在线观看com.wwwvv| 伊人爱爱日本| www五月| 色五月天激情| 欧美性做爰大片免费看办公室 | 欧美大道不卡| 91欧美| 五月丁香在线国产| 日韩精品VIP| 性生活视频98791| 亚洲精品网站色视频| 超级碰碰97在线| 日韩视频99| 手机在线日韩视频中文字幕| 亚洲情欲| 六月亭亭久久综合激情| 亚洲激情高潮| 色综合久久五月天| 婷婷五月综激情| 99免费视频| 婷婷激情丁五月| 久久九九九九| 五月天久久婷婷| www.五月天。com| 久久天堂婷婷五月| 亚洲综合色色色| 69婷婷丁香午夜| Www.狠狠| 丁香五月激情五月| 久久久久人妻精选| 九九re精品视频在线观看| 久99| 五月丁香在线综合| 国产成人+综合亚洲+天堂| 中文字幕丰满孑伦无码专区| rr天天操| 青青草性爱视频| 91操女| 亚洲综合激情五月久久| 久久婷婷五月激情网站| 天堂久久性| 中文字幕欧美日韩VA免费视频| 99re8这里只有精品99re8热视频| 91啪啪视频| 淫视馆av三区| 超碰成人免费| 五月丁香六月花| 91成人视频| 婷婷丁香91综合| www.久久久久久久| 婷婷激情五月天亚洲综合| 91久久综合| 影音先锋91网站在线观看| www.射伊蕉婷婷| 五月丁花色综合网| 婷婷丁香97| 五月做爱| 婷婷综合五月| 色色色色网| 激情99热| 99色五月| 不卡的AV网站| 久久98| 中文乱子伦视频| 99热精品少| 亚洲一区二区无遮挡A片| 欧美内射AAAAAAXXXXX| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 色五月激情综合网| 五月丁香婷婷导航视频| \\五月天婷婷激情| 色呦呦美女| 91狼友视频在线观看| 色五月激情五月| 五月天综合色| 丁香五月天激情AV| 大香蕉伊人久久| 色婷九九九| 国产在线aaa片一区二区99| 在线婷婷| 久久美女五月天| ss99热| 激情综合啪啪啪| 99热加勒比| 色情网综合| 99re6在线视频精品免费| 婷婷永久在线| 婷婷五月天久久| 精品皮股午夜AV| 五月丁香在线视频观看| 丁香久久综合| 超碰A V在线| 97 天堂| 六月色婷婷| 在线看片av| 色五月婷婷小说亚洲中文字幕组| 极品人妻videosss人妻| 亚洲激情综合色站| 九九热啪啪| 五月综合丁| 极品嫩草| 9视频在线成人网站| 亚洲欧洲中文日韩久久AV乱码|