亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

YOLOv8s結(jié)構(gòu)化剪枝實(shí)戰(zhàn):從稀疏化訓(xùn)練到部署加速

YOLOv8s結(jié)構(gòu)化剪枝實(shí)戰(zhàn):從稀疏化訓(xùn)練到部署加速 先講一個(gè)我前陣子真實(shí)遇到的部署場(chǎng)景。模型用YOLOv8s在GPU上訓(xùn)得漂漂亮亮精度也在線可一旦挪到邊緣盒子上單幀推理直接干到四十多毫秒真到了要拼實(shí)時(shí)性的時(shí)候幀率死活穩(wěn)不住。調(diào)NMS、降分辨率、換解碼方式折騰了一圈效果都有限最后真正把時(shí)延壓下來(lái)的是剪枝。剪枝這個(gè)詞大家都不陌生可一旦落到Y(jié)OLOv8s上情況就跟網(wǎng)上一堆舊教程里的YOLOv5源碼完全不一樣了。yolov8s在結(jié)構(gòu)上把C3換成了C2fdetect head也改成了decoupled結(jié)構(gòu)直接把v5時(shí)代的剪枝腳本搬過(guò)來(lái)十有八九跑不通。我花了大概兩周時(shí)間把整條鏈路完整跑通從稀疏化訓(xùn)練、通道裁剪、結(jié)構(gòu)重建到微調(diào)恢復(fù)精度全部基于ultralytics YOLOv8s源碼改造。這篇博文就是把一套能落地的yolov8s剪枝源碼思路拆開(kāi)來(lái)講每一步為什么要這么做核心代碼應(yīng)該寫(xiě)在哪有哪些坑我替你先踩過(guò)了。內(nèi)容適合已經(jīng)在用YOLOv8做項(xiàng)目、對(duì)PyTorch不陌生、但還沒(méi)系統(tǒng)接觸過(guò)模型壓縮的開(kāi)發(fā)者。1. YOLOv8s結(jié)構(gòu)解析先弄清楚算力燒在了哪里1.1 YOLOv8s各模塊的算力分布剪枝之前我建議你先別急著翻代碼而是花半天時(shí)間把你手里這個(gè)模型的算力分布看明白。YOLOv8s在640×640輸入分辨率下總計(jì)算量約在28GFLOPs左右參數(shù)量約11.2M含檢測(cè)頭。這個(gè)體量在YOLOv8家族里屬于small檔看起來(lái)不大但對(duì)邊緣設(shè)備來(lái)說(shuō)依然偏重。從結(jié)構(gòu)上看YOLOv8s由三大部分組成Backbone負(fù)責(zé)從輸入圖像提取多尺度特征Neck是PAN-FPN結(jié)構(gòu)負(fù)責(zé)把不同層的特征融合起來(lái)最后是Decoupled檢測(cè)頭分別輸出分類(lèi)和回歸分支。我自己的實(shí)測(cè)統(tǒng)計(jì)里Backbone占據(jù)了接近一半的計(jì)算量Neck占了剩下三分之一左右檢測(cè)頭因?yàn)榇罅渴褂?×1卷積FLOPs占比其實(shí)沒(méi)有想象中高。這里要重點(diǎn)說(shuō)的是Backbone和Neck里大量的3×3卷積。對(duì)邊緣設(shè)備而言3×3卷積在CPU和多數(shù)NPU上都是計(jì)算熱點(diǎn)剪掉一層輸出通道省下的時(shí)間非??捎^。所以剪枝的核心目標(biāo)很明確把你的裁剪預(yù)算優(yōu)先花在Backbone和Neck的C2f模塊上檢測(cè)頭做一個(gè)克制的輸入通道裁剪即可最后的輸出層盡量保持不動(dòng)。1.2 C2f的split機(jī)制剪枝時(shí)為什么比v5麻煩YOLOv8s和YOLOv5s在結(jié)構(gòu)上最大的變化就是C3換成了C2f。C2f模塊里有一個(gè)很關(guān)鍵的split操作def forward(self, x): y list(self.cv1(x).chunk(2, 1)) # 沿通道維度對(duì)半拆開(kāi) y.extend(m(y[-1]) for m in self.m) # 后半路依次經(jīng)過(guò)多個(gè)Bottleneck return self.cv2(torch.cat(y, 1))cv1先把輸入通道映射到2c然后沿通道方向?qū)Π氩鸪蓛煞?。前半份直接送去concat后半份經(jīng)過(guò)一組Bottleneck之后再送去concat最終由cv2把(n1)c壓縮回目標(biāo)輸出通道。這個(gè)split機(jī)制直接導(dǎo)致了一個(gè)問(wèn)題C2f內(nèi)部所有分支的通道組必須保持對(duì)齊才能保證最終concat之后通道位置嚴(yán)格對(duì)應(yīng)。如果照搬YOLOv5時(shí)代的“逐個(gè)BN層剪γ”方案幾乎必然在C2f模塊的torch.cat處報(bào)shape mismatch或者更隱蔽的——通道錯(cuò)位。我在寫(xiě)剪枝源碼時(shí)把C2f當(dāng)成一個(gè)整體去生成統(tǒng)一的通道m(xù)ask而不是單獨(dú)處理每個(gè)Bottleneck這一點(diǎn)是YOLOv8s剪枝區(qū)別于v5的核心難點(diǎn)后面會(huì)專(zhuān)門(mén)講。1.3 結(jié)構(gòu)化剪枝與非結(jié)構(gòu)化剪枝想清楚再動(dòng)手模型剪枝分為兩大類(lèi)非結(jié)構(gòu)化剪枝unstructured pruning剪的是單個(gè)權(quán)重稀疏度分布不均勻模型文件里全是零值但通用硬件上幾乎得不到加速收益除非配套稀疏矩陣專(zhuān)用庫(kù)。結(jié)構(gòu)化剪枝structured pruning以通道或?yàn)V波器為基本單位整體裁剪直接改變卷積層的輸入輸出維度任何推理框架都能拿到實(shí)實(shí)在在的加速。我見(jiàn)過(guò)不少朋友把SparseGPT這類(lèi)非結(jié)構(gòu)化方案用在YOLOv8s上精度保住了但導(dǎo)出到TensorRT或ONNX Runtime之后推理速度紋絲不動(dòng)。原因很簡(jiǎn)單民用級(jí)硬件基本不為稀疏權(quán)重做優(yōu)化。所以你如果目的是部署加速直接選結(jié)構(gòu)化通道剪枝不要去碰非結(jié)構(gòu)化路線。2. 剪枝方案選型基于BN層γ系數(shù)做通道重要性判斷2.1 Network Slimmingγ系數(shù)就是天然的通道重要度指標(biāo)通道剪枝要回答一個(gè)核心問(wèn)題怎么判定哪些通道不重要最經(jīng)典也最省事的方案是ICCV 2017年的Network Slimming方法。它利用的是卷積層后面那個(gè)幾乎被人忽略的BatchNorm層。BN層的計(jì)算公式是y γ * (x - μ) / √(σ2 ε) β其中γ和β都是可學(xué)習(xí)的仿射參數(shù)。γ是縮放系數(shù)如果訓(xùn)練后某個(gè)通道的γ變得非常接近0那么該通道的輸出就幾乎恒定在一個(gè)由β決定的固定值上信息量趨近于零這個(gè)通道就可以被安全地剪掉。關(guān)鍵就在于普通訓(xùn)練得到的γ數(shù)值分布不夠“極端”很多通道的γ值都落在0.5到1.5之間你沒(méi)法說(shuō)誰(shuí)更重要。所以需要人為給γ加上L1正則約束讓它稀疏化。訓(xùn)練時(shí)的總損失從L變成L λ * Σ|γ|其中λ是稀疏化懲罰系數(shù)。這個(gè)正則項(xiàng)會(huì)鼓勵(lì)γ往0靠攏訓(xùn)練結(jié)束后γ的分布會(huì)形成明顯的雙峰一堆極度接近0剩下的保持相對(duì)大的數(shù)值。普通訓(xùn)練后直接按γ剪和稀疏化訓(xùn)練之后按γ剪效果差別非常大。前者誤傷率高剪完精度掉得一塌糊涂微調(diào)也救不回來(lái)后者才能精準(zhǔn)識(shí)別出真正冗余的通道。這是整個(gè)剪枝方案成立的前提千萬(wàn)別跳過(guò)。2.2 為什么不考慮低秩分解和基于梯度的通道評(píng)估你可能還會(huì)看到一些方案用通道注意力權(quán)重、梯度敏感度或者低秩分解來(lái)選擇剪枝通道。低秩分解能把卷積核拆成小矩陣序列但從工程角度講拆完之后的模型結(jié)構(gòu)要重寫(xiě)底層算子才能發(fā)揮加速效果和普通推理框架的兼容性很一般?;谔荻鹊姆椒ㄊ歉?xì)的敏感度分析但要在每個(gè)剪枝候選上做一次反向傳播算力開(kāi)銷(xiāo)不低性?xún)r(jià)比反而不如γ稀疏化。對(duì)YOLOv8s這種層數(shù)不算極端、結(jié)構(gòu)相對(duì)規(guī)整的模型來(lái)說(shuō)γ系數(shù)方案是平衡效果與工程復(fù)雜度最好的選擇。它不需要額外訓(xùn)練一個(gè)評(píng)判網(wǎng)絡(luò)不需要逐層搜索敏感度只需要在訓(xùn)練loss上加一個(gè)正則項(xiàng)剪枝時(shí)拿一把全局閾值來(lái)篩通道整個(gè)流程完全可控。2.3 開(kāi)工前的基礎(chǔ)配置我建議你基于ultralytics官方的YOLOv8s源碼來(lái)做版本選8.0.x或8.1.x都行但1.x分支之后的代碼結(jié)構(gòu)有些調(diào)整注意保持一致。環(huán)境方面PyTorch 1.13以上、CUDA 11.7以上就行不需要額外裝稀疏計(jì)算庫(kù)剪枝前的稀疏化訓(xùn)練就是常規(guī)訓(xùn)練。另外準(zhǔn)備一個(gè)你自己的、已經(jīng)收斂到可用狀態(tài)的YOLOv8s權(quán)重文件。最佳實(shí)踐是先正常訓(xùn)練到float32的精度峰值再?gòu)倪@個(gè)權(quán)重開(kāi)始做稀疏化訓(xùn)練不要從頭就在loss里加稀疏正則否則模型收斂速度和精度上限都會(huì)受影響。3. 稀疏化訓(xùn)練源碼改造給YOLOv8s訓(xùn)練循環(huán)加上γ正則3.1 在Ultralytics訓(xùn)練循環(huán)中插入稀疏化損失Ultralytics YOLOv8的訓(xùn)練邏輯集中在trainer.py的_do_train方法里核心循環(huán)對(duì)每個(gè)batch做前向和反向。為了加稀疏化損失我的做法是在trainer里覆寫(xiě)一個(gè)loss計(jì)算hook。不同版本源碼結(jié)構(gòu)有差異但思路是通用的在模型前向算出的主loss之后、loss.backward()之前加入BN層γ的L1正則項(xiàng)。# sparse_loss.py import torch import torch.nn as nn SPARSITY_LAMBDA 1e-4 def sparsity_loss(model): reg_loss 0.0 for m in model.modules(): if isinstance(m, torch.nn.BatchNorm2d): reg_loss torch.abs(m.weight).sum() return SPARSITY_LAMBDA * reg_loss然后在訓(xùn)練循環(huán)的loss計(jì)算處調(diào)用# 在Ultralytics trainer的_do_train循環(huán)內(nèi) loss, loss_items self.model(batch) # 原有的任務(wù)損失 loss loss sparsity_loss(self.model) # 加上稀疏化正則 self.loss loss self.optimizer.zero_grad() loss.backward() self.optimizer.step()實(shí)際接入時(shí)要注意一個(gè)細(xì)節(jié)Ultralytics在不同版本里對(duì)AMP混合精度和梯度縮放的處理方式不同你需要確保sparsity_loss返回的是一個(gè)普通tensorfloat16和float32的類(lèi)型轉(zhuǎn)換正確即可。如果加了正則之后出現(xiàn)梯度異常先檢查一下是不是這里的類(lèi)型沒(méi)對(duì)齊。3.2 怎么判斷稀疏化訓(xùn)練到位了稀疏化訓(xùn)練不能瞎跑幾個(gè)epoch就算數(shù)。我訓(xùn)練過(guò)程中會(huì)周期性記錄所有BN層γ值的分布。具體做法是寫(xiě)一個(gè)小腳本加載當(dāng)前模型把每一個(gè)BatchNorm2d的weight.data收集起來(lái)然后打印直方圖。你希望看到的分布是明顯的雙峰左側(cè)在0附近聚集大量通道右側(cè)還有一個(gè)相對(duì)較高的峰。如果訓(xùn)練了幾十個(gè)epoch之后γ分布基本沒(méi)變化說(shuō)明SPARSITY_LAMBDA太小了懲罰力度不夠反過(guò)來(lái)如果γ值幾乎全部壓到了0附近說(shuō)明λ太大模型表達(dá)能力已經(jīng)被破壞這種狀態(tài)下剪完模型基本廢掉。我自己的經(jīng)驗(yàn)閾值YOLOv8s在COCO風(fēng)格數(shù)據(jù)集上SPARSITY_LAMBDA從1e-4起步每跑30個(gè)epoch觀察一次γ分布不夠稀疏就加到5e-4上限不要超過(guò)1e-3。要注意這個(gè)參數(shù)跟數(shù)據(jù)集、batch size都有關(guān)系換數(shù)據(jù)集后必須重新觀察分布不能一個(gè)數(shù)值通吃。3.3 稀疏化訓(xùn)練的完整參數(shù)參考我實(shí)際跑通的一套配置大致如下供參考參數(shù)建議值備注SPARSITY_LAMBDA1e-4 ~ 1e-3以γ分布雙峰為標(biāo)準(zhǔn)稀疏化訓(xùn)練epoch100 ~ 300在預(yù)訓(xùn)練權(quán)重基礎(chǔ)上繼續(xù)初始學(xué)習(xí)率0.01配合余弦衰減批量大小64或32一致即可權(quán)重衰減5e-4保持常規(guī)訓(xùn)練習(xí)慣數(shù)據(jù)增強(qiáng)與正式訓(xùn)練一致盡量保持一致稀疏化訓(xùn)練結(jié)束之后不要急著剪。先保存一份稀疏化權(quán)重然后花十分鐘驗(yàn)證一下加載模型遍歷所有BN層統(tǒng)計(jì)γ絕對(duì)值小于1e-3的通道占比。這個(gè)比例基本決定了你后續(xù)剪枝的性?xún)r(jià)比比如占比超過(guò)60%說(shuō)明模型有充足的水分可以擠。4. 剪枝源碼實(shí)現(xiàn)定位BN層、算mask、重建C2f與SPPF4.1 剪枝腳本的完整主流程剪枝腳本是整個(gè)方案的核心工程。我的思路是不直接在原模型對(duì)象上做in-place修改而是新建一個(gè)同構(gòu)的模型通過(guò)計(jì)算好的保留通道索引逐層重建最后把新state_dict拷貝進(jìn)去。這樣最安全出錯(cuò)時(shí)可以隨時(shí)回到原始權(quán)重。主流程可以拆成五步加載稀疏化訓(xùn)練好的模型權(quán)重。遍歷模型所有BatchNorm2d層收集γ絕對(duì)值。按剪枝比例算出全局γ閾值。結(jié)合C2f、SPPF、Concat、shortcut的結(jié)構(gòu)約束對(duì)每層生成輸入通道和輸出通道的保留索引。重建所有Conv和BN層把原始權(quán)重按照保留索引拷貝到新層里保存新模型結(jié)構(gòu)和權(quán)重。4.2 單層Conv-BN通道裁剪的基準(zhǔn)代碼先寫(xiě)最基礎(chǔ)的通道級(jí)裁剪函數(shù)。假設(shè)某個(gè)卷積層后面跟著一個(gè)BN層我們已知輸入通道保留索引keep_idx_in和輸出通道保留索引keep_idx_out需要生成新的Conv和BN。import torch import torch.nn as nn def prune_conv_bn(conv, bn, keep_idx_in, keep_idx_out): # 裁剪卷積層 new_conv nn.Conv2d( in_channelskeep_idx_in.size(0), out_channelskeep_idx_out.size(0), kernel_sizeconv.kernel_size, strideconv.stride, paddingconv.padding, dilationconv.dilation, groupsconv.groups, biasconv.bias is not None ) # 權(quán)重形狀 [out_channels, in_channels/groups, kH, kW] new_conv.weight.data conv.weight.data[keep_idx_out][:, keep_idx_in, :, :] if conv.bias is not None: new_conv.bias.data conv.bias.data[keep_idx_out] # 裁剪BN層 new_bn nn.BatchNorm2d(keep_idx_out.size(0)) new_bn.weight.data bn.weight.data[keep_idx_out] new_bn.bias.data bn.bias.data[keep_idx_out] new_bn.running_mean.data bn.running_mean.data[keep_idx_out] new_bn.running_var.data bn.running_var.data[keep_idx_out] new_bn.num_batches_tracked bn.num_batches_tracked return new_conv, new_bn這個(gè)函數(shù)是整個(gè)剪枝源碼的地基。YOLOv8s里幾乎所有的Conv后面都跟著B(niǎo)N所以只要把每一對(duì)Conv-BN的keep_idx算出來(lái)就能用這個(gè)函數(shù)逐層重建。真正難的是keep_idx怎么算尤其是C2f模塊。4.3 C2f的mask對(duì)齊shortcut和concat是兩個(gè)繞不開(kāi)的約束C2f模塊的剪枝不能只考慮單個(gè)BN的γ值必須把結(jié)構(gòu)約束考慮進(jìn)去?;氐?.2的forward代碼C2f產(chǎn)生的分支輸出最終會(huì)在通道維度上concat因此所有參與concat的分支必須共享同一套保留通道索引否則拼接后通道位置就對(duì)不上了。更棘手的是Bottleneck內(nèi)部的shortcut。Bottleneck的forward邏輯是這樣的x經(jīng)過(guò)cv1再經(jīng)cv2如果shortcut開(kāi)啟且輸入輸出維度一致就把輸入x直接加到輸出上。這意味著cv2輸出通道的保留mask必須和該Bottleneck輸入通道的保留mask一致否則逐元素相加必然維度沖突。所以實(shí)際處理C2f時(shí)我是把整個(gè)模塊作為一個(gè)通道組來(lái)對(duì)待def compute_c2f_mask(module, global_threshold): 收集C2f模塊內(nèi)所有相關(guān)BN的γ絕對(duì)值合并出一組通道保留mask。 返回的是一個(gè)與C2f內(nèi)部通道維度等長(zhǎng)的布爾mask。 gamma_list [] for m in module.modules(): if isinstance(m, nn.BatchNorm2d): gamma_list.append(m.weight.data.abs()) all_gamma torch.cat(gamma_list) # 也可以用與全局thr的比較來(lái)做但為了保險(xiǎn)推薦按模塊內(nèi)γ中位數(shù) mask all_gamma global_threshold # 需要把所有對(duì)齊約束體現(xiàn)在返回的mask上 return mask更嚴(yán)格的做法是對(duì)一個(gè)具體的C2f把cv1輸出通道對(duì)應(yīng)的γ前c和后c兩部分、每個(gè)Bottleneck里cv1和cv2的γ全部收集起來(lái)Reshape成對(duì)齊形狀逐位置取最大值。如果同一個(gè)位置在任何一個(gè)BN里的γ高于閾值就保留這個(gè)位置。這樣可以保證concat和shortcut兩條約束同時(shí)滿足。這段邏輯寫(xiě)起來(lái)確實(shí)繁瑣但它是yolov8s剪枝質(zhì)量的關(guān)鍵。如果你偷懶跳過(guò)只按γ排序裁通道裁出來(lái)的模型根本沒(méi)法前向推理或者loss直接爆掉。4.4 SPPF和檢測(cè)頭的處理策略SPPF模塊在剪枝時(shí)也是個(gè)特殊位置。它內(nèi)部結(jié)構(gòu)是cv1 - 三個(gè)5×5 MaxPool - concat - cv2池化層不改變通道數(shù)concat把4份特征拼在一起。由于SPPF本身沒(méi)有BN層不能直接用γ來(lái)判斷通道重要性。我采取的辦法是用它前后相鄰的BN層mask來(lái)約束配合Backbone主干和Neck的關(guān)聯(lián)mask同時(shí)裁剪cv1的輸出通道和cv2的輸入通道。檢測(cè)頭的處理需要克制。YOLOv8s的檢測(cè)頭是Decoupled結(jié)構(gòu)包含cls分支和box分支box分支還帶DFL輸出維度與reg_max和類(lèi)別數(shù)綁定。cls和box的最終輸出通道都不能隨便剪否則損失函數(shù)和部署后處理都會(huì)出問(wèn)題。但檢測(cè)頭內(nèi)部的1×1卷積輸入通道來(lái)自Neck這些輸入通道可以跟著Neck的mask一起裁剪。實(shí)際操作中我只對(duì)檢測(cè)頭做輸入通道的同步裁剪輸出通道一律不動(dòng)。5. 微調(diào)與精度恢復(fù)剪完不是結(jié)束重訓(xùn)才是開(kāi)始5.1 為什么剪完必須微調(diào)剪枝不是在模型文件上做減法那么簡(jiǎn)單。通道被剪掉之后模型權(quán)重從一個(gè)預(yù)訓(xùn)練分布中被硬生生截取了一部分剩余權(quán)重之間的協(xié)同關(guān)系已經(jīng)被破壞。更關(guān)鍵的是BN層的running_mean和running_var統(tǒng)計(jì)量也失效了——它們統(tǒng)計(jì)的是剪枝前通道的分布通道被刪掉后這些統(tǒng)計(jì)值完全沒(méi)有意義。如果不微調(diào)剪完的模型幾乎必然在驗(yàn)證集上崩盤(pán)。微調(diào)的本質(zhì)是讓剩余通道重新適應(yīng)新的模型結(jié)構(gòu)把損失掉的精度找回來(lái)。這一步不能省也急不得。5.2 微調(diào)階段的參數(shù)設(shè)置微調(diào)最忌諱的就是按正常訓(xùn)練的學(xué)習(xí)率來(lái)跑。我的一般做法參數(shù)建議值說(shuō)明初始學(xué)習(xí)率1e-4約為正常訓(xùn)練的1/10學(xué)習(xí)率調(diào)度余弦或階梯下降后期手動(dòng)降一次學(xué)習(xí)率訓(xùn)練的epoch30 ~ 50不需要長(zhǎng)訓(xùn)重點(diǎn)是恢復(fù)而非繼續(xù)提升稀疏化正則關(guān)閉微調(diào)階段不加γ正則BN層保持開(kāi)啟讓統(tǒng)計(jì)量自適應(yīng)新結(jié)構(gòu)微調(diào)階段不要凍結(jié)BN層。剪枝后BN的統(tǒng)計(jì)量本來(lái)就需要重新估計(jì)凍結(jié)它會(huì)讓模型在驗(yàn)證集上表現(xiàn)很差。另外微調(diào)數(shù)據(jù)集建議用訓(xùn)練集的全量數(shù)據(jù)不要只取子集否則采樣偏差會(huì)影響統(tǒng)計(jì)量重估。5.3 剪枝比例與精度之間的取舍參考以一個(gè)在自有數(shù)據(jù)集上mAP約90%的YOLOv8s模型為例參考我的實(shí)操經(jīng)驗(yàn)剪枝比例和精度變化大致如下剪枝比例剩余通道比例參數(shù)量估算mAP變化部署加速效果30%70%約5.5M幾乎無(wú)下降約20%~30%50%50%約4.2M下降0.5~1.5個(gè)百分點(diǎn)約40%~50%70%30%約2.6M下降2~4個(gè)百分點(diǎn)約60%~70%85%15%約1.8M大幅下降恢復(fù)困難約75%以上注意這個(gè)表是基于我自己的工程估算不是標(biāo)準(zhǔn)答案。不同數(shù)據(jù)集、不同檢測(cè)難度、不同稀疏化訓(xùn)練質(zhì)量都會(huì)讓數(shù)字偏移。但有一個(gè)規(guī)律是通用的剪枝比例超過(guò)50%之后精度衰減會(huì)加速變快微調(diào)挽回的空間越來(lái)越有限。部署目標(biāo)很緊的話建議把50%當(dāng)優(yōu)選檔先跑通再繼續(xù)往下壓。5.4 導(dǎo)出部署剪枝與量化疊加的效果剪枝是在結(jié)構(gòu)上減通道量化是把float32換成int8或float16這兩者是正交的可以疊加。實(shí)際上絕大多數(shù)邊緣設(shè)備上真正的大頭收益來(lái)自?xún)烧呓Y(jié)合剪枝之后通道數(shù)變少int8量化后的有效計(jì)算量大幅度縮小帶寬壓力也顯著降低。我常用的路徑是微調(diào)結(jié)束之后把剪枝模型導(dǎo)出為ONNX再用TensorRT或OpenVINO做推理優(yōu)化。由于剪枝后的模型已經(jīng)在結(jié)構(gòu)上變窄TensorRT在構(gòu)建engine時(shí)會(huì)自動(dòng)裁剪不必要的計(jì)算實(shí)測(cè)在CPU上使用OpenVINO能比原始模型快2到3倍在NVIDIA邊緣設(shè)備上配合int8量化再疊加一層加速。6. 踩坑實(shí)錄從稀疏化到部署的六個(gè)經(jīng)典問(wèn)題6.1 SPARSITY_LAMBDA設(shè)太大γ全部歸零我第一輪稀疏化訓(xùn)練就踩了這個(gè)坑。跑了20個(gè)epoch后發(fā)現(xiàn)γ分布幾乎全部塌到0模型輸出的loss還在往下降但驗(yàn)證集mAP已經(jīng)慘不忍睹。排查鏈路其實(shí)很短先打印γ的均值和標(biāo)準(zhǔn)差發(fā)現(xiàn)均值只有1e-5量級(jí)基本確定懲罰過(guò)強(qiáng)。解決方法是把SPARSITY_LAMBDA從5e-4降到1e-4重新從預(yù)訓(xùn)練權(quán)重起步訓(xùn)練。記住一個(gè)原則γ稀疏化是讓部分通道趨近0而不是把所有通道都打死分布圖應(yīng)該始終保留一個(gè)非零的峰。6.2 剪完模型loss變成NaN剪枝之后前向推理正常但微調(diào)時(shí)loss直接跳NaN。我排查的思路是先檢查模型輸出的shape是否正常再逐層檢查卷積權(quán)重里有沒(méi)有NaN值。最后發(fā)現(xiàn)原因出在剪枝后的某個(gè)C2f模塊它的concat輸入通道被剪成了0導(dǎo)致某個(gè)Bottleneck的輸出是空張量乘到loss上就變成NaN。解決方法是給每個(gè)mask加一個(gè)強(qiáng)制約束任何卷積層的輸出通道數(shù)不得低于預(yù)設(shè)下限比如至少保留16通道。這一步在生成mask的代碼里直接做兜底判斷即可。6.3 shortcut維度對(duì)不上報(bào)size mismatch這是C2f剪枝里最容易出現(xiàn)的問(wèn)題。報(bào)錯(cuò)信息會(huì)指向某個(gè)Bottleneck的加法操作說(shuō)兩個(gè)張量shape不一致。根因幾乎都是同一個(gè)沒(méi)有對(duì)shortcut兩側(cè)的mask做對(duì)齊。修復(fù)方式是我在4.3里描述過(guò)的方案生成mask時(shí)把同一個(gè)C2f模塊內(nèi)所有需要對(duì)齊的位置統(tǒng)一計(jì)算。排查的時(shí)候不要只看報(bào)錯(cuò)的那一層要從這個(gè)C2f的cv1開(kāi)始順藤摸瓜把整個(gè)模塊的channel流向畫(huà)出來(lái)再對(duì)照mask。6.4 剪完保存的模型文件反而變大了這是一個(gè)非常迷惑的現(xiàn)象。模型通道數(shù)減小了按理說(shuō)文件應(yīng)該變小但如果你用torch.save(model)直接保存整個(gè)模型對(duì)象會(huì)有很多冗余——包括模型結(jié)構(gòu)定義、優(yōu)化器狀態(tài)、各類(lèi)緩存字段。解決方法是剪枝后只保存模型的state_dict或者更好一點(diǎn)把剪枝后的結(jié)構(gòu)寫(xiě)成一個(gè)新的YAML配置文件再單獨(dú)保存對(duì)應(yīng)的state_dict。這樣剪枝后的模型文件才會(huì)真正反映通道數(shù)的減少導(dǎo)出ONNX后大小也才可信。6.5 PyTorch里測(cè)速?zèng)]有提升覺(jué)得白剪了剪枝之后用PyTorch的CPU直接推理發(fā)現(xiàn)速度幾乎沒(méi)變第一反應(yīng)往往是方案沒(méi)效果。但我排查后發(fā)現(xiàn)這是PyTorch在CPU上的卷積算子對(duì)小通道數(shù)沒(méi)有做充分優(yōu)化通道減少了但算子調(diào)度開(kāi)銷(xiāo)還在。真正的提速必須依靠部署側(cè)的優(yōu)化。把剪枝模型導(dǎo)出為ONNX再用OpenVINO或TensorRT跑一遍速度差異立刻出來(lái)了。所以測(cè)速一定要在目標(biāo)部署框架里測(cè)不要在PyTorch里過(guò)早下結(jié)論。6.6 state_dict鍵名錯(cuò)亂加載模型報(bào)錯(cuò)剪枝重建模型過(guò)程中最容易翻車(chē)的環(huán)節(jié)是拼接新的state_dict。因?yàn)榕f模型的鍵名是model.0.cv1.conv.weight這種形式你重建的新C2f層如果命名規(guī)則稍有不同加載時(shí)就會(huì)報(bào)unexpected key或者missing key。我的習(xí)慣是在剪枝腳本末尾加一個(gè)驗(yàn)證函數(shù)把新舊state_dict逐層做形狀比對(duì)發(fā)現(xiàn)不匹配立即打印出錯(cuò)層的鍵名。寧可多花幾分鐘跑校驗(yàn)也別在部署階段才發(fā)現(xiàn)權(quán)重對(duì)不上。最后再分享一個(gè)我在實(shí)操中一直在用的小原則剪枝前一定保存好原始權(quán)重和稀疏化權(quán)重兩份備份每剪完一個(gè)比例立刻做一次完整的前向驗(yàn)證和mAP評(píng)估。剪枝是一個(gè)遞增式的過(guò)程不要一次性壓到目標(biāo)比例先剪30%驗(yàn)證流程沒(méi)問(wèn)題再逐步往上加。這樣即便出問(wèn)題也能清楚地知道是哪個(gè)環(huán)節(jié)引入的回退和重來(lái)的成本都低得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99最新日韩偷拍视频| 青青11操操操操操操操操| 亚洲九九视频在线观看| 熟妇精品juliaannAV| 天堂种子在线www网资源| 精品三级在线专区| 欧美黑人熟妇精品91| 天天摸夜夜摸| 人妻少妇av在线观看| 色哟哟 日韩精品| 国产天天骚| 夜夜性| 1204金沙人妻懂旧版免费| 欧亚在线视频| 久久久亚洲欧美综合| 欧美美女视频| 久久97视频| 精品一区二区三区四区外站| aaa淫乱视频| 狠狠色综合网| 熟女人妻一区二区三区| 99操逼| 天天操人人操狠狠插| 啊啊啊啊啊啊好多水| 亚洲熟女乱综合一区二区三区| 丁香五月激情五月| 99热久| 乱伦Av网| 国产极品美女高潮无套在线观看| 懂色中文一区二区三区| 午夜亚洲WWW湿好大| 综合自拍| 久久激情视频| 日韩国产精品人妻无码久久久| 日日爽熟女| 人妻蜜桃臀| 91无码人妻| 亚洲熟久久| 久久超碰98| 日日夜夜模| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 欧美色图欧美| 91熟女视频| 99无码| 欧美一二三| 青草综合| 99热成人| 久久综合女优| 久久综合久色欧美综合狠狠 | 亚洲激情视频| 一级性爱视频免费在线| 国产婷婷综合在线观看| www.91理论| 综合久久六月久久婷婷| 蜜臀av在线播放一区二区三区| 久久综合婷婷| 97免费视频网| 本道在线| 淫荡网址| jk白丝没脱就开始啪啪| 國產尤物AV尤物在線觀看| 深夜激情无码| 后入人妻一区| 国产精品丝袜在线| 中文字幕国产| 六月色婷婷| 99色悠悠| 97色欧洲| 伊人黄色视频免费观看| 热热热热日日漂亮永久永久国产日| 91日产欧美| aV中文麻| 翔田千里无码中出中文字幕| 啊啊啊啊啊操我视频| 欧美日韩亚洲高清不卡一区二区三区| 亚洲激情深爱文学小说网站| 亚洲天堂男人| 免费一级欧美片片线观看| 欧美人妻精品| 97人人色| 伊人久久大香线蕉无码| 久久大香蕉手机高清视频| 亚洲欧美一区二区不卡视频播放| 欧美性爱一区二区三区| 欧美少妇性爱网站| 91 国产丝袜在线放观看| 亚州综合图片| 91av熟女人妻| 欧色综合| 搡老女人老91妇女老熟女| 国产92麻豆天美精品色欲5| 欧美一区91大爱| 97在线观视频免费观看| 欧美一级特黄淫片在线观看| www.久久爱| 老熟妇一区二区三区啪啪| 男人综合网| 岛国大片国产| 无码一区二区三区四区五区六区七区八区九区十区视频 | 日日夜夜干| 天天插夜夜爽| 富女玩鸭子一级毛片| 在线播放中文字幕| 91激情国产| 成人性爱av| 六六久久日韩不卡| 欧美se综合| 婷婷丁香五月天综合东京热| 久久精品视频28| 一区二区三区国产在线播放| 亚洲麻豆精品二区三区| 国产乱子伦一区二区三区在线观看| 久久男女激情视频网站| 免费在线视频97| 自拍偷拍2025在线观看| 女人综合网| 偷拍 精品另类 凸凹了四区| 国产成人精品网站| 狠狠色色| 久久内射| 嗯嗯嗯啊啊啊在线免费观看| 亚洲色图欧美色图另类图片| 高潮内射在线| 中日韩熟女| 亚拍在线| 这里都是精品在线观看| 国产在线激情| 大香蕉综合| 少妇一级无码精品| 美女干逼2| 青青伊人这里只有精品| 精品十八在线观看| 裸体美女免费看网站青草| 国产日韩久久| 精品97久久综合| 黄片无码在线制服| 黄片qw| 久久久久久久久久久97| 亚洲成人免费在线| 欧美亚洲情色| 日韩午夜国产| 色综合婷婷| 久草在线| 91成人久久| 亚洲最大无码中文字幕网站| 国产精品久久久久久久久久久久| 久久中文色图| 91无码中出人妻视频| dy888午夜老子影视达达兔 | 亚洲无码成人精品| 97久久综合网| 冬京热男人的天堂| 亚洲成人福利电影免费 | 少妇滛荡视频| 国产精品一区二区a| 欧美性爱一区| 国模精品一区二区三区苹果色戒 | 蜜臀亚洲中文| 成人午夜视频免费播放| 国产区日韩区在线观看| 亚欧美综合网| 欧美丝袜美女电影一二三四区| AV综合中文字幕干| 久久久久亚洲av综合波多野制衣| 久久中文字幕人妻熟av女蜜柚| 久久超碰久| 又大又长又粗又爽又黄| www国产精品| 一本久久精品中文字| 激情五月综合| 国产一区二区视频在线播放| 日韩欧美午夜一区二区| 特色a在线上| 亚欧洲一区二区视频| 区日韩亚洲乱码av电影| 激情五月天丁香社区| 国产午夜精品理论片一二三区区| yazhouzaixian| 920日本午夜免费| 国产一级内射无挡观看| 亚州性色| 激情小说在线视频| 欧美丝袜亚洲| 内射卯月麻衣| 日欧美色| 国产怡红院| 激情久久av一区av二区av| 日韩熟女无码| 女性喷水高潮在线观看| 亚洲一区日韩精品| 黄片免费视频2019| 久久在线观看免费视频| 中文字幕在线免费观看| 色综合一本| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 俺去久久| 97五月天| 91大学精品激情戏| 色99在线| 九九亚洲| 国产原创自拍| 99∨VTV| 在线看片国产精品每日更新| 全免费a敌肛交毛片免费| 欧亚无码视频| 国产精品一区二区a| 超碰91在线| 大粗鳼巴久久久久| 夜色91| 亚洲狠| 国产精品丝袜在线| 麻豆尤物视频网| 色香网| av影院十区| 熟女熟妇一区二区三四区| 人妻喷水| av中亚| 91狠狠综| www.大香| 91黑人无码激情在线| 国语精品内射在线观看| 亚洲最大AV网| 久久99精品视频| 久草婷婷| 亚洲伊人久久精品狠狠在线| 久久大陆| 九九九不卡| 后入国产| 操逼逼一区视频| 国产日韩在线播放av| 性在久久久久久| 国产一区二区啪啪视频| 久久久久13| 欧亚乱色熟一区二区三四区| 精品国产72| 精品一区二区久久| 久久久无码视频| 九九视频黄色片| 青娱乐亚洲自拍| 久热91| 嗯嗯啊啊操死我| 亚洲AV不卡在线观看尤物| 亚洲91大片| 9 1果冻精品视频| 久久大黄片| 强奸乱伦Av网| 天天看特黄的免费网站| 人人妻人人玩人人澡人人爽| 久操网线| 九九久久99| 综合色久欲| 久久精品国产亚洲AV清纯| 亚洲一级性爱视频免费看| 日本理论在线| 亚洲永久AV无码精品秋霞| 久操视频在线| 性暴力欧美猛交在线直播| 去干网最新版| 久久久久密臀一区二区| 好吊色综合| 精品人妻av在线播放| 中文字幕一区av| 欧美 亚洲 91| 免费AV中文网在线观看| 1769精品一区二区三区| 黑人中出21连凳花野真衣| 好爽要喷了| 88xx成人精品视频| 69精品在线| 中文字幕乱偷人妻久久艾草网| 欧美天天射| 伊人久操| 夜夜操一区二区| 精品九九九九九| 97最新在线播放视频| 91美乳| 日本大香蕉综合网红本杳社区| 中文字幕在线观看永久| 情色五月天网| 婷婷丁香九月| 欧美夜色| 日欧操屄| 亚洲精品骚逼| 一区二区三区免费视频入口 | 夜夜欧美| 99视频在线| 天天天做天天天爱天天天爽| 日本性爱欧美性爱| 精品亚州18| 999精品国产高清一区二区| 日本天天吊| 最新AV在线| 久久男女激情视频网站| 五十路三区在线| 六月色婷婷| 日本黄色精品| 亚洲成av人片色午夜乱码| 91精品免费| 国产无马视频| 精品人妻视频一区二区在线播放 | 97蜜桃综合| 2020久久免费视频| 麻豆一区在线| 无码最新| 91精品国产一区三一| 嗯啊不要啊在线| 亚洲图片小说欧洲| 精品四五区| 久久久久少妇| 精品一区二区三区四区外站| 精品久久久久久中文| 亚洲综合射| 影音先锋国产精品| 精…码一二三区| 九九久久一区二区三区| 岛国在线免费视频| 精品一区99999| 亚洲色五月| 欧美性色网| av婷婷色网| 免费一级黄色录像影片| 欧美碰碰综合色| 日本有码影片下载 | 国产欧美美女免费观看视频| 天天色天天干天天射| 国产91丝袜在线播放蜜月| www.av在线观看| 亚洲欧洲激情卡通另类文学四射小说网站| 精久久久91| 91GD.COM| wwwxxx日本爽| AV女优男人的天堂| 久久久久久久久久黄色网| 伊人激情五月天一区二区| 欧美日综合| 亚洲精品一二三四区| 日韩乱中文 | 校园春色制服丝袜中文字亚洲| 91久久青青草原精品| 一本一首道人妻少妇免费久久| 综合欧美日韩在线观看| 一级毛片电影免费看| 久久久国产精品亚洲精品| 色综合色综合网| 亚洲伊人久久综合97| 久久禁| 青娱乐 成人娱乐在线| 95自拍视频在线观看| 亚洲天堂资源在线| 九九九九免费视频| 久久99999| 热九九精品| 欧 美 自 拍 偷 拍| 欧美亚洲丝袜人妻制服中文99| 中文字日本乱码| 国产亚州日韩欧美看片| 探花熟女,姿勢到位,體驗感也到位| juliaann欧美丝袜办公室| 四虎国产成人精品免费一女五男| 怡红院怡春院| 好湿好紧好爽 视频| 在线国产探花| 亚洲天堂无码| 亚洲色图亚洲无码强奸乱伦| 久久久亚洲Av| 俄罗斯一区二区视频在线观看| 96精品久久| 欧美色图99| 九一综合网| 97超碰天天| 婷婷情色综合网| 久久婷婷精品| 色色五月丁香| 大香蕉久久| 99精品在线| 九九九九九九九精品视频| 乱伦一区二区三区‘| 国产精品久久久久久久久久久久久久久久 | 大鸡巴久久| 五月天婷婷社区| 校园春色综合色| 亚洲AV永久无码一区仙野| 水滴偷拍| 久久精品成人| 十八禁啪啪视频| 不卡av在线中文字幕| AV女资源| 在线观看午夜婷婷久久久久清性观看| 欧美一区二区三区大综合| 在线一道啪| 97chaopengongkai| 加勒比五月天| 1769精品一区二区三区| 色五月亚洲| 97人肏| 97资源制服丝袜| 白丝1区2区3区| 国产最火爆久久国产网站网站| 夜夜夜爽www精品视频| 99日精品欧美国产| 日韩成人免费电影| 国产剧情一区在线观看| 国产人伦精品一区二区三区| 素颜老阿姨乱情色| 香港久久久| 69精品| 欧亚无码视频| 国产东北女人在线视频| 色噜噜人妻丝袜a∨先锋影| 天天色播| 亚洲AV乱码专区国产噜噜亚洲| 精彩国产视频播放1区2区| 成人十八禁日韩欧美一二三| 日韩图色| 国产无码高清操逼视频| 99热这里是精品| 澳门人妻久久| 亚洲美腿丝袜香蕉影视欧美成人| 曰韩人妻中文字幕在线| 秋霞久久亚洲精品成人| 欧美视频在线第3页| www.男人天堂| 亚洲97在线| 又大又长又粗又爽又黄| 色五月激情网| 午夜毛片高清免费不卡| 久久久性爱| 亚洲AV秘无码一区..| 国产极品一区二区三区三州| 国产精品午夜成人福利| 欧亚 另类 久| 国产传媒操逼视频| 国产精品久久久视频| 国产精品乱码久久久久久| 亚洲男人天堂网站| 欧美性爱一级操| 夜夜高潮夜夜爽高清视频一| 亚洲精品 欧美97色色| 9久在线视频只有精品| 5278欧美一区二区三区| 嫩草伊人久久精品| 亚洲天天操| 久久国内| 亚洲图片 激情小说| 最近二区三区视频大全| 欧美一级做a爰片免费视频| 亚洲淫乱骚妇AV| 天天欧美| 天天干天天做| 玖色av| 玖玖资源综合在线视频| 丰满精品人妻少妇久久字幕| 超碰午夜| 亚洲,欧美,春色,另类| 丝袜高跟澳门91视频| 蜜乳成人AV| 91亚·色| 亚洲国产成人精品久久久国产成人一区二区 | 蜜桃久久久久久| 91中文字幕制服丝袜免费视频| 国产www色在线观看| 欧美激情 日韩精品| 久久大| 亚洲天堂,男人| 人妻熟女一区二区三区视频| 男女真人网18| 老司机午夜精品福利视频一区二区| 一个人免费视频观看在线WWW| 精品一区二区三区蜜桃臀赵总 | 亚洲自拍青操视频| 亚洲精美粉嫩嫩泬在线观看| 亚洲涩图欧美| 黄色一级视| 中文字幕精品三级久久久| 91在线视频观看国产| 超碰97最新人妻| 国产精品点击进入在线影院| 亚洲人久久久网| 日韩亚洲中文字幕在线| 综合情欲网| 日韩视频啪啪| 偷拍导航视频网站| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 美国一区二区免费视频| AV天黑人| 欧州色图区| 五月丁香黄色网| 伊人操操| 黄色高清无码无码破解免费暗网| 東南亚性呦成人伦理资源在线视频| 中文字幕av乱伦| juliaann欧美丝袜办公室| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 亚洲.欧美.丝袜.中文.综合| 天堂69亚洲精品中文字| 蜜桃久久久久久久久久久久| 色香色欲天天综合网天天来吧| 天天躁日日躁狠狠狠躁| 少妇一线天久久久久久| 黑人白女精品一区| 亚洲另类色综合网站| 超碰三级秋霞| 思思热er精品视频| 久久春色| 99蜜桃臀久久久欧美精品网站| 欧美三级中文字幕hd| 亚洲无码一区成人免费午夜| 干b在线性社区| 欧美色性爱| 久久黄人人爽视频| 男人的天堂在线| 亚洲综合五月天| 亚欧免费| 国产传媒一区二区三区| 日本新免费二区三区| 男人的天堂啪啪| 国产av波波国产精品| 成人一二三区| 91精品国产乱码| 黑操B| 国产精品无码av在线| 免费试看60秒| 日韩内| B049AV在线播放| 暖暖精品二区三区观看| 五月婷婷爱六月丁香色| 中国一级特黄大片护士| 婷婷色色五月天福利| 91日韩网站| 国产乱码精品久久久久久| 91ise欧美| 丁香五月天激情网站| 一级二级三级黑人无码| 日韩色香| 9999久久久| 九九九不卡| 欧美草草| 男人的天堂无码| 欧美后入视频| 操操操操操操| 日本丝袜美腿人妻九九| 超碰97欧美在线 | 91国模| 日韩青久久| 学生妹天天看| 国产乱码精品久久久久久| 中文字幕精品丝袜| 日韩偷拍色图| 青青国产精品在线| 色欧美天天| 色色色热| 国产精品一区人妻精品阁在线| 91九色在线| 性爱av网站| JULIA一区二区三区在线播放| 亚洲无码?第一页| 国产一在线观看| 日韩国产欧美伦理在线| 精品中文字幕一区二区| 欧美另类综合久久| 视频黄色国产一级| 亚洲色图欧美视频| 蜜桃无码AV一区二区| 国产剧情AV不卡在线观看| 91三级理论片播放器| 欧美性爱www免费版| 囯产操逼片| 中文字幕在线高清男人的天堂| 操比国产| 视频二区美腿丝袜制服人妻欧美| 99色悠悠| 男人的天堂色偷偷青青草视频婷婷网| 色 婷97| 欧美暴力猛交| www.久久超碰| 清纯唯美综合| 日本不卡二区| 国产精品黄色三级av| 99久久久er直播网址| 97啪啪| 亚洲欧美一区二区三区在钱蜜桃| 欧美有码亚洲中文字幕一区二区三区四区| 97人人爱人人做人人乐| 蜜桃狠狠色伊人亚洲综合 | 伊人激情五月天一区二区| 欧美日韩操逼嗦吊| 国产又黄又猛又粗又爽的网站| 欧美狠狠操| 五十路人妻在线| 久久久久久久97| 国产精品盗摄 偷窥盗摄| 中国乱伦一区二区| 蜜臀久久99精品久久综合| 磁力99AV| 亚洲无码日韩电影| 国产午夜在线观看视频| 99热只有| 精品一区二区三区四区外站| 97欧美在线| 国产一区二区三区视频在线看| 丁香九月激情啪| 肉丝网站91| 色97综合中文字幕| 影音先锋日本乱伦| 五月天激情小说| 超碰夫妻97| 中文字幕视频二区| 啪一啪免费视频| 伊人97超碰| 国产AV天美传媒一区二区三区 | 日本道人妻久久久在线不卡色视频| 亚洲国产成人综合碰碰三级经典| 日本一区二区不卡精品| 成人网欧美风情| 久9综合在线| 精品国产91av一区二区三区 | 精品少妇人妻一区二区三区| 中文AV制服乱伦| 超碰人人色| 亚洲中文字幕一区| 亚洲国产ⅴ高清在线观看| 97超碰色五月| 啊啊啊啊免费视频| 免费一级视频特黄色大片| 美国久久一二三四| 小说区 图片区色 综合区| 99爱在线视频| 超碰在线综合97| 性色av蜜臀av色欲aV| 嗯嗯嗯不要不要免费视频| 欧美亚洲首页| 色色婷婷丁香| 神马久久久久久久久| 强奸乱伦Av网| 久久精品国产精品| 日欧亚洲二三区大片不卡| 婷婷情色五月天| 国产无码精品无码| 国产久久久9999| 密臀视频三区免费网站| 亚洲精品男人的天堂| 欧美同性恋 的搜索结果 - 91n| 久久av一级av少妇av高潮| 91在线色| 三级AV入口| 日韩操呦呦影院在线观看| 欧美A片中文字幕| 人人操天天爽| 97人人夜夜精品视频| 女生自91网站| 国产精品婬乱一级毛片彝族| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 亚洲国产成人福利在线观看| 欧美成人色| 国产白嫩漂亮KTV在线| 嫩草 我啊~嗯~在线| 国产精品久久久久久片| 一本一道久久综合久久| 丁香五月电影| 亚洲啪啪综合?v一区综合精品区| 操九九九九九九| 性色AV蜜色av色欲av| 2025亚洲男人天堂| 无套内射人妻在线播放| 亚州五月| 野狼激情网| 亚洲精品成人动漫在线| 91久久久久久久| 日韩999| 亚洲日韩天堂| 在线观看视频91| 曰韩成人免费视频| 日本精品一区二区三区四区的功能| 五月久久HDAV| 99热99在线播放激情| 东北女人性交| 天天摸夜夜摸| 国产尹人在线视频免费| 91丨人妻丨国产丨丝袜| 国产久久一区二区| 97操碰| 久热影视| 人妻熟女一区二区三区视频| 午夜精品99久久久久传媒| 久久久久久久久久久免费精品| 操死我了啊啊啊| 成人 日韩欧美一区| 亚洲图片色图欧美另类| 蜜臀网址在线| 日日夜夜国产综合| 久热婷婷| 日韩在线性爱免费视频| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 热久久国产精品视频大陆精品| 操逼视频亚洲| 懂色aV一区二区天美传媒| 综合久久99亚洲人妻中文在线| 丁香久久| 久久久亚洲高清不打码| 久久αⅴ| 日韩干B| 五十路熟女工口| 色婷视频| 中文字幕狠狠玩| 精品免费视频国产一区| 97国产精品在线观看| 97精品视频免费| 中文字幕在线免费观看视频| 亚洲91在线播放影院| 69精品| 啊啊啊男女| 亚洲精品蜜桃久久久久久久| 天天看综合网| 久久婷婷色| 色情乱伦AV| 一本色道久久天天射天天干| 97超碰欧美| 后入综合久久| 91亚洲丝袜熟女| 欧美亚洲厕所精品偷拍91| AND人妻系列| 国产精品青青草| 99激情视频| 激情九月婷婷| 日韩黄色一区二区三区| 密乳AV免费观看| 翔田千里无码一区| 免费AV中文网在线观看| 无码78| 东北女人高潮视频| 四虎精品亚洲| 人妻色情天天操| 亚洲精品久久一区二区三区蜜桃臀| 嫩草伊人久久精品| 亚洲综合影片| 天天碰操中国年青熟妇| 91扒丝袜综合在线| 欧美三级免费伊人| 亚洲不卡av在线| 男人下部插入女人下部| 欧美日韩理论一区| 日欧美色| 啊啊啊不要好爽日韩无码一区| 99 国产丝袜在线| 久久久久久波多野吉衣高潮| 神马久久网| 精品一区二区麻豆| 亚洲国产青青| 国产精品69久久久久久久| 亚洲情色综合网| 伊人性在线视频| 美女91在线| 91综合色| 黄人人操人人操| 欧美性爱中文字幕无线码| 久久无码电影| 91色久| 嗯嗯嗯嗯啊啊啊好紧好大| 打av高清| 大乔未久88一区| 久啪视频| 97色97干| 大香蕉视频一二三区| 日本欧美一区二区三区免费| 91黑人无码激情在线| 天天天天干| 国产白嫩精品久久| 青青草久久| 91亚洲影视| 精品人成视频在线观看| 啪啪AV导航| 影音先锋国产精品| 成人熟女视频一区二区三区| 美女干逼2| 老鸭窝成人免费毛片视频| 成人a v在线播放免费| 国模不卡| 亚洲有码 视频一区| 精品无码人妻一区二区免费蜜桃| 九九九九一区| 天天影视色香欲综合网小说| 最近2019中文字幕国语免费版| 亚洲另类在线观看| 大香蕉啪啪啪啪在线| 久久风骚城市人| 日本成人免费一区二区三区| 亚洲无码一区二区三区三州| 女人妻一区| 超碰 欧美| 欧美自拍偷拍综合图片| 欧美成人性爱视频大全| 亚洲精品骚逼| 91视频综合| 色欲日韩欧美在线一区| 久久久9视频| 老熟女天天操| 国产熟女免费观看久久| 91九久| 婷婷精品久久av影视| 欧美成熟性爱精品| 在线播放中文字幕| 手机av亚洲丝袜美腿日韩第一页二页| 777超碰| 思思热免费视频观看| 中文字幕制服欧美久久一区| 五月天久久人妻| 操逼视频亚洲| 亚洲 欧美 小说| 国产91精品在线免费| 免费一级欧美片片线观看| 97色色,97综合| 免费A片三p视频| 一区二区 韩日AV| 死我十八禁| av无码av无码专区| 蜜臀人妻少妇久久在线观看| 超碰九7免费| 久9热| 97久久国产亚洲精品超碰热| 999精品国产高清一区二区| 亚洲欧美校园另类春色| 97日韩超碰超碰中文字幕| 国产亚洲色婷婷久久99精品91葵花宝典| 国产婷婷一区| 日韩性爱长视频免费| 超91综合网| 欧美78P| 日韩av乱伦| 4tube欧美女厕所| 国产精品视频白浆免费| 色欲色香天天天综合网www-亚洲综合国| 国产精品久久| 中文字幕视频在线观看一区二区| 好涩综合| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 午夜精品久久久久久久男人的天堂| 亚洲亚洲亚洲天堂天堂| 无码乱人伦中文视频| 色天堂在线观看| 加勒比久久综合网高清| 91艹| 亚洲精品亚洲人成人网| 国产精品另类| 亚洲国产精品久久久久久久久久| 狠狠爱大香蕉| www老逼91| 翔田千里无码一区| 中 文字幕一区二区三四 五 区日 日 骚 | 亚洲第一无码播放立川理惠| 亚洲麻豆18发?| 五月婷婷爱六月丁香色| 五月天伊人网| 欧美综合97www| 视频一区二区三区精品| 久久蜜色情在线视频xxx免费观看| 成人免费看吃奶视频网站| 日韩精品三级片长长久久| 天天做日日做天天欢。| 中文字幕黄色一起草| 淫淫总合网| 人人看人人插| 天操天操夜操夜月月年年操操| 9999免费精彩视频| 亚洲少妇在线观看| 99国产精品免费| 岛国黄色大片网站| 国产精品扒开腿做爽爽爽视频| 色噜噜国产在线| 久久美女国产| 色香天天| 色 亚洲 91| 亚洲成av人片色午夜乱码| 欧美日韩资源| 好舒服视频| 五月天久久久| 国产精品ⅴ无码大片在线看.| 97视频900| 先锋精品av色鲁| 成人a级高清视频在线观看| 91美女视频。| 熟妇艹鸡八| 久久久久国产无av| 国产亚洲性生活视频播放| 人澡逼| 97操97色| 青青草天天亲夜夜操网| 亚洲**2021在线观看| 久久久性少妇| 影音综合网| 激情av| AV和黑人在线播放| 天天干嫩逼网| 2019亚洲男人天堂| 91视频观看网站| 亚洲欧美精品福利在线| 国产黄色视频久久| 新怡红院| 69久久久久久久久久久久久| 男人亚洲91首页在线| 亚洲成人一区二区精品| 日本精品五区| 欧洲综合色| 免费久久一级毛片大黄| 成人天天看站长推荐| 欧美日韩国产中文精品字幕自在自线,| 九色 蝌蚪 熟女自 | 限制级中的三级片中的黑粗大屌屌日人妻熟女 | 亚洲色图尤物视频| 野狼福利社区| 看看日B真人视频| 插老姨肥穴| 亚洲色图在线视频| 97爱爱爱| 欧美天天干| 中国黄色特级精品一区二区三区片| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 亚州欧美在线| 免费视频97| 日韩精品一区,二区 九九...老司机| 日韩偷拍色图| 五月天综合网| 亚洲国产高清福利视频| 26uuu成人影片| 91春色| 日韩欧美三级| 色97综合中文字幕| 91 国产丝袜在线播放-百度| 五月天色电影| 欧美日韩理论一区| 91在线美女| 亚洲色图大香| 欧美日韩国产在线| 激情综合五月婷婷| 国产无马av| 国产伦精品一区二区三区在线观| 无码乱人伦中文视频| 亚洲精品国产专区在线观看| 亚洲国产av中文字幕久久| 欧美精品久久久久久久丰满| 精品无码欧美三级| 日韩操啪| 国产极品美女高潮无套在线观看| 欧美日韩国产中文精品字幕自在自线,| 黄片www.| 综合色播| 亚洲综合色男人网| 玖玖人人爱| 狠狠搞 亚洲91| 男人的天堂午夜av| 中文字幕人妻资源在线| 97人人夜| 亚洲国产天堂| 蜜臀99久久国产| 特污精品女优骚货黄色视频在线免费观看| 熟女91网| 日日躁天天躁狠狠躁| 男人综合网| 啊啊啊在线观看| av一区二区三区不卡| 国产精品视频麻豆入口| 操逼操网| 99久久九九| 东京太热久久久| 操一区| 97视频免费在线| 欧洲综合色| 无码不卡八戒| 五月天黄色激情视频| 狠狠操综合| 少妇蜜汁| 91麻豆一二三区| 久久亚洲一区女同性恋中文字幕 | 国产精品96| 7777奇米影视久久| 3p国产欧美99热| 91ise欧美| 在线免费试看60秒| 超碰色图| 国产欧美成人第一页在线观看| 欧美性爱另类综合| 久久熟女人| 精品久久艹| 国产午夜精品在线观看| 人人干人人操人人..com| oumeisetu综合| 欧美少妇高潮久久91| 97视频播放| 人人操肉肉| 色色热| 好屌色综合| 青草综合| 夜间福利片1000无码| 久久欧美按摩999| 久草老司机| 国产亚洲日韩欧| 日本综合色图| 亚洲污污网站| 欧亚无码视频| 久久九九综合| 五月开心久久AV官网| 亚洲欧洲自拍| 久久精品国产96精品亚洲拳交| 德国一二三不卡| 一区二区无码视频| 26UUU欧美激情一区二区| 精品一区二区啪啪啪| 精品一二三区女同| 中文字幕第9页萱萱影音先锋| 欧美日韩岛国大片在线观看| 韩国三级三级BD在线| 亚洲高清欧美总合| av天堂手机版追回| 日本999精品| 欧州一区二区三区四区| 在线只有精品| 亚洲天天精品| 免费伦费视频在线观看| 青青草国产亚洲精品久久| 99国产女人| 色区久久| 蜜臀在线网站| 欧美顶级黄色大片免费| 美日韩在线不卡人妻| 成人午夜高潮av猛片| 麻豆亚洲Av成人无码一区精品| 大香蕉性欧美| 久久久 国产精品| 九九九精品色乱九九九| 精品人妻1区| 青青草啪啪网| ji熟女.com| 99xav| 欧美18 在线观看| 亚洲天堂另类小说男人| 亚洲色图欧美一区二区不卡| 超碰79人人乐| 久久久蜜桃臀无码视频| 亚洲一区二区麻豆影院| 日韩大香蕉AV影片| 五月天婷婷小说| 国产sv美女内射| 五月激情小说| 综合久久9| 综精品久久久aaaa| 日韩AV无码网站| 自拍视频大全亚洲专媒视频/一区二区三区| 狠狠操使劲操| 美女淫穴| 国产精品无码久久久久2025| baiduhicn.com。| 国产精品999zyz| 果冻传媒一区二区三区| 天天躁日日躁AAA片李宗瑞| 久久禁| 26uuu国产| 黄片免费日韩| 北京美女一区二区| 国产亚洲精品av一区| 玖色av| 青青操青娱乐| 被窝影院午夜看片无码| 亚洲AV无码久久精品蜜桃小说| 色婷婷视频| 综合网少妇| 久久久精品国产亚洲伊人| 成人午夜高潮av猛片| 大乔未久88一区| 啊视频在线| 日本成人在线不卡一区二区三区 | 久久久久久久九九九九九九| 日日日骚女人精品| 国产福利第一视频| 欧美少妇人妻| 伊人玖玖网| 亚洲天堂99| 国产精品不卡高清在线观看| 久啪| 成人欧美一区二区三区黑人一| 视频国产成人精品日本亚洲18| 98精品国产乱码久久久久久| 三级片网站在线播放| 超碰91在线| 97欧美色综合| 天天日老熟妇| 一区二区三区免费岛国片| 91成人无码| 中文字幕文字幕无码一区二区三区电影99| 亚洲无线码一区国产欧美国| 97超碰色色| av草草在线电影| 江都AV在线| 亚洲欧洲国产综合av| TS人妖另类精品视频系列| 91国产丝袜美女| 欧洲免费一区二| 欧美性生活综合| 欧洲欧美视频一区二区| 男同专区一区二区三区在线| 伊人991| 中文字幕日产av人| 最新日韩黄片| 天天谢天天干| 四虎免费在线观看| 蜜桃臀久久| 久久精品国产99国产精品亚洲| 婷婷综合网| 在线看片国产精品每日更新| 国产精品com| 亚洲日精品| 综合97亚洲| 久久这里精品国产99丫e6| 狠狠操狠狠爱| 欧美性巨大╳╳╳╳╳高跟鞋| 91精品人| 欧美96精品在线| 中文字幕精品亚洲熟女| 久久仑合| 国产日韩精品一区二区三区| 丁香九月激情啪| 亚洲精品影视老司机| 亚洲一区中文精品| 91骚熟女| 久久精品无码一区二区三区| 茄子社区国产精品| 亚洲日韩熟女人妻高清在线| 国产a级精品| 四虎影视在线| 久久久久久亚洲精品不卡人乳| 亚洲AV无码成人精品久久| www.久久最新地址| 天天操人人操狠狠插| 亚洲欧美日韩制服另类| 91精片| 久久精品久| 亚洲黑人在线| 人人操人人色网| 精品人妻一区二区三区在线视频不卡| 久肏视频字幕| 熟女久久| 亚洲图片 欧美电影| 国内精品久9| 密臀国产在线| 欧美激情 亚洲色图| 亚洲自拍小说| 97ai亚洲| 94色色电影网| 东京热天堂网| 国产女大学生AV| 日韩操啪| 少妇一区二区三区高速| 人人操人人摸人人看人人插| 久久久久99精品成人片蜜臀| 国产成人欧美一区二区三区的国产| 人人操 欧美| 日本高清免费一本视频在线观看| 91丨国产丨白浆秘 洗澡动漫| 九九综合九九综合| 影音先锋日本一区二区| 免费人成在线观看网站品爱网| 国产特级毛片AAAAAA高潮流水|