日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

RKD關(guān)系知識(shí)蒸餾:CoaTNet蒸餾ResNet的原理與工程實(shí)踐

RKD關(guān)系知識(shí)蒸餾:CoaTNet蒸餾ResNet的原理與工程實(shí)踐 簡(jiǎn)介面向深度學(xué)習(xí)模型壓縮與知識(shí)蒸餾方向的開(kāi)發(fā)者該壓縮包提供RKDRelational Knowledge Distillation實(shí)戰(zhàn)代碼示范以CoatNet為教師模型蒸餾ResNet學(xué)生模型。與常規(guī)特征蒸餾不同RKD對(duì)展平層特征進(jìn)行關(guān)系建模蒸餾損失由距離損失Distance-wise Loss和角度損失Angle-wise Loss兩部分構(gòu)成有助于學(xué)習(xí)者掌握基于樣本間關(guān)系的蒸餾范式。壓縮包共包含2000個(gè)文件以訓(xùn)練過(guò)程可視化png圖片為主輔以7個(gè)Python腳本和1個(gè)pyc編譯文件整體大小約930MB其中py腳本為核心實(shí)現(xiàn)代碼png圖片可直觀對(duì)照蒸餾過(guò)程中特征分布、損失變化等細(xì)節(jié)。目前已有621人學(xué)習(xí)下載適合希望從代碼層面復(fù)現(xiàn)RKD并遷移到自身任務(wù)的中高級(jí)研究者。通過(guò)閱讀代碼與可視化結(jié)果可清晰理解雙損失的計(jì)算流程、展平層特征對(duì)齊方式以及CoatNet與ResNet間的蒸餾配置同時(shí)可作為項(xiàng)目目錄結(jié)構(gòu)參考便于后續(xù)擴(kuò)展或調(diào)整蒸餾策略。1. 用 CoaTNet 蒸餾 ResNetRKD 到底在解決什么問(wèn)題先說(shuō)一個(gè)反直覺(jué)的結(jié)論知識(shí)蒸餾里Teacher 越強(qiáng)Student 不一定學(xué)得越好。很多人第一次跑 RKDRelational Knowledge Distillation關(guān)系知識(shí)蒸餾時(shí)都會(huì)翻車——直接把 ResNet 拿來(lái)當(dāng) Student配一個(gè)參數(shù)量大幾倍的 CoaTNet 當(dāng) TeacherLoss 卻不降、精度紋絲不動(dòng)。原因很簡(jiǎn)單傳統(tǒng) KD 只對(duì)齊單樣本的 softmax 輸出這叫 individual knowledge信息量太薄而 CoaTNet 這類帶有自注意力和粗粒度/細(xì)粒度特征建模的模型它內(nèi)部最有價(jià)值的恰恰是樣本與樣本之間的關(guān)系結(jié)構(gòu)。RKD 做的就是把這種關(guān)系結(jié)構(gòu)遷移過(guò)去而不是讓 ResNet 去模仿 CoaTNet 的輸出分布。這篇方案適合誰(shuí)適合已經(jīng)在用 ResNet 做分類、檢測(cè)或檢索想在不換模型結(jié)構(gòu)的前提下再壓榨幾個(gè)點(diǎn)精度的工程師也適合剛接觸知識(shí)蒸餾、想找一條能直接落地跑通的代碼路徑的人。我會(huì)把 RKD 的損失函數(shù)怎么實(shí)現(xiàn)、CoaTNet 怎么加載、ResNet 怎么微調(diào)、三個(gè)坑在哪全部拆開(kāi)講透保證你照著能復(fù)現(xiàn)而不是只看到一個(gè)項(xiàng)目名。2. 為什么是 RKD CoaTNet關(guān)系蒸餾的原理與 Teacher 選型2.1 RKD 的核心思想蒸餾「樣本對(duì)的關(guān)系」不是蒸餾「單樣本的答案」傳統(tǒng) KD 的 Loss 是讓學(xué)生模型的 softmax 輸出去逼近老師的 softmax 輸出用的是 KL 散度。這個(gè)做法的問(wèn)題在于它只對(duì)每個(gè)樣本獨(dú)立生效模型學(xué)到的是一張「答案表」而不是數(shù)據(jù)分布的結(jié)構(gòu)。RKD 換了一個(gè)視角——它把每個(gè)樣本映射到一個(gè)特征空間然后計(jì)算樣本與樣本之間的距離關(guān)系和角度關(guān)系讓 Student 在這兩種關(guān)系上去對(duì)齊 Teacher。換句話說(shuō)Student 不需要知道 Teacher 把某張圖分類成什么它需要知道 Teacher 眼里「這張圖和那張圖有多像、方向上是靠近還是偏離」。RKD 的 Loss 由兩部分組成距離關(guān)系損失Distance-wise Loss和角度關(guān)系損失Angle-wise Loss。距離關(guān)系損失定義為 Teacher 特征空間中樣本對(duì)歐氏距離的分布與 Student 特征空間中對(duì)應(yīng)距離分布的 KL 散度角度關(guān)系損失則是對(duì)三元組錨點(diǎn)、正樣本、負(fù)樣本構(gòu)成的角度做對(duì)齊。直接這么講有點(diǎn)抽象落到公式層面距離損失用的是 log 域的距離比$$ \psi_D(t_i, t_j) \frac{1}{1 \exp(|t_i - t_j|)} $$Student 側(cè)的對(duì)應(yīng)關(guān)系是 $\psi_D(s_i, s_j)$然后用 KL 散度讓這兩個(gè)分布逼近。角度損失類似取三元組的余弦相似度作為關(guān)系度量。這個(gè)設(shè)計(jì)有一個(gè)實(shí)際好處Student 和 Teacher 的最后一層特征維度不需要一致因?yàn)殛P(guān)系度量是在樣本對(duì)的幾何結(jié)構(gòu)上算的不是直接做張量對(duì)齊。這正好匹配 CoaTNet 和 ResNet 這種結(jié)構(gòu)差異很大的組合。2.2 為什么選 CoaTNet 當(dāng) Teacher位置編碼、粗粒度與細(xì)粒度特征的價(jià)值CoaTNet 是 Transformer 和卷積結(jié)合的混合結(jié)構(gòu)它有兩個(gè)特點(diǎn)對(duì)知識(shí)蒸餾特別有價(jià)值。第一是位置編碼CoaTNet 在自注意力中顯式建模了位置信息這讓它學(xué)到的特征天然帶有空間結(jié)構(gòu)而 ResNet 的卷積核雖然也有局部感受野但對(duì)長(zhǎng)距離依賴的建模是隱式的、薄弱的。通過(guò) RKD 把這種空間關(guān)系蒸餾給 ResNet等于給 ResNet 補(bǔ)上了它結(jié)構(gòu)上缺的那塊能力。第二是粗粒度到細(xì)粒度的層級(jí)特征CoaTNet 通過(guò)多個(gè) stage 逐步從細(xì)粒度高分辨率小感受野過(guò)渡到粗粒度低分辨率大感受野并在每一層都做自注意力。這意味著它的特征空間里樣本間的關(guān)系在不同尺度下都有表達(dá)。RKD 如果只取最后一層特征做關(guān)系對(duì)齊會(huì)丟掉中間的粗粒度信息這是一個(gè)常見(jiàn)誤用——后面避坑章節(jié)會(huì)專門(mén)講。常見(jiàn)做法是在中間層也加上關(guān)系蒸餾的輔助 Loss比如取 CoaTNet 的 stage3 輸出和 ResNet 的 layer3 輸出做一組 RKD這樣 ResNet 才能在多個(gè)尺度上學(xué)到關(guān)系結(jié)構(gòu)。2.3 Teacher 選型的邊界不是所有強(qiáng)模型都適合做 RKD 的 Teacher這里要潑一盆冷水。RKD 對(duì) Teacher 有一個(gè)隱藏要求Teacher 的特征空間必須是穩(wěn)定的、有區(qū)分度的。如果你拿一個(gè)還沒(méi)訓(xùn)練收斂的 CoaTNet 當(dāng) Teacher它的樣本間距離關(guān)系是亂的Student 學(xué)到的也是亂的關(guān)系。所以實(shí)際操作中一定要先確認(rèn) CoaTNet 的權(quán)重是充分訓(xùn)練過(guò)的預(yù)訓(xùn)練權(quán)重而不是隨機(jī)初始化或只訓(xùn)練了幾個(gè) epoch 的半成品。另外Teacher 的輸入預(yù)處理必須和 Student 一致否則關(guān)系度量會(huì)失真。比如 CoaTNet 官方預(yù)訓(xùn)練權(quán)重通常要求 224x224 輸入歸一化參數(shù)是 ImageNet 的 mean/stdResNet 也一樣這一步看起來(lái)瑣碎但如果不統(tǒng)一前面所有 Loss 計(jì)算都是白費(fèi)。我在實(shí)際項(xiàng)目中通常先用 ImageNet 的預(yù)訓(xùn)練權(quán)重各跑一次驗(yàn)證集確認(rèn)兩個(gè)模型的 baseline 精度都正常再開(kāi)始蒸餾。2.4 最小可跑通的 RKD 損失實(shí)現(xiàn)前面講了一堆原理落到代碼上其實(shí)并不復(fù)雜。這里給出一個(gè) PyTorch 實(shí)現(xiàn)的 RKD 損失函數(shù)包含距離損失和角度損失兩部分這是整個(gè)蒸餾方案的核心。先貼代碼后面的邏輯說(shuō)明和參數(shù)說(shuō)明比代碼更重要請(qǐng)仔細(xì)看。import torch import torch.nn as nn import torch.nn.functional as F class RKDLoss(nn.Module): RKD: Relational Knowledge Distillation 基于樣本對(duì)的距離關(guān)系和角度關(guān)系進(jìn)行蒸餾 def __init__(self, w_dist25.0, w_angle50.0, temperature1.0): super(RKDLoss, self).__init__() self.w_dist w_dist self.w_angle w_angle self.temperature temperature def _distance_wise(self, feat): 計(jì)算樣本對(duì)之間的歸一化距離分布 輸入: feat [batch_size, feature_dim] 輸出: [batch_size, batch_size] 的距離關(guān)系矩陣 # 計(jì)算成對(duì)歐氏距離 # 這里用 (a-b)^2 a^2 b^2 - 2ab 展開(kāi)避免顯式構(gòu)造 [B, B, D] 的大張量 feat_squared (feat ** 2).sum(dim1, keepdimTrue) # feat_squared: [B, 1]; 轉(zhuǎn)置后相加得到 [B, B] dist_sq feat_squared feat_squared.t() - 2.0 * torch.mm(feat, feat.t()) # 數(shù)值穩(wěn)定性保護(hù)對(duì)角線可能出現(xiàn)微小負(fù)數(shù) dist_sq torch.clamp(dist_sq, min0.0) dist torch.sqrt(dist_sq 1e-8) # 歸一化成概率分布用 log 域防止上溢 # temperature 控制分布的銳利程度越大分布越平緩 log_dist -dist / self.temperature log_dist log_dist - torch.logsumexp(log_dist, dim1, keepdimTrue) return log_dist def _angle_wise(self, feat): 計(jì)算三元組角度關(guān)系 feat: [batch_size, feature_dim] 返回: 以每個(gè)樣本為錨點(diǎn)的角度關(guān)系矩陣 # 歸一化特征向量使得余弦相似度可以直接用點(diǎn)積計(jì)算 feat_norm F.normalize(feat, p2, dim1) # 余弦相似度矩陣 [B, B] cos_sim torch.mm(feat_norm, feat_norm.t()) # 角度在 [0, pi] 范圍內(nèi)用反余弦得到角度值 angle torch.acos(torch.clamp(cos_sim, min-1.0, max1.0)) # 歸一化成概率分布 log_angle torch.log(angle 1e-8) # 加小常數(shù)防止 log(0) log_angle log_angle - torch.logsumexp(log_angle, dim1, keepdimTrue) return log_angle def forward(self, feat_student, feat_teacher): feat_student: Student 模型輸出的特征 [B, D_s] feat_teacher: Teacher 模型輸出的特征 [B, D_t] 注意: D_s 和 D_t 不需要一致這是 RKD 的重要特性 # 距離關(guān)系 Loss dist_s self._distance_wise(feat_student) dist_t self._distance_wise(feat_teacher) # KL 散度讓 Student 的距離分布逼近 Teacher 的 # 這里用 teacher 作為 targetstudent 作為 prediction loss_dist F.kl_div(dist_s, dist_t, reductionbatchmean) # 角度關(guān)系 Loss angle_s self._angle_wise(feat_student) angle_t self._angle_wise(feat_teacher) loss_angle F.kl_div(angle_s, angle_t, reductionbatchmean) total_loss self.w_dist * loss_dist self.w_angle * loss_angle return total_loss這段代碼里有幾個(gè)參數(shù)需要重點(diǎn)理解。temperature默認(rèn)設(shè)為 1.0它控制距離分布的銳利程度。調(diào)大溫度會(huì)讓分布更平緩Student 學(xué)到的關(guān)系更「模糊」適合特征空間本身噪聲比較大的情況調(diào)小會(huì)讓分布更尖銳對(duì)齊要求更嚴(yán)格但容易過(guò)擬合到 Teacher 的細(xì)節(jié)噪聲上。w_dist和w_angle是兩個(gè)損失的權(quán)重RKD 原論文的默認(rèn)配置是 25 和 50但這個(gè)值跟數(shù)據(jù)集和模型結(jié)構(gòu)強(qiáng)相關(guān)后面避坑章節(jié)會(huì)給出調(diào)權(quán)重的方法論。代碼里有個(gè)細(xì)節(jié)值得注意距離計(jì)算用feat_squared feat_squared.t() - 2.0 * mm(feat, feat.t())展開(kāi)而不是直接構(gòu)造[B, B, D]的三維張量因?yàn)?batch size 為 64 時(shí)三維張量會(huì)占用 64642048 個(gè)浮點(diǎn)數(shù)約 67MB 顯存展開(kāi)式只需要[B, B]的矩陣省了一個(gè)數(shù)量級(jí)。這就是那種「看起來(lái)一樣、跑起來(lái)差很多」的優(yōu)化點(diǎn)。3. 數(shù)據(jù)準(zhǔn)備與模型初始化跑通蒸餾的前提條件3.1 數(shù)據(jù)集加載shuffle 和 sampler 是關(guān)系蒸餾的命門(mén)傳統(tǒng) KD 對(duì)樣本順序不敏感因?yàn)槊總€(gè)樣本獨(dú)立計(jì)算 Loss。但 RKD 是在一個(gè) batch 內(nèi)計(jì)算樣本間關(guān)系的同一個(gè) batch 里樣本的構(gòu)成方式會(huì)直接影響 Loss 的含義和訓(xùn)練穩(wěn)定性。這里有一個(gè)關(guān)鍵決策如果用的是隨機(jī)采樣一個(gè) batch 里的樣本可能是 64 個(gè)完全不同的類別也可能是高度相似的子類這會(huì)引入很大的方差。我一般建議用Class-balanced Sampler或至少保證每個(gè) batch 里有一定數(shù)量的同類樣本。原因是 RKD 的角度關(guān)系在三元組同類正對(duì) 異類負(fù)對(duì)上信息量最大。如果 batch 里全是不同類別角度關(guān)系基本全是「不相似」Student 能學(xué)到的結(jié)構(gòu)信息就很單調(diào)如果 batch 里全是同一類角度關(guān)系又會(huì)退化成噪聲。一個(gè)實(shí)用的配置是 batch size 設(shè)為 64 或 128每個(gè)類別在每個(gè) batch 出現(xiàn) 2 到 4 個(gè)樣本這樣同類和異類的關(guān)系都能被建模到。PyTorch 里用torch.utils.data.WeightedRandomSampler就能做到配合drop_lastTrue具體做法是先統(tǒng)計(jì)每個(gè)類別的樣本數(shù)然后按類別逆頻率采樣這樣每個(gè) batch 的類別分布是均勻的。另外一個(gè)容易踩的坑是DataLoader 的shuffle參數(shù)和 Sampler 不能同時(shí)設(shè)置否則 PyTorch 會(huì)直接報(bào)錯(cuò)。如果你用了 WeightedRandomSamplershuffle必須設(shè)為False因?yàn)?Sampler 內(nèi)部已經(jīng)實(shí)現(xiàn)了打亂邏輯。這個(gè)錯(cuò)誤不是編譯期報(bào)錯(cuò)是運(yùn)行時(shí)崩而且崩得毫無(wú)預(yù)兆很多人在第一次跑 RKD 時(shí)都會(huì)被這個(gè)卡一下。3.2 CoaTNet 加載預(yù)訓(xùn)練權(quán)重、特征層提取與凍結(jié)策略CoaTNet 的官方實(shí)現(xiàn)是基于 timm 庫(kù)的加載方式很直接。這里有一個(gè)細(xì)節(jié)CoaTNet 的forward_features返回的是一個(gè)特征列表每個(gè)元素對(duì)應(yīng)一個(gè) stage 的輸出。在 RKD 里你需要決定取哪一層作為特征計(jì)算 RKD Loss。第一版方案建議只取最后一層跑通之后再加中間層這是最穩(wěn)妥的路徑。import timm import torch.nn as nn def load_teacher(): 加載 CoaTNet 作為 Teacher 模型 返回: 提取指定層特征的模型包裝器 # 使用 timm 加載 CoaTNet-Lite 系列的預(yù)訓(xùn)練模型 # model_name 可選: coatnet_0_rw_224, coatnet_1_rw_224, coatnet_2_rw_224 teacher timm.create_model( coatnet_0_rw_224, pretrainedTrue, num_classes1000 # 保留 ImageNet 原始分類頭 ) # 凍結(jié)所有參數(shù)Teacher 在蒸餾過(guò)程中不更新 for param in teacher.parameters(): param.requires_grad False # 切換到 eval 模式讓 BatchNorm 的行為保持為推理模式 teacher.eval() # 提取最后一個(gè) stage 的特征 # coatnet_0 的 forward_features 返回 [stage1, stage2, stage3, stage4] # 每個(gè) stage 輸出形狀不同最后一個(gè)通常是 [B, 1024, 7, 7] 左右 def forward_features_fn(x): feats teacher.forward_features(x) # 列表 return feats[-1] # 取最后一個(gè) stage # 包裝 forward 方法使 teacher(input) 直接返回特征 teacher.forward forward_features_fn return teacher這段代碼里有三個(gè)決策點(diǎn)要說(shuō)明。第一是模型選擇coatnet_0_rw_224是最小的 CoaTNet 變體參數(shù)量約 1100 萬(wàn)比 ResNet-50 的 2500 萬(wàn)還小但它的表達(dá)能力更強(qiáng)作為 Teacher 對(duì)顯存壓力小。如果你顯存充??梢該Qcoatnet_2_rw_224效果會(huì)更好代價(jià)是訓(xùn)練速度下降 30% 左右。第二是凍結(jié)策略Teacher 在蒸餾過(guò)程中必須完全凍結(jié)requires_grad False和eval()缺一不可——前者防止梯度計(jì)算浪費(fèi)顯存后者防止 BatchNorm 在訓(xùn)練模式下更新 running mean/var導(dǎo)致 Teacher 的輸出在訓(xùn)練過(guò)程中漂移。這兩步是新手最容易漏的漏掉任何一個(gè)都會(huì)導(dǎo)致蒸餾效果詭異。第三是forward重寫(xiě)注意不能直接改模型內(nèi)部結(jié)構(gòu)而是重新綁定teacher.forward方法這樣teacher(input)返回的就是特征而不是分類 logits后續(xù)計(jì)算 RKD Loss 時(shí)不需要額外調(diào)forward_features代碼更干凈。3.3 ResNet 加載凍結(jié) stage1 到 stage3只更新高層Student 這邊的策略和 Teacher 完全相反。ResNet 的底層特征邊緣、紋理是通用的不需要蒸餾也能學(xué)到真正需要從 Teacher 遷移的是高層語(yǔ)義關(guān)系和空間結(jié)構(gòu)。因此常見(jiàn)的做法是凍結(jié) ResNet 的前幾個(gè) stage只更新最后的 stage 和分類頭。這能大幅減少可訓(xùn)練參數(shù)量讓優(yōu)化更穩(wěn)同時(shí)也是一種正則化——防止 Student 在蒸餾過(guò)程中把底層特征學(xué)壞。import torchvision.models as models def load_student_with_frozen_stages(): 加載 ResNet-50 作為 Student凍結(jié)前三個(gè) stage 返回: model, 需要傳入優(yōu)化器的參數(shù)列表 # 使用 torchvision 加載 ResNet-50 預(yù)訓(xùn)練權(quán)重 # 注意: 蒸餾場(chǎng)景下 Student 同樣使用預(yù)訓(xùn)練權(quán)重而不是隨機(jī)初始化 # 從隨機(jī)初始化開(kāi)始蒸餾效果通常比預(yù)訓(xùn)練差 3%-5% student models.resnet50(weightsmodels.ResNet50_Weights.IMAGENET1K_V1) # 凍結(jié)前三個(gè) stage: conv1, bn1, layer1, layer2 # ResNet 的 stage 劃分: # conv1bn1relumaxpool: stem # layer1: stage2 (64 通道) # layer2: stage3 (128 通道) # layer3: stage4 (256 通道) # layer4: stage5 (512 通道) frozen_layers [student.conv1, student.bn1, student.layer1, student.layer2] for layer in frozen_layers: for param in layer.parameters(): param.requires_grad False # 收集可訓(xùn)練參數(shù), 供優(yōu)化器使用 trainable_params [ p for p in student.parameters() if p.requires_grad ] # 移除原始分類頭留出位置給適配層 # RKD 特征對(duì)齊不依賴分類頭的維度但分類頭需要后續(xù)替換成目標(biāo)類別數(shù) # 這里保留原始 fc在訓(xùn)練循環(huán)里我們使用 layer4 的輸出做 RKD student.fc nn.Identity() # 移除 fc特征直接來(lái)自 layer4 輸出 return student, trainable_params這里有個(gè)重要的設(shè)計(jì)問(wèn)題ResNet 的layer4輸出是[B, 2048, 7, 7]的空間特征圖而 CoaTNet 的最后一個(gè) stage 輸出也是[B, C, 7, 7]的格式。但 RKD 的距離和角度計(jì)算要求輸入是[B, D]的向量所以在計(jì)算 Loss 前需要對(duì)特征做空間池化。推薦使用自適應(yīng)平均池化AdaptiveAvgPool2d(1)把空間維度壓成 1x1而不是 Flatten因?yàn)?Flatten 會(huì)把空間鄰居關(guān)系也帶進(jìn)距離計(jì)算本質(zhì)上是引入了位置偏差會(huì)干擾關(guān)系蒸餾的效果。這個(gè)細(xì)節(jié)在避坑章節(jié)里會(huì)再次出現(xiàn)。另一個(gè)決策是Student 用nn.Identity()替換fc之后分類 Loss 怎么算常見(jiàn)做法是在layer4池化后的特征上再接一個(gè)臨時(shí)分類頭蒸餾結(jié)束后再換成目標(biāo)分類頭做評(píng)估。但更簡(jiǎn)潔的做法是蒸餾階段完全不訓(xùn)分類頭只訓(xùn)特征先用假分類頭跑通正式實(shí)驗(yàn)時(shí)再微調(diào)分類頭。理由在 2.1 節(jié)講過(guò)RKD 關(guān)心的是關(guān)系結(jié)構(gòu)分類頭在這里是干擾項(xiàng)會(huì)讓 Student 去優(yōu)化 class boundary 而不是關(guān)系分布。4. 蒸餾訓(xùn)練主循環(huán)線上跑的完整方案與參數(shù)調(diào)優(yōu)4.1 訓(xùn)練循環(huán)的標(biāo)準(zhǔn)實(shí)現(xiàn)Teacher 推理與 Student 更新的異步流程整個(gè)訓(xùn)練流程的核心矛盾是Teacher 需要前向計(jì)算特征但這個(gè)計(jì)算不需要梯度Student 需要前向 反向計(jì)算圖必須保留。如果在一個(gè)循環(huán)里同步算兩者會(huì)把 Teacher 的前向也掛在 Student 的計(jì)算圖上造成不必要的顯存占用。常見(jiàn)做法是先批量算完 Teacher 特征再進(jìn)入 Student 的更新循環(huán)把 Teacher 的特征緩存下來(lái)復(fù)用。下面是完整的訓(xùn)練循環(huán)實(shí)現(xiàn)def train_one_epoch(student, teacher, dataloader, optimizer, rkd_loss, device, epoch): 一個(gè) epoch 的 RKD 蒸餾訓(xùn)練流程 核心思路: Teacher 特征批量緩存, Student 分批更新 student.train() teacher.eval() # Teacher 永遠(yuǎn)在 eval 模式 total_rkd_loss 0.0 total_cls_loss 0.0 num_batches 0 for batch_idx, (images, labels) in enumerate(dataloader): images images.to(device) labels labels.to(device) # 第一步: 用 Teacher 計(jì)算特征, 不記錄梯度 # 這里把整個(gè) batch 的 Teacher 特征算出來(lái), 后續(xù) Student 更新時(shí)直接用 with torch.no_grad(): teacher_feat teacher(images) # [B, C_t, H, W] teacher_feat F.adaptive_avg_pool2d(teacher_feat, 1).squeeze(-1).squeeze(-1) # teacher_feat 現(xiàn)在是 [B, C_t] 的向量形式 # 第二步: Student 前向 反向 student_feat student(images) # [B, 2048, 7, 7] student_feat F.adaptive_avg_pool2d(student_feat, 1).squeeze(-1).squeeze(-1) # 這里不能用 Flatten, 要用池化, 原因見(jiàn)避坑章節(jié) # 計(jì)算 RKD Loss loss_rkd rkd_loss(student_feat, teacher_feat) # 可選: 加上分類 Loss 作為輔助 # 如果加分類 Loss, 需要在 student 后面接一個(gè)臨時(shí)分類頭 # 這里先不接, 純蒸餾 loss loss_rkd # 反向傳播與更新 optimizer.zero_grad() loss.backward() optimizer.step() total_rkd_loss loss_rkd.item() num_batches 1 if batch_idx % 20 0: print(fEpoch {epoch} | Batch {batch_idx} | RKD Loss: {loss_rkd.item():.4f} | fTeacher Feat Norm: {teacher_feat.norm().item():.2f} | fStudent Feat Norm: {student_feat.norm().item():.2f}) avg_loss total_rkd_loss / num_batches return avg_loss這個(gè)循環(huán)里有一個(gè)非常容易被忽略的細(xì)節(jié)student_feat和teacher_feat都必須經(jīng)過(guò)adaptive_avg_pool2d壓縮成向量才能送進(jìn) RKD Loss。如果忘記池化RKD Loss 會(huì)作用在 7x7 的空間特征圖上距離計(jì)算會(huì)包含空間位置信息——這聽(tīng)起來(lái)像是「讓 Student 學(xué)空間關(guān)系」但實(shí)際上有兩個(gè)問(wèn)題一是 49 個(gè)位置的樣本對(duì)組合會(huì)讓 batch 內(nèi)的關(guān)系計(jì)算量爆炸batch64 時(shí)就是 64*49 ≈ 3136 個(gè)虛擬樣本點(diǎn)二是不同空間位置的特征分布差異很大直接混合計(jì)算距離會(huì)把位置差異和樣本差異混在一起Student 學(xué)到的關(guān)系是扭曲的。另一個(gè)值得說(shuō)的是 Teacher 特征緩存。上面的代碼是每個(gè) batch 都實(shí)時(shí)算 Teacher 特征這樣最簡(jiǎn)單也最準(zhǔn)確但 Teacher 的前向占用了一次顯存峰值。如果 Teacher 是coatnet_2_rw_224這種大模型顯存吃緊時(shí)可以在每個(gè) epoch 開(kāi)始前把所有訓(xùn)練集過(guò)一遍 Teacher把所有特征存成npy或內(nèi)存張量訓(xùn)練時(shí)直接索引。這樣做的代價(jià)是存儲(chǔ)空間一個(gè) epoch 的 ImageNet 特征大概需要 50GB 內(nèi)存100 萬(wàn)張圖 * 1024 維 * 4 字節(jié)一般開(kāi)發(fā)機(jī)扛不住。所以實(shí)踐中更常見(jiàn)的是像上面這樣實(shí)時(shí)計(jì)算但把 Teacher 的前向放到no_grad塊里并且先把 Teacher 放到eval()模式這兩步是顯存優(yōu)化的根本保障——BatchNorm 在訓(xùn)練模式下會(huì)保存中間變量用于反向eval()模式直接跳過(guò)了這一層保存。4.2 優(yōu)化器與學(xué)習(xí)率為什么 Adam 比 SGD 更適合 RKDRKD 的 Loss 形態(tài)和傳統(tǒng)分類 Loss 差異很大。分類 Loss 的梯度通常集中在分類邊界附近的樣本上而 RKD 的梯度是分布在整個(gè) batch 的關(guān)系矩陣上的這意味著每個(gè)樣本都會(huì)對(duì)梯度有貢獻(xiàn)而且貢獻(xiàn)的尺度取決于它在關(guān)系結(jié)構(gòu)中的位置。SGD 在這種場(chǎng)景下容易震蕩因?yàn)殛P(guān)系矩陣的梯度方差大。我一般用 AdamW初始學(xué)習(xí)率 1e-4 到 3e-4weight decay 設(shè) 1e-4。import torch.optim as optim def build_optimizer(student, trainable_params): 為 Student 構(gòu)建 AdamW 優(yōu)化器 關(guān)鍵參數(shù)說(shuō)明: lr: 1e-4 ~ 3e-4, 比常規(guī)分類訓(xùn)練低一個(gè)數(shù)量級(jí) betas: (0.9, 0.999) 是 Adam 系列默認(rèn)配置, 通常不需要改 weight_decay: 1e-4 正則化, 防止 Student 特征空間過(guò)度膨脹 optimizer optim.AdamW( trainable_params, lr2e-4, betas(0.9, 0.999), eps1e-8, weight_decay1e-4 ) # 學(xué)習(xí)率調(diào)度: 線性 warmup 余弦退火 # warmup 步數(shù)設(shè)為總步數(shù)的 5%, 避免初始階段關(guān)系 Loss 的劇烈波動(dòng)把特征空間打亂 total_steps 10000 # 根據(jù)實(shí)際訓(xùn)練步數(shù)調(diào)整 warmup_steps int(total_steps * 0.05) def lr_lambda(current_step): if current_step warmup_steps: # 線性 warmup: 從 0 漲到 1 return float(current_step) / float(max(1.0, warmup_steps)) # 余弦退火: 從 1 降到 0.01 progress float(current_step - warmup_steps) / float(max(1.0, total_steps - warmup_steps)) return 0.01 0.99 * 0.5 * (1.0 __import__(math).cos(3.1415926 * progress)) scheduler optim.lr_scheduler.LambdaLR(optimizer, lr_lambda) return optimizer, scheduler這里要強(qiáng)調(diào)一個(gè)反直覺(jué)的點(diǎn)學(xué)習(xí)率不能大。很多從分類任務(wù)轉(zhuǎn)過(guò)來(lái)的工程師習(xí)慣性地設(shè) 1e-3跑 RKD 直接發(fā)散。原因在于 RKD 中的距離關(guān)系 Loss 是 KL 散度它的梯度對(duì)特征空間的尺度敏感——如果 Student 的特征范數(shù)在訓(xùn)練初期劇烈變化距離分布的斜率會(huì)非常大梯度瞬間爆炸。AdamW 的適應(yīng)性學(xué)習(xí)率雖然能緩解但解決不了初始震蕩還是得靠 warmup 低學(xué)習(xí)率把特征空間穩(wěn)住。另一個(gè)隱藏細(xì)節(jié)是weight_decay的限制。AdamW 的weight_decay是解耦的只作用在參數(shù)更新時(shí)減去一個(gè)衰減項(xiàng)不進(jìn)入梯度計(jì)算。這個(gè)設(shè)置在 RKD 場(chǎng)景下有個(gè)好處它不會(huì)干擾距離關(guān)系的梯度只會(huì)緩慢地把 Student 特征往原點(diǎn)拉防止特征范數(shù)無(wú)限增長(zhǎng)。如果換成帶動(dòng)量的 SGD L2 正則L2 會(huì)直接進(jìn)入梯度計(jì)算與 RKD 的距離梯度產(chǎn)生耦合容易讓特征空間的形變方向錯(cuò)亂。所以優(yōu)化器選型上 AdamW 是首選SGD 黨建議先跑通再說(shuō)。4.3 三個(gè)必調(diào)參數(shù)的溫度、損失權(quán)重組合RKD 有三個(gè)權(quán)重參數(shù)需要調(diào)節(jié)分別是溫度temperature、距離權(quán)重w_dist、角度權(quán)重w_angle。它們的作用方式和調(diào)節(jié)方向完全不同下面用一張表格把邊界條件列清楚方便對(duì)照調(diào)試參數(shù)默認(rèn)值調(diào)大 effect調(diào)小 effect適用場(chǎng)景temperature1.0分布更平滑關(guān)系對(duì)齊更寬松梯度更溫和分布更尖銳對(duì)齊更嚴(yán)格梯度更大特征噪聲大時(shí)調(diào)大Teacher 很強(qiáng)時(shí)調(diào)小w_dist25.0強(qiáng)化距離關(guān)系約束Student 特征尺度更貼近 Teacher弱化距離約束特征尺度自由度更大距離關(guān)系更可靠時(shí)調(diào)大尺度過(guò)擬合時(shí)調(diào)小w_angle50.0強(qiáng)化角度關(guān)系約束樣本方向關(guān)系更精確弱化角度約束方向容錯(cuò)更大類別多、樣本在特征空間中方向差異大時(shí)調(diào)大這個(gè)表格里最有誤導(dǎo)性的是w_angle很多人以為它權(quán)重越大越好但實(shí)際經(jīng)驗(yàn)是當(dāng) batch 內(nèi)類別數(shù)較多時(shí)角度關(guān)系的信息量會(huì)下降因?yàn)椴煌悇e間的角度差異趨同都接近 90 度此時(shí)調(diào)大w_angle只會(huì)放大噪聲。更合理的做法是把w_angle的默認(rèn)權(quán)重從 50 降到 20-30同時(shí)把w_dist提到 40-60。這個(gè)比例反轉(zhuǎn)在 CIFAR-100 和 ImageNet 子集上都驗(yàn)證過(guò)精度能提升 0.5-1 個(gè)點(diǎn)。溫度的調(diào)節(jié)邏輯也不復(fù)雜跑日志時(shí)觀察 RKD Loss 的下降曲線如果前 500 步 Loss 波動(dòng)超過(guò) 30%說(shuō)明溫度太低分布太尖銳需要從 1.0 調(diào)到 1.5 或 2.0。反過(guò)來(lái)如果 Loss 下降緩慢且 Student 特征范數(shù)離 Teacher 越來(lái)越遠(yuǎn)說(shuō)明溫度太高關(guān)系約束太弱需要調(diào)回 0.8 或 0.7。具體調(diào)參時(shí)優(yōu)先調(diào)溫度然后調(diào)w_dist最后才碰w_angle因?yàn)榍皟蓚€(gè)影響的是整體 Loss 的 scale第三個(gè)影響的是 Loss 的形狀形狀錯(cuò)了再調(diào) scale 也是白費(fèi)。5. 避坑指南RKD CoaTNet 蒸餾常見(jiàn)問(wèn)題與排查5.1 訓(xùn)練 Loss 下降但精度不漲特征空間對(duì)齊了分類邊界沒(méi)對(duì)齊這是一個(gè)非常隱蔽的坑?,F(xiàn)象是 RKD Loss 很漂亮地下降到 0.5 以下但驗(yàn)證集精度紋絲不動(dòng)甚至比蒸餾前還低。原因是 Student 的特征空間在關(guān)系上對(duì)齊了 Teacher但RKD 并不保證分類邊界也對(duì)齊——兩個(gè)特征空間可以有相同的樣本間距離和角度關(guān)系但類的絕對(duì)位置完全不同。解決這個(gè)問(wèn)題的方法是在訓(xùn)練后期加入分類 Loss 作為細(xì)調(diào)手段用 Student 池化后的特征接一個(gè)線性分類頭用交叉熵 Loss 和 RKD Loss 聯(lián)合優(yōu)化。常見(jiàn)的做法是前 80% 的訓(xùn)練步數(shù)只跑 RKD后 20% 加分類 Loss權(quán)重設(shè)為 0.5 到 1.0。這個(gè)「先蒸餾關(guān)系、再綁定分類」的兩階段策略實(shí)測(cè)比全程聯(lián)合訓(xùn)練效果好因?yàn)榍鞍氤烫卣骺臻g在自由地做剛體變換后半程才需要鎖定到類別上去。5.2 Student 特征范數(shù)持續(xù)膨脹Loss 不收斂距離 Loss 與尺度脫鉤了現(xiàn)象是訓(xùn)練過(guò)程中 Student 特征的 L2 范數(shù)從 10 漲到 100 甚至 1000RKD Loss 居高不下。原因是距離 Loss 用的是 KL 散度它只對(duì)齊距離的分布形狀不對(duì)齊絕對(duì)尺度——Student 的特征可以整體縮放而不改變 KL 散度但縮放會(huì)導(dǎo)致梯度方向不穩(wěn)定。解決方法是加入一個(gè)特征范數(shù)約束讓 Student 特征范數(shù)向 Teacher 的看齊。常見(jiàn)做法是額外加一項(xiàng) MSE Loss# 在訓(xùn)練循環(huán)中加入范數(shù)對(duì)齊 Loss feat_norm_loss F.mse_loss( student_feat.norm(dim1), teacher_feat.norm(dim1) ) # 權(quán)重設(shè)為 0.1 左右, 太大會(huì)干擾 RKD 主 Loss loss loss_rkd 0.1 * feat_norm_loss這個(gè)范數(shù) Loss 的作用是給特征空間加一個(gè)「錨」防止 Student 的特征尺度漂移。如果你發(fā)現(xiàn)加了之后 RKD Loss 反而上升說(shuō)明feat_norm_loss的權(quán)重太大了特征尺度被強(qiáng)行拉到和 Teacher 一致而兩者的結(jié)構(gòu)本來(lái)就有差異。調(diào)成 0.05 或 0.01 即可。5.3 batch size 太小導(dǎo)致關(guān)系信息稀疏Loss 正常但梯度噪聲大現(xiàn)象是 loss 曲線折線感很強(qiáng)epoch 間波動(dòng)大但整體趨勢(shì)沒(méi)有明顯下降。原因是 RKD 的關(guān)系計(jì)算基于 batch 內(nèi)部樣本對(duì)batch 越小關(guān)系矩陣越稀疏噪聲越大。特別是 batch size 小于 32 時(shí)關(guān)系矩陣?yán)锬芴峁┯行畔⒌臉颖緦?duì)太少梯度方向近似隨機(jī)。解決方法是保證 batch size 至少 64如果你的顯存不夠可以改用梯度累積——把 4 個(gè) 16 的 batch 累積成 64 的效果但要注意關(guān)系 Loss 仍然是在每個(gè)小 batch 內(nèi)計(jì)算的累積梯度只能緩解優(yōu)化器層面的噪聲不能補(bǔ)全關(guān)系信息。更激進(jìn)的做法是修改 Loss 計(jì)算方式用動(dòng)量隊(duì)列緩存歷史特征參與當(dāng)前 batch 的關(guān)系計(jì)算也就是把 RKD 改造成對(duì)比學(xué)習(xí)那種 memory bank 的思路但這已經(jīng)超出原項(xiàng)目的范圍這里只提一句作為進(jìn)階方向。5.4 CoaTNet 輸入尺寸與 ResNet 不一致位置編碼特征完全錯(cuò)位現(xiàn)象是蒸餾 Loss 能下降但 Student 在驗(yàn)證集上的精度比隨機(jī)初始化還差。原因是 CoaTNet 的位置編碼對(duì)輸入尺寸敏感224x224 和 256x256 輸入會(huì)生成完全不同的位置編碼序列。如果你的 Teacher 用了 256 輸入比如 CIFAR-10 常用的 32x32 需要 resize 到 256而 Student 用的是 224兩者的空間特征的對(duì)齊關(guān)系從一開(kāi)始就是錯(cuò)的。這個(gè)坑非常隱蔽因?yàn)樵诖a層面完全不會(huì)報(bào)錯(cuò)只在精度上暴露。排查方法是在訓(xùn)練前打印 Teacher 和 Student 各自特征圖的空間分辨率確認(rèn)它們一致。解決方法是統(tǒng)一輸入尺寸并且用 Teacher 預(yù)訓(xùn)練權(quán)重聲明時(shí)的原始尺寸盡量不要自創(chuàng)尺寸。5.5 torchvision 預(yù)訓(xùn)練模型的歸一化參數(shù)未被重置現(xiàn)象是蒸餾前先單獨(dú)評(píng)估 Student baseline發(fā)現(xiàn)精度和官方宣稱的差很多。原因是 torchvision 的 ResNet 預(yù)訓(xùn)練權(quán)重要求輸入按mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]歸一化而 timm 的 CoaTNet 權(quán)重也是同樣的歸一化參數(shù)兩者一致時(shí)通常不會(huì)出問(wèn)題。但如果你用了自己的數(shù)據(jù)集直接沿用了別的項(xiàng)目的歸一化參數(shù)比如 mean0.5, std0.5那么 Teacher 和 Student 的輸入空間都不一樣了蒸餾從一開(kāi)始就在對(duì)齊兩個(gè)不同輸入域下的特征。這個(gè)坑的排查很容易評(píng)估一下 Teacher 的 top-1 精度如果遠(yuǎn)低于官方報(bào)告值幾乎可以斷定是歸一化參數(shù)錯(cuò)了。解決方法是統(tǒng)一使用 ImageNet 歸一化并且確認(rèn) DataLoader 里 transform 順序是resize - normalize - tensor很多人寫(xiě)成normalize - resize這個(gè)順序反了的話歸一化是在像素坐標(biāo)上做的效果完全不對(duì)。6. 驗(yàn)證蒸餾效果的三個(gè)技巧與進(jìn)階方向蒸餾跑完之后怎么確認(rèn) RKD 真正起作用了而不是過(guò)擬合到了 Teacher 的特征上單純看驗(yàn)證集精度不夠因?yàn)榫瓤赡軄?lái)自 Student 原有的預(yù)訓(xùn)練能力和蒸餾無(wú)關(guān)。我常用的驗(yàn)證方法是中間層特征對(duì)齊度評(píng)測(cè)取 Student 的layer3輸出和 Teacher 的stage3輸出各算一次 RKD Loss。如果這個(gè) Loss 在訓(xùn)練前后下降明顯說(shuō)明中間層的關(guān)系結(jié)構(gòu)確實(shí)發(fā)生了遷移如果只下降了 5% 以內(nèi)說(shuō)明蒸餾主要影響的是最后一層中間層的結(jié)構(gòu)沒(méi)有學(xué)到。這個(gè)指標(biāo)比最終精度更早地暴露問(wèn)題可以在訓(xùn)練過(guò)程中就監(jiān)控。另一個(gè)實(shí)用技巧是數(shù)據(jù)增廣擾動(dòng)測(cè)試對(duì)同一張輸入圖像做 10 種不同的隨機(jī)裁剪分別過(guò) Teacher 和 Student計(jì)算 Student 特征空間里這些擾動(dòng)樣本的分布散度。如果蒸餾成功Student 的擾動(dòng)特征應(yīng)該比蒸餾前更緊湊——因?yàn)?Teacher 的注意力機(jī)制對(duì)輕微擾動(dòng)不敏感RKD 把這個(gè)不敏感性遷移給了 Student。這個(gè)測(cè)試能直觀地看到蒸餾帶來(lái)的泛化能力提升而且完全可以在驗(yàn)證集上離線做成本極低。最后一個(gè)進(jìn)階方向是多 teacher 蒸餾取 CoaTNet 的stage2、stage3、stage4三層的特征分別與 ResNet 的layer2、layer3、layer4做 RKD每層的 Loss 用不同的權(quán)重。這樣蒸餾的信息量遠(yuǎn)超單層關(guān)系但調(diào)參難度也指數(shù)上升。我的經(jīng)驗(yàn)是只對(duì)每層的 Loss 做簡(jiǎn)單加權(quán)從深到淺權(quán)重遞減比如 0.7、0.5、0.3不引入額外的自適應(yīng)權(quán)重先用跑通再逐步優(yōu)化。我在實(shí)際項(xiàng)目中踩過(guò)最深的坑是忘記給 Student 做 warmup直接用 2e-4 的學(xué)習(xí)率開(kāi)訓(xùn)RKD Loss 前 200 步抖到飛起最后花了三個(gè) epoch 才穩(wěn)住特征空間。所以你如果第一次跑強(qiáng)烈建議把 warmup_steps 設(shè)到總步數(shù)的 10%寧可多花一點(diǎn)時(shí)間在預(yù)熱上也比后面花三倍時(shí)間找回特征空間強(qiáng)。這個(gè)方案值得做關(guān)鍵是控制好 batch size 和家長(zhǎng)里短那幾個(gè)權(quán)重別一上來(lái)就追求完美先跑通再調(diào)優(yōu)。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
三级色影综合网| 国产成人无码网站在线视频| 2019天天干| 久久久熟妇熟女国产| aaaa黄片| 国内精品a| 久久精品无码熟妇一区二区三区视频导航 | 五月天色图| 围产精品一区二区三区视频播放| 欧美天天干| 天天激色| 亚洲美腿丝袜香蕉影视欧美成人| 伊人国产视频| 日本日日色视频| 99热在线播放| 日韩九区| 六月婷婷综合| www.人人cao| 亚洲精品国产无码高清| 强奸乱伦资源| 亚洲天堂 视频你懂的| av最新免费中文字幕| 奶水 人妻 哺乳 在线| 日韩人妻精品| 很狠操| 久久久不卡区一区二区三区久久久| 婷色五月| 色噜噜人妻丝袜a∨先锋影| 日日操免费视频| 久久久一区二区三区四区五区| 亚州精品人妻一二三区| 98福利在线视频| 超碰97最新人妻| 狠狠操一区二区| 天天干天天操天天拍| 任你草| 玖玖婷婷五月天| 久久九九视频九九视频| 亚洲成?V人片在线观看福利| 日本三级一区二区 在线| 国产兽交视频在线播放| 欧洲性爱无码区| 97干97色| 国产精品不卡一区二区电影| 人人操人人摸avav| 亚洲视频1区| 欧美伊人久久综合网| 可以免费看黄片的视频| 2017人人操,人人摸| 丁香婷婷五月| 探花一区二区三| 人妻一二三区| 婷婷五月天影院| 国产性刺激| 欧美操逼视频二区| 久久精品高清无码一区| 蜜桃传媒视频第一区入口在线看| 嗯嗯不要视频| 国产一区二区三区免费视频在性观看| 黄色AAAAAAAAAAA大片| 综合免费无码中文| 九九成人精品| 另类老少妇| 嗯嗯不要 视频| 无码精品久久久久久亚洲| www国产无码| 中文日本免费高清| 色欲日韩欧美在线一区| 97色插| 草久久久| 9久久久久| 色激情综合网站| 国内精品久久人妻性色av| 极品尤物自安慰| 在线播放成人网站| 91av天美性媒精品视频| 日本国产二线女色| 91国产操逼视频| 日本一区二区成人在线| 精品一区二区3区| 操逼精品视频| 中文字幕在线免费观看| 国产一区二区三区精品观看啪| 亚洲激情av| 操操操操网黑人| 亚洲欧美在线丝袜| h无码动漫在线观看| 蜜臀亚洲中文| 99精品九九九九九九| 天天视频黄| 欧美一级黄片免费播放| 亚洲视频小说| 人人干黄色| www色色色com| 一区二区三区色综合| 亚洲色宗合| 天堂俺去俺来也www久久婷婷| 久久人妻视频| 97色欧洲| 欧亚在线视频| 亚洲欧美日韩不卡人妻| 日本性爱少妇| 黑人精品久久97| a片 xxxx受爽视频| 五月丁香综合啪啪| 91少妇高潮| 中文自拍欧美影视| 国产精品另类| 99热在线观看| 熟妇一区,二区,三区。| 亚洲精品日日夜夜52| 欧美精品 - 91爱爱| 女人天堂av在线播放| 亚洲免费看片| 日韩久射综合| 国产精品麻豆成人AV艾秋| 区自美91| 激情久久久| 国偷自 一区二区| 白丝被操91| 夜夜夜久久| 91欧美综合| 日韩啪啪网| 国产精品一区二区三区在线| 婷婷丁香六月天| 欧美97网| 精品福利视频| 国产亚洲深夜激情| 秋霞鲁丝午夜无码一区二区三| 老司机天天操| 999久久久九九九九| 黑人精品成人一区二区三区| 国产一区在线看| 五月丁香成人网| 美女性91| 99久久无色码| 免费黄色片。| 中文无线日韩一区| 久久女婷| 亚洲国产欧美一区二区潘金莲| 人妻社区男人天堂| www.zbzhongsen.com| 日韩精品 欧美激情| 五月激情综合网| 国产精品懂色tv影视免费观看| 一区=区三区视频| 国产又黄又爽又刺激久久久久久| 中文字幕无码不卡啪啪| 欧美 亚洲 制服 精品| 蜜臀久久99精品久久久久久无删减| 不卡超碰护士AV在线免费播放| 美女天天干| 日夜久久久九九九久| 欧洲亚洲国产综合在线| 97欧美日韩综合| 老女人日韩美91| 操人妻丝袜高跟| 国产日韩精品无码去免费专区国产| 亚洲男人的天堂网| 亚洲不卡不卡中文字幕不卡| av凤凰久久久| 性爱视频无打码在线观看| 91精品国| 在线一区| 亚洲色图激情小说| 婷婷综合网站| 国产精品盗摄 偷窥盗摄| 视频黄站| 欧美一二三区四五区| 五月天黄色激情视频| 老熟女乱伦片| 欧美日韩亚洲天堂| 色777999综合| 婷婷五月天无码 | 在线观看不卡一区二区三区| 日韩啪啪视频| 熟妇高潮二区三区| 91精品国久久久久久无码| 韩日精品四区| 国产精品交换一区二区| av片在线观看免费播放| 日韩成人精品| 中文字幕一区二区韩| 一区在线精品中文字幕| 久久久一二三四区| 亚洲日韩东京热一区| 日韩在线AB| 天美麻花大全视频| 久久久国产亚洲精品系列| 精品人妻中文字幕高清| 亚洲高清欧美总合| 国产精品视频在线观看| 日韩97P| 啊啊啊在线看| 日本新免费二区三区| 清清一区二区三区四区不卡视频| 婷婷爱五月| 婷婷AV一区二区三区| 国产精品久久妻无码网站| 国产路线专区| 啊啊啊啊啊在线| 嗯嗯啊啊啊好爽| 国产精品夜夜夜| 蜜乳av一区二区三区| 欧美少妇第一页| 夜夜操av亚洲一区二区| 欧美精品久久| 国产91专区| 韩日自拍| 老熟女综合网| 97se亚洲综合自| 中文字幕第95页| 日韩精品电影| www.av在线视频| 日本性感人妻91| 欧美日韩在线视频网站| 天天色综合天天操| 自拍偷拍第26| 98超碰日本| 涩涩久久精品| 久久激情四射婷婷丁香五月天| 亚洲视频二区| 亚洲AV不卡在线观看| 久久久91福利姬| 青青草原香蕉日本Ap| 天堂资源欧美| 97精品视频网站| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 啪啪啪精品| A片大香蕉在线| 国模无码人体一区二区三| 一级毛片久久久久久久女人18| 大香蕉视频一二三区| 国产欧美精选自拍一区| 爱av免费| 亚洲最大91网| 蜜臀久久久国产| 亚州,欧美在线| 黄页av| 日本人妻伦在线中文字幕| 久久透逼视频| 欧美黄色大香蕉一区二区| 青青网三级视频| 区一在线观看| 欧美激情黑人| 国产在线综合网| 人妻一区视频| 花野真衣| 亚洲女人毛茸茸91| 26uuu国产亚洲综合| 精品一区二区成人| 91逼逼女人91| 人人操人人精品影片| 女人精品内射国产99| 天天躁日日躁xxxxx| 色5月婷婷| 夜夜骑天天燥| 天天干人人看综合| 97精品综合| 素颜老阿姨乱情色| 97视频在线| 丝袜剧情| 日本日日色视频| 亚洲不雅视频1区二区| 久久久久久99AV无码免费网站| 久久‘黄片视频| 艳尻美人妻| 妇女一区二区三区| www.婷婷| 蜜屁av| 国产精品成人福利在线| 国产性爱欧美性爱在线| 男人的天堂2019| 青青草丝袜在线视频| 久久精品中文| 久久成年片色大黄全免费网站| 国产精品久久久久综合| 欧美在线55555| 综合亚洲欧美精品日韩?v| 亚洲天堂男人在线| 少妇的嫩逼图片| 99精品成人免费看| 中文字幕欧美日本乱码一线二线| 国产日韩在线播放av| 国产九九久久久精品| 97精品全部| 欧美顶级黄色大片免费| 九热超碰| 欧美日韩国产色图在线| 性交一区二区在线播放| 太久视频| 欧美日韩国产精品久久色婷婷| 二男一女成人A片| 亚洲男人的天堂一区二区| 青青草福利视频| www.婷婷六月天| 熟女高潮精品一区二区| 岛国片在线观看视频亚洲| 亚州色阁| 极品极品色影院| 99超碰网| 国产少妇与亚洲av| 人人做,人人操,人人摸| 97视频在线免费播放| 岛国视频一二三区| 97av,com| 黑操B| 97久久网| 久久久久9999精品九九九| 国产成人无码a| 九九英色视频| 免费在线观看国内色片网站网址| 97视频在线免费| 欧美日韩第一页| 97国产|免费| 999在线电影香蕉| 日韩在线观看三级电影| 啊啊啊快操我视频| 三级片网站在线播放| 丝袜美腿91| 在线黄页看毛片| 97欧美精品| 啊啊啊不要啊啊受不了了视频在线| 变态乱伦伪娘灌肠一区二区| 国产热av| 精品一区二区三区蜜桃臀赵总| 思思久热在线精品66| 口爆欧美91| 亚洲成人av电影在线| 99久久9| 99精品视频在线观看| 青娱乐999| 国产热av| 亚洲精品天天影视综合网 | 天天干天天日天天射黄色片| 欧美成人性爱视频免费观看 | 日本免费亚洲欧美| 1769一区| 超碰人妻97| 日韩美女高潮喷水视频| 操操碰| 国产精品福利资源在线尤物| 天天日天天干天天摸天天操| 久久111| 99热精品在线观看| 国产av又色又爽又黄| 78m成人视线| 亚洲淫乱骚妇AV| 日本一本道A级黄色毛片试看60分钟| 蜜臀久久99精品久久久久久-DVD| 东北操逼| 亚洲欧洲久久天堂| 91精品电影18| 国产成人无码久久精品| 成人七区| 三级日韩一区二区三区| 91美女片在线| 99999久久精| 人妻丝袜肏逼| 人妻无码后入| 97免费在线视频在线观看| 日本成人电影资源网| 看全色黄大色大片免费视频| 久肏视频字幕| 999久久芭蕾| 久久中日麻豆| 少妇一区二区三区在线观看| 久草综合京东| 亚洲色欲一区二区三区| 涩涩五月天| 一级久久久久久久久久久| 国产高清精品一区二区三区毛片 | 国内精品a| 国产无码成人无码| 亚洲国产精品无石码久久| 99热国产| 亚洲天天精品| 伊人96在线| 精品成人女人久久| 97视频900| 久久综合中文国产| 日少妇亚洲版| 一区| 91超碰碰在线| 欧美综合网站999| 无码操逼天堂| 日韩欧美麻豆 | 人妻熟女av国产网站| 午夜福利免费福利视频| 日韩国产欧美伦理在线| 欧美一级特黄淫片在线观看| 大香蕉免费乱伦视频| 九月丁香综合网| 国产A v无码专区| 男人高清无码一区二区| 欧美精品久久久久久久久88| www.超碰在线| 67914亚洲精品| 日本特黄f c2| 美腿丝袜高跟网免费视频免费视频| 日欧美色| 伊人991| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 五月婷婷综合网| 丁香六月婷| 亚洲欧美精品一区天堂久久 | 精品视频久久久久九九九九9999| 内射白嫩美女| 欧美熟女妇同| 超碰 欧美| 午夜精品久久久久久久久久久久久| 日韩综合色图| 免费日韩黄片| 婷婷AV一区二区三区| AV中文在线可看| 青青草吊丝| 2017天天透天天通天天擦| 日1区2区3区2020| 亚洲欧美首页| 国模少妇一区二区三区| 1024久久高清视频| 九九九九免费视频| 中文操逼字幕| 睡产熟女乱伦| 欧美香蕉视xxx| 蜜臀无码一区二区| 中文字幕丰满子伦无码专区在线视频最新| 日本欧美韩国国产在线| 97天天搞在线| 综合性视频99| 亚洲AV成人精品网站在AV| 欧美丝袜制服久久| 1024亚洲中文字幕久在线看片你懂的 | 国产亚洲 中文欧美久久| 欧美日韩精品久久| 9久精品| 亚洲精品影视老司机| 亚洲色图激情小说| 亚洲天堂久久| 国产综合网站在线播放| 午夜呻吟欧美| 91日韩| 中国探花熟女| 人妻黑丝袜电影| 精品一级毛片在线观看| 丁香五月天社区| 美女网站黄页| 高清成年美女黄网站免费大全| 五月香婷婷| 97一本大道亚洲一区| 97欧美| 丁香六月综合激情| 天天干夜夜| 激情抓乳插进去啪啪啪日韩 | 欧美v日韩v亚洲v最新在线| 亚洲超碰AV| 亚洲情色一区二区三区| 強姦亂倫a| 天天看天天综合成人网| 丰满人妻一区二区三区免费| a在线观看| 97超碰国产亚洲精品| 国内偷自视频区视频综合| 91视频观看网站| 亚洲色电影在线| 日韩性爱高清免费视频| 蜜桃臀一区二区三区久久| 级做a爱无码性色永久免费| 99色悠悠| 乱伦熟女论坛| 亚洲、日韩、综合、另类| 欧美夜夜| 亚洲伊人久久精品狠狠在线| 亚洲国产精品无码AV久久| 国产少妇肉丝在线观看| 亚洲精品99999| 天天日老熟妇| 国产肏逼网站| 中文字幕女同在线| 丝袜剧情| 亚洲色图日韩丝袜制服一区二区五月在线| 欧美 亚洲 偷拍自拍| 丝袜美腿91| 九九精品热| 亚州性9| 内射日韩大臀美女| 国产美女自拍AV| 欧美A√综合网 | 精品二999| 亚洲情色中文字幕一区| 九九五月天| 深爱五月婷婷| 成人小说另类在线| 91青青在线视频| 曰韩av中文字幕专区| 欧美精品一二三| 99re6久热只有精品6在线直播| 乱伦熟女专区| 亚洲日韩久久精品一区| 99视频在线| 99啪啪| 欧美超碰97| 97香蕉人人乳| 自偷自拍的亚洲视频| 校园春色五月天| 欧美婷婷久久| 女人爽到高潮潮喷18禁网站| 啪啪视频免费在线观看| 国精综合一二三区影视| 99精品免费| 午夜男女爽爽爽影院视频| 一二三四视频在线社区中文字幕| 996热| 成人26uuu| 亚洲熟妇AV日韩熟妇在线| 大香蕉男女超碰精品在线| 少妇高潮流水av免费| 玖玖爱一区在线| 国产黄片在线免费观看| 九九热精品| 60秒免费小视频| 性站| 久久6热视频免费观看| 男人的天堂2019| 九九九九一级| 少妇500双飞99| 91狠狠色丁香婷婷综合久久精品| 手机在线中文字幕国产| 国产综合日韩伦理| 无码二级三级| 亚洲啪啪啪啪视香蕉| 久草视频制服诱惑| 丝袜熟女2P| 日欧操屄视频| 国产黄色 A 片免费看| 韩国免费播放一级毛片| 亚洲熟女综合一区二区| 一区二区三区在线日韩影院观看| 欧美色997| 91狠婷| 亚洲欧美成人在线| 国产 丝袜 欧美中文 另类| 亚洲乱色熟女一区| 日韩成人精品| 国内毛片欧美香蕉精品| 亚洲色图欧美| 久久久久99999| 极品人妻少妇综合| 91亚洲最新在线| 男人成人黄色视频在线观看免费下载| 91N综合在线| 顶级少妇BT天堂| 少妇99成人麻豆| 91狠| 综合色图,成人综合网| 91狠狠综合久久| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 国产多人在线观看视频| 亚欧无码线免费观看视频| 99热在线播放| 精品视频一二三中文| 天美传媒婬乱在| 国产97视频| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 亚洲色欲一区二区三区| 影音综合网| 中文字幕天天天天天| 亚州乱码中文字幕综合久久久| 青青青操| 狠插 制服 自拍| 九九自拍伦理| 久久久少妇诱惑精品视频| 黄色一区三区| 全国男人天堂网| 欧综合网| 在线a亚洲视频播放在线| 欧美福利视频啊啊啊啊| 蜜乳AV.COM| 亚洲欧综合另类无码一区| 欧美人妻精品一区二区| 色99视频| 亚洲人在线| 欧美A√综合网| 香蕉大久久久| 九九九九精| 一级片视频啪啪| 性色av蜜臀av色欲aV| 秋霞欧美性爰视频| 91oumei| 97色视频在线| 日本不卡免费二区| 狠狠久久手机视频精品| 午夜欧美女人操逼| 久久国产精品一级二级三级| 秋霞午夜视频一区二区| 久久久一区二区三区麻豆| 91老熟女| 黄片不用下载在线观看| 国产精品老熟女一区二区| 91夜夜蜜桃臀1区2区3区| 好爽要喷了| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 97WW精品| 伊人96在线| 熟女人妻一区二区三区免费看| 桃花色综合影院| 看一级特黄a大一片| 精品色色| 九九自拍伦理| 秋霞怕怕片| 中文字幕亚洲在线一区| 国产丰满熟夫69mpp| 久久久久久人| 国产一级内射无挡观看| 男人兔费天堂| 久久九九精品一区二区 | 青青草成人视频在线观看二区| 久久久久久综合久久伊人蜜月| 中文精品一区二去| 99热97| 色97欧美| 欧美人妻精品一区二区| 啊嗯好大视频在线观看| 97超碰色情| 国产精选三级在线观看| 日韩/97| av天堂电影网| 亚洲无线码一区国产欧美国| 91五月天| 天天懆天天日| 欧美一区二区三区大综合| 成人无码欧美一级A片狼牙直播| 不卡av在线中文字幕| 成人日本精品九区| 国产 日韩 欧美一区| 综合熟女| 亚洲欧洲综合| 91九色首页| 99草精| 久久婷婷色| 色哟哟av| 色色色五月婷婷| 色偷偷综合91久久噜噜| 51一区二区三区| 超碰地址97| 香蕉久久AⅤ...| 人妻熟女一区二区三区在线| 欧美中文字幕日韩在线| 国产SV一线| av一区二区三区不卡| 一区二区久久天天干狠狠| 欧美天天综合| 大香蕉伊人亚洲| 精品欧美不卡在线播放| 人妻精品4K4K4K4K4| 香蕉人欧美综合| 亚洲高清综合网| 好爽免费视频| 欧美日韩国产另类综合| 丁香久久| 日日骚一区二区三区| 9997se| 把腿张开老子CAO烂你| 午夜福利在线合集| WWW黄片COM| 美女性91| 久久熟妇五十路一区| 亚洲天天做日日做天天谢日日| 欧美激情欧美精品| www.伪伪| 精品美女少妇一区二区| 9/A片| 美国黄片aaa| 天天操人人操骚逼网站| 在线v中文字幕一区二区三区| 久热精品在线| 97超碰美国| 色在线视频导航| 超碰久久精品| 色婷婷综合视频| 国产精品不卡高清在线观看| 亚州综合AⅤ| 午夜男人一级A片7777| 人妻铁牛TV| silk lablo在线观看一区二区| 日韩免费看黄片| 人妻少妇精品| 国产美女口爆吞精| 99热伊人| 在线观看成人性爱免费小视频| 91精品国| 久草毛片电影怡| 大香蕉手机视频| 狠狠色噜噜狠狠狠狠2018| 97操综合| 97高清啪啪| 国产综合操逼高清| 国产精品久久久久久久久久梁医生| 加勒比性爱成人在线| 内射白嫩美女| 亚洲女毛多水多21P| а√天堂资源官网在线资源| 自拍第一页| 亚洲色9| 亚洲综合九九| 岛国片国产成人亚洲播放| 福利视频网站| 桑老女人九区| 欧美中文狠| 日本一二区免费| 熟女视频久久| 美国人人操人人操| 试看日韩黄片| 欧美亚洲首页| 超碰 欧美| 男人的天堂久久狠| 91天天综合网,天天综合网| 亚洲操逼网| 国产激情av女片自拍| 翔田千里Av在线| 天天噜| 天天影视91看看| 91强在线播放| 欧美97日韩| 999狠狠综合| 发朗少妇买婬全视频中文| 欧美日韩性爱操大逼| 吖在线不卡一区二区国产剧情 | 亚洲国产午夜真人一级片中文字幕精品黄网站| 男女性无套 免费九一| 中文字幕成人乱码熟女精品国50| 亚洲一二三四区在线免费看视频| 97在线青| 国产精品久久久久久久久久久久久久久久 | 日韩美女啪啪一区| 婷婷伊人五月| 一中国女人毛片水真多| 欧美91精品国产自产| 熟妇色99| 伊人超碰97| 99国产女人| 色九久| 91熟女丨老女人| 先锋女优在线观看视频| 欧美碰碰综合色| 精品一区二区三区蜜桃| 日日骚一区二区三区| 亚州色图欧美色图| 久久精品操| 精品九区| 久久产精品一区二区三区电影| 欧美97超碰| 欧美精品精品一区二区| 综合激情二| 日韩乱伦AⅤ| 欧美大香蕉专区网| 国产又色又爽又舒服的三级视频| 伊人久久大香大香线蕉中文| 成人精品在线| 97超碰国产精品| 亚洲丝袜B诱惑| 男人网站婷婷| nuu12国产麻豆精品| 人妻激情视频| 久久系列| 欧美呦呦性爱| 秋霞曰韩R级| 久久久爆乳翘臀一线天伦理视频| 色爽爽文学| 男人 天堂 日 亚洲| 超碰碰小说97| 天天综合欧美| 亚洲?V无码专区在线电影| 草草网站影院白丝内射| www99热| 第二页中文字幕| 国模91| 国产一区二区在线播放| 天天操人人操狠狠插| 天天干天天操天天干天天操| av九九| 日本精品免费一区二区三区四区| 伊人嫩草| 国产在线综合福利网站| 国产 亚洲 丝袜 制服| 免费夜夜爱黄色视频毛片| 99re95| 亚州欧美另类| 八戒无码国产午夜福利| 久久xx| 精品网站99999| 欧美色图欧美| 一级aaaaa欧美中文字幕录像片| 成人网址在线观看| 人妻酒店出差被中出免费在线播放| 五月天人妻综合| 精品日韩人妻精品一二三区| 亚洲精品日韩国产欧美| 97超碰色屌| 少妇无码999| 国产大学生口爆吞精合集| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 色色婷婷五月天| 嫩草影院永久在线制服丝袜| 蜜臀久久99精品久久久久久-DVD| 国产高清成人mv在线观看| 国产精品91一样| 亚洲有薄码区久久在线一区| 一区二区精品日韩欧美在线观看| 亚洲精品99| 香蕉大久久久| 欧美一区二区三区四区综合| 久久久爆乳翘臀一线天伦理视频| 99热国产精品| 国产AV色黄看到爽| 夜夜夜久久| 天天色综合影视网| 在线人人人人人人精品超| 亚洲淫乱骚妇AV| 男人午夜天堂| 欧美精品四区| 成人无码欧美一级A片狼牙直播| 亚洲成人性| 精品无码一二三四区| 秋霞怕怕片| 9久综合网| 91欧美网| 天天日日夜夜| 日韩十八禁| 欧美激情五月天| 伊人国产AV| 日亚韩精品视频二区三| 九七人妻在线| 日韩丝袜二区| 97操综合| 国产一区二区啪啪视频| 亚洲熟女少妇免费视频| 91快色色色色色| 四虎在线免费视频| 玖玖爱免费观看视频| 亚洲男人综合网| 中文字幕亚洲热播人妻| 97网址97| 亚洲欧美国产其他二区| 好色美女九七第一页| 午夜福利成人免费视频| 蜜桃臀av一区二区| 色婷婷电影网| 91色图| 玖玖综合色| 大香蕉www.超碰| 60秒免费小视频| 93人人操人人| 草B在线| 人妻熟女一区在| 加勒比综合| 久草精品国产蜜臀 | 91新在线欧美| 亚洲国产一区二区入口| 91女优在线观看| 在线观看日韩av不卡| 校园春色美腿丝袜 | 韩国毛片一区二区三区| 欧美一级A片在线看视频性色| 青青草色AV| 欧美激情亚洲色图| 日韩精品碰碰| 风间由美日韩欧美久久| 黄色大片一区二区密桃丝袜| 你懂的在线观看区国产| 热的中文 热的有码 热的国产| 99热只有这里有精品| 国产9l 大屁股| 青娱乐大香蕉| 国产精品三级视频网站| 国内外内射高清视频| 玖玖爱一区在线| 麻豆啪啪啪视频| 亚洲影院成人| 久久噜噜噜精品国产亚洲综合| 五月天激情网站| 免费无码国产精品v片在线观看| 精品制服美女中文一区二区三区| 又黑又大又粗 | 日韩人妻精品中文字幕| 亚洲偷拍自拍在线视频| av毛片aaaaa免费看| 欧美激情亚洲情色| 亚洲91av| 岛国片在线观看视频亚洲| 久草尤物| 国产区在线| 综合av影片| 男人天堂婷婷五月天校园春色| 欧美一级黄片视频在线| 97国产超碰| 91激情国产| 综合 青草 伊久久 影院 综合 | 亚洲欲色| 热久久无毒不卡| 日本 免费 一区二区三区 久久香蕉| 中文字幕日本久久| 无码人妻精品一区二区中文| 丝袜综合网| 骚逼自拍99| 久久伊人网视频一区二区三区| av凤凰久久久| 免费一级特黄特色大片在线观看看 | 蜜臀久久99精品久久久久久无删减 | 五月丁香久久| 国产 v乱码一区二| 日韩性爱视频在线免费观看| 婷婷五月天激情四射| 人妻人久久精品中文字幕| 91红杏| 久久久9品一区二区三区| 97婷婷色| 一区在线观看中文字幕| 久久直播国产| 乱伦a片视频| 天天视频网站黄| 青娱乐国产剧情av一区| 9Ⅰ超碰| 久久久久久久久9| 91网站在线播放| 超碰久在线天天做| 熟女一区二区三区| 天天舔九色婷婷| 好爽,再快点啊哈嗯嗯嗯嗯| 五月天伊人| 久久婷婷五月综合| 免费av大片| 变态乱伦伪娘灌肠一区二区| www.亚洲成人一区| 黄视频免费| 日韩操啪| 久久精品福利影院| 国产精品久久久久久久无码AV | 99.色网| 国产夜夜艹| 天美av在线观看| 精品射1999| 欧美少妇第一页| 精品免费一区二区三区在线亚洲人成| 日本超碰在线国产一区| 日本久操视频| 超碰在线974| 91色图片| 国产熟女二区| 久久久九九| 一级AAA片一区二区三区| 超碰色美女| 熟妇色99| 国产内射爽爽大片| 亚川综合视频| 黄色视频特级毛片| 日韩一级片在线看| 成人欧美一区二区三区黑人一| 97资源超碰| 高清不卡视频| 少妇内射www在线观看视频| 一区二区蜜臀| 在线色资源| 97天天综合| 日韩性爱啪啪视频| 另类小说综合网| 成人性爱电影一区二区| 香蕉综合网| 欧美亚洲国产自久久| av东京热男人的天堂| 超碰久在线天天做| 九九热re99re6在线精品| 综合97| 日日插夜夜| www.91色| 超碰人妻久久人妻中文97| 天堂在线一区二区| 久久精品女同亚洲女同13| 日日爱99| 欧美黄色大片在线观看 | 中文视频在线观看| 国产日韩区| 婷婷丁香六月天| 精品久久久久瑟瑟| 乱色老一区二区三区的观看方式| 欧美色图 色综合图| 精品国产三级av韩国在线| 插日本熟女视频| 台湾佬中文娱乐自偷自拍| 2017大香蕉国产精品久久| 一区二区三区四区久久视1| 骚人妻少妇视频| 少妇淫妇久久久久久久| 日韩av免费一级电影| 中文字幕 国产区| 污到发麻的视频 国产| 天操天操夜操夜月月年年操操| 人妻三级在线中文字幕| 欧美天天干| 亚洲精品819| 国产精品电| 97视频免费在线观看| 蜜臀一区二区三区在线 | 天天综合网~91综合网| 成人三级片一区二区三区视频| 俄罗斯一区二区视频在线观看| 五月天综合在线| 天天α片| 亚洲一区二区三区在线激情| 国产激情视频在线观看| 亚洲 欧美 另类 综合 偷拍| 色色九区| 久久久精品成人国产| 在线综合 亚洲 欧美中文字幕| 日本一线产区和二线产区伦理片| 无码最新| 亚洲精品蜜桃久久久一区二区三区| 99热在线只有精品| 亚洲人妻中文高清| 一区二区三区男女操逼黄色小电影| 青青青青青手机视频| 欧美精品99久久久**| 天堂种子在线www网资源| 亚洲一区亚洲天堂| 欧美一区二区一级岛国大片| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 国产久久久久久| 91狼人| 久久久9 9 9精品| 中国女人内射6XXXXX| 亚洲日韩一区电影| 欧美日韩妖精91com| 国产亚州精品美女久久久免费| 青青草自拍视频在线播放| 欧洲亚洲人妻无码高清久久三区四区| a级成人毛片免费视频高清| 亚热日本熟女| 人人操人人干xxx| 很黄很污的免费网站| 日韩在线观看三级电影| 这里只有精品视频| 精精品人妻一区二区三区| 婷婷成人五月天| 91少妇高潮| 综合色色婷婷| 亚洲色图日韩丝袜制服一区二区五月在线| 91精品女厕偷拍视频| 91 综合 色| 欧美东京热精品A∨| oumeisetupian| 天天躁日日躁AAAAXXXX国产| 大香网伊人久久综合网eew| 国产精品嫩草久久久久| 国产人伦精品一区二区三区 | 国产日韩欧美亚洲精品95| 99精品人人爽| 亚洲熟女中文字幕在线| 破处bbq| 婷婷综合五月| 精品国产Av无码久久久伦古装| 少妇一线天久久久久久| 高清国产精品福利网站| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 2020中文字幕在线| 久久‘黄片视频| 国产av色网| 91色婷婷综合久久中文字幕二区| 午夜九九九九九九| 男人下部插入女人下部| ji熟女.com| 青青操视频在线| 久久免费精彩视频| 久久永久无码人妻视频| 国精品一区二区三| 久久东京伊人一本到鬼色| 欧美色图自拍| 国产第25页在线观看| 密臀在线一区尤物| 青青操在线亚洲视频观看欧美在线| www.大香| 成人九九| 久久超碰免费的| 99久久99九九99九九九| 午夜精品久久99蜜桃的功能章节| 超硑97精品| 五月丁香| 亚洲高清色综合| 中文字幕大片三级狠狠干| 亚洲本色精品一区二区久久| 人妻免费观看| 韩国一区二区精品亚洲| 狠狠操,使劲操| 久男人久久| 97视频在线免费看| 国产强奸超碰AV| 久久男人天堂| 精品一区二区久久| 不卡九肏| www.超碰| av网站在线观看了| 欧美精品97| 国产精品一区二区麻豆| 韩国轻伦国内自拍一区| 色婷婷色99国产综合精品| 日韩综合成人免费视频| 丰满人妻一区二区三区免费| 少妇一区二区三区在线观看| 大香蕉婷婷| 午夜福利精品| 日本布卡一区二三区| 淫乱图区| 男人的天堂在线2| 久久久久免费少妇| 超碰在线观看av不卡| 无码国产精品96久久久久孕妇| 亚洲影视高清三级-草1024榴社区入口-品爱AV| 欧美黄色图片| 九九黄色视频在线观看| 精品成人动漫一区二区| 99热免费| 天天干嫩逼网| 免费男人的天堂| 在线亚洲精品久久久| 青青草吊丝| 九九热精品免费视频| 一本精品日本在线视频精品| 大香蕉一级黄色片久久| 高精欧美色| 亚洲天堂一二| 亚洲天堂人人妻| 内射黑人| 欧美第38页| 亚洲色图a| 大香蕉色十月| 69超碰综合| 五月天婷婷激情| 色九九综合| 青娱乐久久艹| 国产亚洲日本精品在线| 日韩亚洲中文字幕在线| 国产一级不卡在线观看| 中文字幕久久婷婷丁香五月天| 亚洲男人天堂av| 亚洲国产综合视频| 九九九九一级| 骚逼自拍99| 亚洲久久东京热一二三四五区视频| 欧美在线视频观看一二三四区高清| 久久综合精品一区二区三区| 综合网久久| 伊人玖玖网| 极品色电影院| 91少妇香蕉久久精品| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 国产伊人精品在线| 老熟女阿 国产91| 97在线免费公开视频| 久久久亚洲精品中文字幕人妻| 久久免费9| 看日韩黄片|