99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜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
返回資訊列表
亚洲精品久久久无码| 午夜婷婷| 五月天婷婷影院| 天天做天天爱天天综合| 色狠狠综合网| 激情深爱综合| 五月婷五月婷伊人伊人五月婷| 国产综合A片| 日韩无码成人电影| 色色射| 天天摸夜夜夜| 99免费热视频| 五月丁香六月香综合激情| 五月婷婷激情网| 五月婷色丁香| 激情婷婷22月间| 五月丁香色色网| www.99热| 另类激情五月在线视频欧美| 色色色99| 99综合自拍| 激情婷婷丁香色五月| 99re99热| 俺也去色| 久久er99热精品一区二区| 久9视频| 九九婷婷五月天| 伊人干练久| 五月婷婷色男女| 99久久精| 色五月在线| 五月天婷婷色| 五月丁香婷婷综合在线| 五月天色婷婷av| 婷婷五月激情网| 99热丁香五月| 日本啪啪天堂| 青青操绿aaa一区日v| 啪啪91| 激情爱爱网站| 久热婷婷| 欧美在线干| 日韩成人综合网| 色香久久| 九色PORNY9l原创自拍| 99在线精品视频| 色婷婷久久综合中文久久一本| 99亚洲无码| 婷婷五月婷婷五月| 亚洲男女激情| 99精品久久| 亚洲激情AV| 色爱综合网| 亚洲AV激情五月综合网| 26UUU精品一区二区c〇m| www色婷婷久久综合久色 | 成人午夜天| 狠狠干狠狠干| 1024AV视频| 五月色亭丁香| 爆乳熟妇一区二区三区爆乳照片| 美女va| 538在线| 秋霞学生妹一二级| 五月丁香花婷婷玉莉AV| 五月伊人网| 综合久久9| 色丁香五月| 免费黄色片子| 丁香五月婷婷www..com| 色5月婷婷| 婷婷97狠狠干| 九九久久网| 亚洲VA口| 思思热在线视频精品| 大地9中文在线观看免费高清 | 欧美狠狠草| 人人操Av| 婷婷色操| 伊人在线视频| 伊久久婷婷| 激情网五夜婷婷| 欧美激情xxxXX| 5月婷婷性视频| 婷婷五月天偷拍| 丁香婷婷深情五月亚洲| 色情五月婷婷| 日韩一级网站| 婷婷丁香五月激情图片| 丁香 久久| 可以直接看的AV| 国产人妻777人伦精品HD| 五月婷综合激情| 99网| 大香蕉天堂| 日日夜夜狠狠婷婷色| 六月天无码网址| 很很干天天干| 午夜精品久久久久久久爽| 人妻六月天| 色婷婷19| 五月亭亭直播| 色色三级视频| 狠狠操.com| 五月五婷婷| 99久在线观看| 丁香五月婷婷少妇| 99热只有精品在线观看| 色婷婷丁香| 九月色婷婷婷| 伊人大香蕉在线视频| 夜夜 操无码| 人妻操在线看| 能看的av| 五月婷婷丁香综合| 91大屁股精品| 久久九九99.www| www.激情五月天。com| 五月综合缴情网| 丁香五月电影| 夜夜爱伊人| 色丁香综合影院| 九九99香蕉在线视频播放| 亚洲综合五月天婷婷丁香| 亚洲综合成人网站| 俺也去在线视频| 99久久9| 国产免费av在线| 六月丁香婷婷尤物| 成人无码髙潮喷水A片| 国产免费av在线| 久99久热只有精品国产99| 色在线99| 99久在线精品99re5热视频| 欧美综合婷婷网| 伊人99热| 丁香五月婷婷激情小说| 狠狠干婷婷| 五月婷婷九九久久| 亚洲操b| 少妇高潮呻吟A片免费看软件 | 性爱技巧五月| 婷婷综合网站| 67194线路二在线观看| 99色最新在线视频| 国产人妻777人伦精品HD| 色综合久久中文| 操人妻视频91| 伊人综合婷婷| 亚洲综合另类| 久久精品9| 九九99热久久精品66中文字幕| 色婷婷色丁香色欲av| 色国产五月| 色无码| 色狠狠综合| 久久婷婷五月天激情| 五月激情婷婷四射| 丁香五月天堂| 日本激情91| 色五月婷婷老师| 99热大| 开心婷婷五月中文字幕组| 欧美成人AAA片一区国产精品 | www.99日本| 五月丁香在线看| 五月婷婷伊| 丁香五月在线视频黑人| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 大香蕉九操| 五月天激情综合网| 色五月网址| 97人人操在线| 久久国产精品乱子伦_靑青草…| 色婷婷六月| 六月丁香婷婷视频综合在线观看| 国产成人片| 精品网站99| 四川BBB搡BBB爽爽视频| 六月丁香社区| 黄色片精品| 久热中文字幕| 激情5月婷婷狠狠干| 九九热超碰| 开心丁五月| 丁香五月激情综合| 婷婷五月天激情诱惑| 婷婷WWW久久| 天天日综合| 色色狼人综合| 国产欧美精品AAAAAA片| 操一操干一干| 异能之下短剧免费观看全集| 国产午夜精品AV一区二区麻豆| 激情黄色小说五月天| 中文字幕91,综合| 日本色色色| 色五月无码| 日韩成人不卡| 超碰色色综合| 日 日干 日日做| 超碰cap| 天天爱天天狠天天透| 最新av在线观看| 99热这里只有精品3| 激情的五月婷婷蜜桃| 国产亚洲精品久久久久久久久动漫 | 99日视频在线| 色婷婷成人做爰A片免费看网站| 另类激情五月| 在线看片av| www.夜夜操| 日日艹思思热| 天天色综和网| 美腿丝袜AV天堂网| 免费无码毛片一区二区A片| 六月婷婷九月丁香亚洲综合| 五月婷婷另类| aV欲望人妻中文字幕| 色爱综合网| 97激情五月天| 91AV婷婷| 色黄啪啪| 久久久国产精品黄毛片| 久久停停超碰| 九九热只有精品| 操人无码| 激情五月丁香六月综合AVXXXX| 色播五月天激情| 久久婷婷五月综合啪| 综激情网| 99热精品超碰| 五月四色激情| 亚洲乱码精品久久久久..| 天天综合中文| 五月丁香六月婷婷手机无线| 色五月婷色彩免播放器| 激情亭亭五月| 色吊丝99| 久久久久久久11111111111| 五月天丁香婷| 色色性爱视频| 丁香五月婷婷色| 99视频这里只有免费精品| 久草嫩草在线观看| 色色网站日本91| 久久久18| 狼人狠狠操| 99色在线观看视频| 久久午夜理论| 丁香五月婷婷成人综合| 婷婷免费精品视频| 99精品在线| 丁香五月婷婷婷桃花影院| 亚洲无AV在线中文字幕| 丁香五月综合| 色婷婷丁香五月| 丁香激情五月| 天天色天天操天天射| 丁香五月婷婷激情123| 婷婷激情肏屄网| 91chinese 在线| 久久婷婷综合五月| 综合 激情 婷婷| 狠狠色色| 中国女人做爰A片| 亚洲色热| 97高清国语自产拍| 操91| 免费观看全黄做爰的视频| 久久久久久人妻| 色色色国产| 丁香五月中文字幕色播| 天天舔天天摸| 91日日日| 大香蕉综合在线| 国产美女视频久| 五月婷婷天| 五月天中文网| 天天操天天操天天操天天操天天操天天操| 四月婷婷丁香| 婷婷丁香18| 玖玖资源站中文| 综合图区激情| 99热这里只有精彩| 五月天成人在线视频网站| 亚洲欧美999| 激情九九综合网| 婷婷激情五月综合基地| 久草xx性爱视频| 五月天自拍视频| 天天插天天日天天爽| 天天日夜夜B久久| 激情综合播播| 色五月天网| 互月天综合| 五月婷婷欲色| 六月丁香激情| 99操视频| 激情五月婷婷综合| 丁香婷婷色九月| 色狠狠999综合| 色女人久久| 久9热在线视频| 日本片日本片祼观看网站在线看中文版网页在线看 | 色婷婷小说网| 极品人妻VIDEOSSS人妻| 久热爱大香蕉在线蜜臀悦色 | 欧美日韩精品人妻狠狠躁免费视频 | 日韩成人无码| 男人的天堂99| 影音先锋噜一噜| 97色色婷婷| 六月丁香婷婷拍拍| 四月婷婷丁香| 9久久久久久久久久久| 激情激情激情网| 天天干com| 深爱婷婷网| 五月婷婷欧美| 丁香五月婷婷综合啪啪| 婷婷七月丁香色色| 婷婷国产日本欧美| 五月丁香六月婷婷激情视频在线观看免费 | 这里只有视频精品| 欧美xx激情视频在线观看| 天天干,夜夜爽| 99久在线| 丁香性爱在线视频| 九九亚洲综合| 五月四色婷婷| 亚洲精品国产setv| 99热草草| 丁香久久| 婷婷深爱五月| 年轻的妺妺伦理HD中文| www.日本91| 色婷婷婷av| 欧美天天干天天草| 丁香五月综合在线播放 | 国产三级在线播放| 五月婷丁香花| 播播网色播播| http:色情日本com| 99热9999| 久久偷拍综合五月天| 超碰99在线观看| 91 九色大美女| 色婷婷AV在线| 影音先锋人妻出差| 综合网色| 九九热视频99| 亚洲热久久| www色婷婷| 丁香花五月天社区| 国产美女精品| 26uuu在线观看| 欧美婷婷色五月网| 美欧成人视频| 热久久视频99| 婷婷五月综合在线| 狠狠色婷婷777| 免费视频这里只有精品| 丁香五月天社区| 五月丁香综合中文| 色五月丁香五月婷婷五月成人网| 天天爽天天操| 色婷婷影视| 人人操五月天| 任你搞免费视频观看| 婷婷五月天美女| 亚洲无码99| 综合福利网| 九九这里只有精品在线视频| 久久久大香蕉| 狠狠爱夜夜| AV天堂婷婷五月天| 校花娇喘呻吟校长陈若雪视频| 成人无码精品1区2区3区免费看| 久久宗合影| 99re在线这里只有精品视频首页| 大学生高潮无套内谢视频| 国产精品操| 五月综合无码| 91碰九色| 九九热思思| 欧美日韩精品人妻狠狠躁免费视频| 黄网免费看| 精品久久久人妻| 免费看欧美成人A片无码| 操碰91| www.久久久久久久| 欧美综合五月丁香六月婷| 99热网站| 丁香五月性爱爱五月| 深爱激情网综合| 欧美日韩精品人妻狠狠躁免费视频| 久久五月综合| 99re热视频这里只精品| 婷婷在线播放av| 中文字幕在线资源| 五月丁香| 久久久久久人妻| 99er这里只有精品视频| 五月香婷婷| 丁香婷最新动态| 色碰碰视频| 99热99精品| 天堂在线9| 97五月婷婷| 久久人妻视频| 免费观看亚洲AV片| 任你爽视频| 激情深爱综合| 在线18av | 26uuu激情五月天| 日韩一区二区A片免费观看| 天天婷婷操| 久久97久久99久久综合欧美| 丁香五月冃欧美| 丁香99| 五月天涩涩| 色久99| 激情丁香五月婷婷| 色综合色五月| 国产看真人毛片爱做A片| 色综合天天网| 色婷婷啪啪综合网| 狠狠色大香蕉| 思思视频久久| 91黄色五月天视频| 天堂五月婷婷| 国产日批视频免费播放| 日本欧美成人片AAAA| 婷婷丁香五月天狠狠| 丝袜熟女一区二区三区| 青青草轻轻操| 日本在线免费中文com.| 亚洲成人av在线观看| 婷婷五月天网| 丁香婷婷五月天亚洲| 伊人高清无码| 欧美日韩成人免费在线| 婷婷丁香久久五月综合| 久热爱大香蕉在线蜜臀悦色| 婷婷五月丁香综合| 久香草视频在线观看| 婷婷五月欧美| 色99在线视频| 99热精品在线播放| 久久久精品视频79| 狼人伊人天堂| 九九青青草成人| 婷婷丁香六月影视| 人人看人人97| 天天爽天天| 婷婷五月花丁香| 99玖玖免费视频| 五月婷婷六月激情| 欧美性丁香色色五月天干干| 色色色色热热| 久99精品视频| 午夜天堂一区人妻| 天堂中文国产| 天天舔天天摸天天透| 五月丁香花激情综合网| 五月婷婷操操| 婷婷综合久久| 五月婷婷中文| 欧美激情五月天在线观看| 色婷婷影音| 91操人视频| 天天做夜夜爽| 99热日本| 26uuu视频欧美| 婷婷激情啪啪| 婷婷香蕉精品| 天天干天天拍| 色婷婷国产精品综合在线观看| 婷婷综合五月天激情| 久久久久久久久久91| 久久在线视频免费观看| www.99婷婷| 九九色视频| 久久丁香婷婷五月天| 看逼中文字幕| 碰碰碰97国产| 国产精品VIDEOSSEX久久发布| 99色综合| 99热在线这里| 九九色99| 色婷婷婷婷成人网| 九九碰九九爱97超碰| 综合久久8| 日日夜夜狠狠| 成功精品影院| 六月婷婷综合| 久草五月婷婷| 狠狠色五月| 婷婷丁香人妻天天久久| 婷婷五月丁香成人| 丁香五月 综合| 久久丝袜婷婷| 在线观看亚洲AV| 狠狠色综合图片| 成人无码髙潮喷水A片| 色色色色五月天| 天天操天天操天天操天天操天天操| 伊人干练久| 俺也去婷婷五月天第五色| 丁香六月av| 日本久久色| 俺去也五月| www超碰| 天天干夜夜谢| 九九热视频这里只有精品| 黄网免费观看| 中文字幕在线播放视频| 开心五月综合激情网| 婷婷五月天播播| 婷婷射丁香| 日日操,天天操| ...婷婷国产成人亚洲日韩| 影音先锋按摩| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | av中文在线| 婷婷狠狠操| 日本三级日本三级99| 丁香五月AV| 99爱爱网| 97久久久| 99性爱视频| 久热9| 开心五月深爱五月| 黑人巨粗进入警花疼哭A片| 日本熟妇乱妇熟色A片蜜桃| www.天天干| 麻豆WWWCOM内射软件| 极品少妇高潮啪啪AV无码| 色婷婷综合网| 人人爽网| 91干99| 9视频1在线| 丁香婷婷色色| 五月天日日操夜夜操 | 国产精品人成A片一区二区| 成人精品视频99在线观看免费| www.色婷婷| 曰韩少妇内射免费播放| 沈娜娜av| 色情五月天丁香社区| 六月婷婷激情| 狠狠色激情在线| 久热这里只有精品视频6| 国语精品探花| 色在线99| 婷婷五月天影院| 婷婷综合视频| 久色大香蕉| www.久久爱.com| 丁香五月影院| 五月丁香 啪啪啪| 亚洲六月色| 色色五月天网站| 亚洲五月婷婷| 亚洲免费成人电影AV| 亚洲一级AV在线免费播放| PORNY九色9l自拍视频成人| 狠狠做六月爱婷婷综合aⅴ| 狠狠操天天操天天操| 99视频网| 婷婷开心激情| 婷婷伊人综合| 久热九九| 五月激情婷婷开心| 色色操| 中文字幕无线久必| 91色涩| 成人婷婷深爱综合网| 国产成人+亚洲+欧洲| 激情综合网五月丁香| 另类少妇人与禽zOZZ0性伦| 99五丁香月| 99热这里| 99热这里只有精品在线播放| 丁香五月天啪啪| 丁香婷婷五月香蕉91| 香蕉大综综综合久久| 六月色日韩| 99热九九热| 天天爽天天干| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 26uuu.| ji'qi'luan'ren'lun| 久久综合激情| 中文字幕人妻AV| 区区久久妻| 色色色色色色色色网站| 无码99| 婷婷五月天丁香社区| 丁香五月综合福利视频导航| 久久99操| 国产精品岛国片在线观看免费| 99re热精品视频国| 狠狠99| 亚洲无码影音| 久久五月天精品视频| 看片视频在线免费日产在线看| 精品夜夜澡人妻无码AV| 色婷丁香| 色狠狠999综合| 色色色视频免费无码 | 九九色综合九九色| 最近免费中文字幕大全高清大全1| 久七香蕉| 九九热精品6| 99爱在线视频| 丁香五月激情综合| 91se在线观看| 伊人大香蕉综合在线| 色五月婷婷五月久久| 在线99热| www.91婷婷| 九九视频这里只有精彩| 国产人妻777人伦精品HD| 另类视频一区| AV在线中文| 六月婷婷最新网址| 久久婷婷五月天综合| 人妻丰满精品一区二区A片| 在线观看免费人成视频无码| 五月丁香婷婷爱激情综合网| 91精品久久久久久久| 9热久久| www,婷婷| 大香蕉久久伊人网| 日本五月视频| 97超级碰| 久99热| 色九九综合色| 99热这里有精品2| 被强行糟蹋的女人A片| 五月婷婷丁香深深爱| 中文字幕黄色片| 97色久| 在线网黄| 色久九| 亚洲在线综合| 91超碰人人操| 色色五月婷婷| 久久色频| 亚洲日本韩国| 丁香丝袜五月| 欧美日本99| 激情深爱综合网| 久久久五月天婷婷成人网| 天天夜夜爽| 密视AV综合在线| 婷婷五月天成人小说| txt五月激情四射网综合俺也来了| 五月激情婷婷开心| 六月丁香成人| 九九色欲网| 欧美99热| 婷婷激情五月综合| 天天透天天摸天天舔| 在线精品97| 桃色激情网| 五月丁香综合中文| 婷婷综合色色| 丁香六月av| 五月综合激情啪啪啪啪啪| ss视频xx91| 黄色99热| 九九99精品| 激情五月伊人婷婷| 久久婷婷六月综合国际| 九九热99热| 99碰网站| 99无码视频| 九九热这里只有精品一| 激情丁香五月综合| 久99视频在线观看| 亚洲五月丁香综合网| 韩日另类| 俺去也婷婷| 亚洲天堂久久| 超碰免费成人网站| 五月婷婷婷丁香播| 亚洲国产精品成人免费一区久久久在线观看AAAA | 精品久久99码| 成人午夜无码视频| 99年操人人爽| 中文成人在线| 热的国产,热的综合,热的有码 | 97人凄人人操人人爽| 婷婷五月天小说| 99这里只有精品在线观看| 伊人三级激情| 九九色色| 五月婷婷啪啪| 狠狠婷婷爱| 丁香五月婷婷亚洲激情四射| 天天操天天干天天日| 玖玖资源天天无码| 91久久久久久久| 色婷婷在线电影| 在线成人网址| 色久综合天天做视频| 伊人色综合影院视频| 99ER热精品视频| 色婷婷精品视频| 色欲日日躁| 午夜九九九九九九九九九九九九九| 婷婷丁香六月天| 丁香五月天堂网| 欧美性丁香色色五月天综合爱爱| 五月婷婷丁香六月| 色婷婷性爱网| 色吧五月婷婷| 婷婷国产成人| 国产又黄又爽又激情不遮挡视频在线观看| 国产精品国产| 婷婷伊人久久无码色五月| 久久狼人天堂| 99热.com| 噜噜噜色噜噜| 五月色婷婷亚洲| 三级99热| 久久se 综合网| 色婷婷成人| 天天做天天爱天天爽综合网| 色婷婷色久综| 99色综合网| 伊人碰碰婷婷| AV中文字幕夜夜操b天天摸bb | 婷婷色无码| 九九99九九99| 午夜色丁香| 国产,欧美,学生妹,视频| 丁香五月婷婷啪啪| 99热精品在线| 色丁香五月| 狠狠色无码| 五月天色婷婷激情综合| 五月丁香 啪啪| 最新AV在线观看| 91久久久久| 成人午夜天| 夜夜撸日日操| 日本九九九九| 丁香五月日韩| 五月婷激情影院| 九九热在线视频观看| 激情婷婷五月色| 再綫Av免费視品| 婷婷在线免费| 久九色| 婷婷丁香宗合888| 日韩色色一区| 97碰在线免费观看| 欧美操我| 伊人久久中文网| 五月丁香亭亭AV女优| 91n啪啪| 婷婷桃色网| 伊人久久丁香五月91| 久久久国产精品黄毛片| 免费观看全黄做爰的视频| a网站免费观看| 色婷五月| 五月激情啪啪| 一点色成人网| 内射在线CHINESE| 久久久国产精品黄毛片| 九九热视频在线观看| 五月天激情四射| 五月大香蕉| 桃色五月天| 亚洲精品白浆高清久久久久久| 97色色色| 欧美日韩成卜| 丁香婷婷激情四射五月| 99热人人操人人操| 婷婷综合九月| 波多野结衣AV无码Porn| 激情爱爱网站| 久久女婷| oumeisesewang| 丁香五月综合在线| 九九精品在线网| 岛国AV网| 色婷婷综合亚洲| 激情婷婷| 少妇被躁爽到高潮无码文| 五月婷婷色欲| 91精品国产色猫| 五月天婷婷基地综合网| 超碰在线91| 色天天久婷婷| 操射国产日本| 9久国产| 亚州操人在线视频| 国产古装妇女野外A片| 97操资源婷婷| 国产激情在线| 丁香五月天激情婷婷丁香六月| 天天色综合色| 99A片| va亚洲中文在线| 色婷婷久综合久久一本国产AV| 视频综合网| 五月丁婷婷| 婷婷午夜天| 操碰99| 亚洲激情网| 嫩草免费视频| 色99自拍| 九九亚洲小视频| 色情·com| 成人在线网址| 99色综合| 免费AV播放| 婷婷综合五月天激情| 国产偷人爽久久久久久老妇APP| 伊人丁香五月| 久久婷婷六月综合国际| 五月婷婷网站| 大香蕉75线| 六月久久婷婷| 99re在线视频精品,这里只有精品18,| 五月丁香网站| 天天婷婷天天| 1级欧美日韩| 丁香六月婷婷色XXXXX| 9超碰在线| 在线视频另类| 噜噜色五月| 日本精品人妻无码77777| 色婷婷色人人射| 中文字幕+中文在线| 七七九色| 丁香婷婷六月激情文学| 少妇AB又爽又紧无码网站| wwwC0maV五月花| 久操人| 丁香六月啪| 激情五月综合视频| 国产精女同一区二区三区久| 综合网亚洲| 91九色精品女同系列| AA丁香综合激情| 天天干天天叉| 琪琪色热色色| 久久综合婷婷| 婷婷综合色五月天| 婷婷五月电影| 这里只有精品视频在线| 99热这里只有免费| 99在线观看精品| 中文字幕日产A片在线看| 色五月首页| 99热在线观看精品| 日本欧美成人片AAAA| 五月天涩涩| 久99| 人人摸人人干| 538任你爽| wwccc久久久| 久久五月天网| 色婷五月天| 综合五月网| 久久久人妻不卡| 97色射| 91操熟女| 欧美性色五月天| 91色涩| 日日操夜夜擼| av在线中文| 五月永久激情| 六月婷婷久久| 91色呦哟| 日韩狠狠色| 六月婷婷影院| 婷婷五月天久久| 天天插操| 婷婷综合| 五月天婷婷在线AN| 综合激情网五月激情| 青青草五月天| 国产毛片欧美毛片久久久| 天天操综合网| 五月婷婷激情色情网| 久久新| 婷婷五月欧美综合| 激情综合五月丁香| 五月丁香在线看| wuyuedingxiang99| 久久五月婷婷丁香| 日韩精品视频中文字幕| 婷婷五月天综合网| 色五XX| 激情五月深爱五月| www.日本91| 一级AV片| 欧美婷婷综合| 另类激情五月在线视频欧美| 天天干-天天日| 婷婷亚洲色| 免费AV在线网址| 免看黄大片AA | 丁香成人五月天| 久久狠狠干| 99性爱无码| 五月丁香六月激情综合网| 婷婷六月色情| 黄色片avv| 色丁香五月婷婷| 色色吧综合| 久久这里只有精品99| 思思热再线视频| 九九99在线观看视频| 热99精品视频| 伊人青涩网| 97久久久久久久久久久| 天天日天天舔| 91超碰在线观看| 婷婷激情图片| 丁香五月天天高清在线| 天堂五月婷婷| 天天日天天狠狠操| 另类专区在线| 色香久久| 欧美婷婷综合网| 操91综合网| 四川女人毛多水多A片| 人人摸人人| 久久资源网五月婷| 五月婷婷激情网| 激情六月日韩| 思思久热6| 99热日本| 五月婷婷五月天天| 丁香久久AV| 狠狠做六月爱婷婷综合aⅴ| 91男同| 色噜噜狠狠色综合网| 丁香五月天婷婷91| 密视AV综合在线| 九九色网| 天堂网亚洲色图| 97超级啪啪在线观看| 国产SUV精品一区二区883| 丁香六月婷| 91久久久久久久| 激情开心五月天| 可以看的av网站| 五月婷婷婷| 五月激情站| 丁香五月天色婷婷| 天天精品视频免费观看| 丁香五月天啪啪| 久久婷婷伊人| 五月花激情| 五月婷婷影| 99热6这里只有精品| 五月天婷婷在线AN| 精品久久人妻| 精品久热| 伊人综合网站| 久久综合久色欧美综合狠狠| 亚洲九N| 久久婷婷五月丁香蜜桃网| 婷婷丁香中文字幕| 免费色婷婷| 婷婷狠狠爱| 成人啪啪色婷婷久| 九月婷婷激情| 色综合久久天天综合网| 1024日韩| 亚洲俩性性爱图片久久第六页| 国产99精品免费视频| 久久五月丁香激情综合| 嫩BBB槡BBBB搡BBBB视频| 丁香五月成人在线| 香蕉AV777XXX色综合一区| 日韩五月丁香| 天天干天天操天天射| 国产在线黄色| 天天色综网| 99亚洲精品| 五月久久综合| 久久精品日| 婷婷伊人75| 久久综合激情| 99热这里只有精品21| 天天舔天天| 色色色色色色色色综合网| 亚洲va成人va成人va在线观看| av在线激情| 九九热免费视频| 最近免费中文字幕大全高清大全1| 五月停性愛| 六月激情丁香一道本7777| 久9久9久9久9久9久9| 久久综合激情五月天| 这里只有精品99www| 九九热精品6| 9l视频自拍9l视频自拍九色学生| 国产无套精品一区二区| 96精品成人无码A片观看金桔| 99热热热天天人人人超超碰| 五月婷婷日| 婷婷成人网五月天| 亚洲综合婷婷| 天天做天天爱| 夜夜爽天天爽| 99热亚洲只有色| 久久久久激情网| site:pzdcoin.com| 思思久久青草热| 欧美久久网| 久久免费精彩视频| 激情综合另类| 99热超碰| 久久久久人妻中文| 欧美va视频| 男女啪啪做爰高潮无遮挡| 国产小网站| 在线va网站| 天天天天天日| AV性爱在线| 久久久久久婷| 开心五月婷婷激情| 五月婷婷视频ab| 精品在线网站| 岛国在线观看91| 丁香婷婷色九月| 五月婷婷熟女| 九九热精品99| 欧美私人家庭影院| 色播五月天婷婷老师| 婷婷日| 中文字幕激情综合| 农村熟妇高潮精品A片| 久久大香蕉伊人| 玖玖资源部在线播放| 无套内射极品大美女| www.久久99| 五月丁香成年黄色| 婷婷五月天AV激情| 97干在线播放| 婷婷影院A成人| 天天搡日日搡aaaaⅩ| 激情5月天天天| 婷婷色五月激情| 韩日AV片| 91精品熟女| 超碰资源在线| 伊人婷婷福利网| 天天日天天添| 国产亚洲色婷婷久久99精品91| 粉嫩AV久久一区二区三区| 婷婷五月丁香超碰| 激情 婷婷 丁香五月天| 99久久久久| 97操男人的天堂| 婷婷五月天va| 色九月婷婷综合| 婷婷丁香色女人| caopeng超碰| 在线网黄| 超碰啪啪网| va婷婷在线| 91啪啪视频| 超碰精品国产首页| 伊人婷婷色激情丁香| 婷婷五月天色播| 色色色在线观看| 激情五月婷婷老师| 日产精品一线二线三线芒果| 粉嫩av懂色av蜜臀av熟妇| 久机视频这只有精品| 亚洲性爱AV在线| 天天日天天狠狠操| 亚洲操逼片| 99热 在线播放| 丁香六月视频免费观看| 五月婷婷大香蕉| 超碰人人在线| 啪啪操超碰| 久热AⅤ| 天天爽夜夜爽天天爽夜夜爽| 99热久久这里只有精品| 国产成人+综合亚洲+天堂| 六月婷婷综合| 97婷婷久久丁香| 五月综合激情视频| 无码激情AAAAA片-区区| 五月丁香美女视频| 丁香久久综合| 婷婷九月丁香天堂丁香天堂| 精品无码99| 色无婷婷| 狠狠色丁香婷婷综合久久97AV| 大香蕉综合在线| 五月天激情小说| 97久久人人| 婷婷月综合| 超碰不卡在线| 中文字幕亚洲-区久久99婷婷| 婷婷五月图片小说网| 久久婷综| 激情综合另类| 欧美婷婷色| 国熟女视频| av国产精品| 婷婷丁香五另类网站| 激情综合五月| 亚洲综合新99视频| 91中文在线| 26uuu美女三级视频| 婷婷五月综合在线| 丁香亭亭久久| 99久久九九| 97色色色视屏| 亚洲综合五月天婷婷丁香| 可以免费看av网站| 丁香五月AV| 97激情五月天| 中文字幕日本最新乱码视频| hd五月婷婷在线| 4399无码视频| 色婷婷先锋| 伊人激情综合| 99综合色| 99热热热国产超碰| 久久色9| 91人人操人人爱| 中文字幕在线播放视频| 大香蕉久| 思思99热| 丁香五月婷婷成人综合| 婷婷99狠狠躁天天久久久九九九| 久久在线人妻| 超碰A V在线| 99性爱视频| 成人av在线电影| 色偷偷综合| 婷婷六月激情啪啪| 九久久九精品视频| 天天色色天天| 1024成人在线观看| caop在线视频| 欧美五月丁香啪啪响视频| 国产精品99久久久久久久女警| 26uuuu精品一区二区| 99久99久| 五月丁香六月婷婷色情| 激情综合网五月丁香| 五月天com| 色婷婷色五月丁香| 最新婷婷五月丁香| 五月天婷婷免费视频| 啊v视频在线观看| 亚洲综合激情五月久久| 99热这里只有精品2024| se婷97| 一起草Av| 丁香婷婷免费| 婷婷黄色网| 婷婷涩涩五月天| 色色网站免费在线视频| 九九九九操逼| 亚洲日日日| 91久久久久久久久久久| 性做久久久久久久免费看| 日本va欧美va欧美| 99亚洲精品视频| 五月天婷婷影院| 三级大香蕉网| 91日日日| 99激情视频| 五月婷婷色激情| 成人欧美日韩| 丰满少妇猛烈A片免费看观看 | 婷婷爱婷婷| 色五月婷婷大香蕉| www色婷婷| 99热这里只有免费精品| AV在线观看网站| 国产精产国品一二三在观看| 六月综合在线| 亚洲色热| 婷婷六月视频| 欧美色色色| 久久精品视频在这里有| 五月婷婷激情综合| 成人草榴视频| 日本3级片一区2区| Av性爱网| 在线看av| 综合婷婷| 99这里| 激情网五夜婷婷| 九九激情| 五月婷视频| 婷婷五月激情视频在线| 色情综合网| 在线日本www| 中文AV网| 美女丁香五婷婷| 免费视频舔| 五月婷婷丁香网| 99精彩视频| 色五月综合资源推荐| 五月天亚洲最大成人| 五月婷久久草| 国产肥白大熟妇BBBB视频| 国产免费一区二区三区三州老师F1F1.CC | 啊v视频在线观看| 五月丁香婷婷激激激综合网色播| 五月色色色| 啪啪五月婷婷| 91一起操| 色五月涩涩婷婷| 能看的av片| 色综合婷婷| 超级碰碰视频无码| 极品少妇高潮啪啪AV无码| 激情人妻综合| 日韩精品无码99| 久久网站免费亚洲| 日本天堂免费99| 五月丁香婷婷五月色| 色五月激情五月天| 狠狠干五月天| 99热九九在线| 99这里有精品视频3| 国产免费av在线| 91色综合网站在线| 思思热在线| 五月天婷婷免费| 天天操夜夜橾| 四虎婷婷五月天| 婷婷久久大香蕉| 五月婷激情影院| 国产,欧美,日韩,性爱| 五月丁香综合网色欲| 欧美日本黄色| 69久热| 欧美婷婷丁香社区在线播放| 超碰91在线| 丝袜人妻| 99亚洲视频| 五月丁香六月香综合激情| 这里只有精品视频在线观看免费| av在线激情| CAOBIBI| WWW、99热| 欧美叉叉叉BBB网站| 九九热在线观看视频| 伊人久久大香蕉网| 天天插天天爱| 婷婷涩涩五月天| 人人草人人爱手机视频看看|