久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

從零訓(xùn)練CNN到PyTorch遷移學(xué)習(xí):Food-11圖像分類實(shí)戰(zhàn)全記錄

從零訓(xùn)練CNN到PyTorch遷移學(xué)習(xí):Food-11圖像分類實(shí)戰(zhàn)全記錄 最近在折騰食物圖片分類拿 Food-11 數(shù)據(jù)集練手從零手寫了一個 CNN又用 PyTorch 遷移學(xué)習(xí)刷了一輪兩種方案都完整跑通了。這篇東西把整個項(xiàng)目的思路、網(wǎng)絡(luò)設(shè)計、訓(xùn)練細(xì)節(jié)、踩過的坑都整理出來想給剛學(xué)完 PyTorch 基礎(chǔ)、正準(zhǔn)備做圖像分類實(shí)戰(zhàn)的人一點(diǎn)參考。適合兩類人一是想徹底搞懂 CNN 每層在干什么、怎么調(diào)參的初學(xué)者二是手上數(shù)據(jù)量不大、想用遷移學(xué)習(xí)快速出效果的朋友。整個過程沒有用特別復(fù)雜的結(jié)構(gòu)重點(diǎn)是把每一步為什么這么做講清楚。Food-11 這個數(shù)據(jù)集很有意思它包含 11 類常見食物圖片類別包括面包、甜點(diǎn)、雞蛋、油炸食品、肉類、面條、披薩、米飯、海鮮、湯和沙拉蔬菜。和 MNIST、CIFAR 那種入門數(shù)據(jù)集相比它的難度高不少——同類食物有煎炸、烘焙、燉煮等不同形態(tài)不同類別之間又存在視覺相似性比如米飯和面條、湯和燉菜很容易混淆。這種類內(nèi)差異大、類間有重疊的特點(diǎn)恰好能檢驗(yàn)一個模型真正的特征提取能力。數(shù)據(jù)規(guī)模大約是訓(xùn)練集 9866 張、驗(yàn)證集 3430 張、測試集 3347 張對消費(fèi)級顯卡來說完全跑得動。1. 項(xiàng)目整體設(shè)計與思路拆解1.1 為什么選 Food-11 作為實(shí)戰(zhàn)任務(wù)很多新手入門 CNN 都從 CIFAR-10 或者 MNIST 開始這兩個數(shù)據(jù)集確實(shí)經(jīng)典但有個問題類別之間差異太大背景干凈、物體居中隨便搭一個簡單網(wǎng)絡(luò)就能刷到 90% 以上很容易給人深度學(xué)習(xí)挺簡單的錯覺。一旦換到真實(shí)場景的數(shù)據(jù)立刻被打回原形。Food-11 的好處在于它足夠真實(shí)。圖片不是規(guī)范化的商品圖而是帶著不同光照、不同拍攝角度、不同擺盤方式的生活照每張圖的尺寸也不一樣有橫構(gòu)圖有豎構(gòu)圖還有各種背景干擾。你要做分類模型必須學(xué)會忽略背景、聚焦食物主體。這正好模擬了實(shí)際項(xiàng)目里最常見的場景用手機(jī)拍菜單識別菜品、用監(jiān)控視頻分析食堂消耗量之類的需求本質(zhì)上都是同一類問題。數(shù)據(jù)規(guī)模方面Food-11 也處于一個微妙的位置。它比 CIFAR-10 大但又遠(yuǎn)小于 ImageNet。這個規(guī)模決定了從頭訓(xùn)練一個小型 CNN 是有可能收斂到不錯精度的但又不會讓你輕松到接近 90%讓你能充分體驗(yàn)過擬合和欠擬合之間的拉扯。與此同時這個規(guī)模也適合對比遷移學(xué)習(xí)——你很快就能看出同樣一個任務(wù)帶預(yù)訓(xùn)練權(quán)重和從零初始化收斂速度差距有多大。1.2 先手寫 CNN 再遷移學(xué)習(xí)的意義我見過不少人直接上來就用遷移學(xué)習(xí)ResNet 加載預(yù)訓(xùn)練權(quán)重、替換全連接層、訓(xùn)練完事準(zhǔn)確率看著不錯但問到他為什么 ResNet 里的 shortcut 能解決梯度消失、為什么凍結(jié)底層比凍結(jié)高層效果好、為什么微調(diào)時學(xué)習(xí)率要調(diào)小他就答不上來了。這不怪他因?yàn)檫w移學(xué)習(xí)把太多東西封裝在看不見的地方你不需要理解也能出結(jié)果但出了問題就不知道怎么排查。手寫 CNN 的價值恰恰在這里。當(dāng)你自己定義每一個卷積層、自己計算每一層的尺寸變化、自己觀察訓(xùn)練集和驗(yàn)證集準(zhǔn)確率差距的時候你會對為什么卷積核要越來越大、為什么通道數(shù)要逐層翻倍、為什么全連接層這么容易過擬合有直觀感受。這些東西寫 100 遍筆記不如實(shí)際跑一輪來得深刻。所以我的路線是先花幾天時間從零寫一個簡單的 CNN調(diào)參、觀測、記錄把這個過程做完吃透。然后在此基礎(chǔ)上引入遷移學(xué)習(xí)把預(yù)訓(xùn)練模型換上來同樣是訓(xùn)練、觀測、記錄。最后把兩套方案的準(zhǔn)確率曲線、訓(xùn)練時長、顯存占用放在一起對比。這樣做完整跑一遍你對網(wǎng)絡(luò)容量、數(shù)據(jù)增強(qiáng)、特征遷移這幾個概念的理解會比刷課程深刻得多。1.3 方案選型與預(yù)期目標(biāo)在開始之前我給自己定了幾個具體目標(biāo)方便最后做復(fù)盤的時候衡量方案預(yù)期測試集準(zhǔn)確率訓(xùn)練預(yù)算從零訓(xùn)練 CNN65%-75%50-70 epoch遷移學(xué)習(xí) ResNet1885% 以上20-40 epoch實(shí)際做下來從零訓(xùn)練的 CNN 測試集準(zhǔn)確率落在 70% 附近遷移學(xué)習(xí)的 ResNet18 微調(diào)后測試集達(dá)到 87% 左右。兩套方案都算達(dá)到了預(yù)期。評估維度我選了四個測試集準(zhǔn)確率、訓(xùn)練收斂速度、顯存占用、過擬合程度。準(zhǔn)確率是最直觀的收斂速度看驗(yàn)證集損失下降到平穩(wěn)值所需的 epoch 數(shù)顯存占用直接看訓(xùn)練時 GPU 占用峰值過擬合程度則看訓(xùn)練集和驗(yàn)證集準(zhǔn)確率之間的差距。2. 環(huán)境準(zhǔn)備與數(shù)據(jù)管線搭建2.1 環(huán)境配置與依賴安裝這次項(xiàng)目的環(huán)境用的是 Python 3.10 PyTorch 2.1 CUDA 11.8顯卡恰好是 8GB 顯存。這個配置很普通不挑硬件大多數(shù)人的筆記本都能跑唯一需要注意的是顯存不夠時要把 batch size 調(diào)小。安裝依賴的時候有個常見的坑值得提醒PyTorch 的安裝要匹配 CUDA 版本。直接用pip install torch裝的是 CPU 版訓(xùn)練速度會慢到讓人懷疑人生。正確做法是去 PyTorch 官網(wǎng)根據(jù)你的 CUDA 版本復(fù)制對應(yīng)的安裝命令。如果不想查 CUDA 版本也可以在命令行跑nvidia-smi看右上角的 CUDA Version那個數(shù)字決定了你該選哪一檔。除了 torch 本體還需要 torchvision——因?yàn)橐盟虞d數(shù)據(jù)集和預(yù)訓(xùn)練模型。另外裝上 matplotlib 用于畫訓(xùn)練曲線tensorboard 用于實(shí)時監(jiān)控訓(xùn)練過程這個后面會細(xì)說。完整安裝命令大致長這樣pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118 pip install matplotlib tensorboard pandas如果機(jī)器上沒有獨(dú)立顯卡或者 CUDA 裝不上也不是完全不能做這個項(xiàng)目。把代碼里的.cuda()換成.to(cpu)batch size 調(diào)小一點(diǎn)訓(xùn)練時間大概會多 5 到 10 倍但代碼流程是一樣的原理也能學(xué)明白。不過遷移學(xué)習(xí)部分在 CPU 上跑會非常煎熬建議至少用云平臺的 GPU 實(shí)例。2.2 Food-11 數(shù)據(jù)集下載與加載Food-11 數(shù)據(jù)集來自某高校公開的食品圖像研究項(xiàng)目在公開渠道可以下載到。下載后是一個壓縮包解壓出來分三個文件夾分別是 training、validation、testing每個文件夾下面再按類別分子目錄。這種目錄結(jié)構(gòu)正好可以用torchvision.datasets.ImageFolder直接加載不需要手寫 Dataset 類。不過要留意一個細(xì)節(jié)Food-11 有些版本用的是類別數(shù)字編號做目錄名比如 0、1、2、3 一直到 10有些版本則標(biāo)注了類別名稱。你需要先在驗(yàn)證集上跑一次小測試確認(rèn)目錄編號和實(shí)際食物類別是否對得上否則后面畫混淆矩陣的時候會一臉懵。我自己就遇到過一次編號 5 標(biāo)的是肉類但圖片全是披薩排查了半天才發(fā)現(xiàn)是數(shù)據(jù)集內(nèi)部分類順序和文檔不一致。加載代碼很簡單from torchvision import datasets, transforms train_transform transforms.Compose([ transforms.Resize(256), transforms.RandomResizedCrop(224), transforms.RandomHorizontalFlip(p0.5), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) ]) val_transform transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) ]) train_dataset datasets.ImageFolder(food11/training, transformtrain_transform) val_dataset datasets.ImageFolder(food11/validation, transformval_transform) train_loader DataLoader(train_dataset, batch_size64, shuffleTrue, num_workers4, pin_memoryTrue) val_loader DataLoader(val_dataset, batch_size64, shuffleFalse, num_workers4, pin_memoryTrue)這里定義了兩種不同的 transform訓(xùn)練集用了隨機(jī)裁剪和隨機(jī)翻轉(zhuǎn)做數(shù)據(jù)增強(qiáng)驗(yàn)證集只用固定尺寸的中心裁剪不做隨機(jī)增強(qiáng)。因?yàn)轵?yàn)證集的作用是評估模型真實(shí)表現(xiàn)如果每一輪驗(yàn)證的圖片都在變化你看到的準(zhǔn)確率波動就會很大干擾判斷。2.3 數(shù)據(jù)增強(qiáng)策略的設(shè)計邏輯數(shù)據(jù)增強(qiáng)是這個小項(xiàng)目里最容易被忽視卻非常重要的環(huán)節(jié)。Food-11 每類大概不到 1000 張訓(xùn)練圖這點(diǎn)數(shù)據(jù)量對于從零訓(xùn)練的 CNN 來說是不夠的。如果不用數(shù)據(jù)增強(qiáng)模型很快就會把訓(xùn)練集背下來然后驗(yàn)證集準(zhǔn)確率卡在一個尷尬的位置。我用的訓(xùn)練增強(qiáng)組合是RandomResizedCrop(224)RandomHorizontalFlipColorJitter。RandomResizedCrop會從原圖隨機(jī)裁剪一塊比例不同的區(qū)域然后縮放到 224x224等于同時做了尺度擾動和位置擾動這比RandomCrop更能模擬真實(shí)場景中食物在畫面中大小不一的情況。ColorJitter則是隨機(jī)調(diào)整亮度、對比度和飽和度幫助模型對光照變化不敏感。但遷移學(xué)習(xí)階段我特意把ColorJitter的強(qiáng)度調(diào)低了只保留輕微的變化。原因是預(yù)訓(xùn)練模型在 ImageNet 上見過的是比較標(biāo)準(zhǔn)的顏色分布如果用強(qiáng)顏色增強(qiáng)把圖片色調(diào)改得面目全非預(yù)訓(xùn)練特征就發(fā)揮不出作用了。這種情況下你等于拿從零訓(xùn)練的規(guī)則去約束一個有經(jīng)驗(yàn)的老模型反而束縛了它。歸一化參數(shù)用的是 ImageNet 的均值和標(biāo)準(zhǔn)差即使是從零訓(xùn)練我也用了這套參數(shù)。嚴(yán)格的講自己動手統(tǒng)計 Food-11 的均值和標(biāo)準(zhǔn)差會稍微更準(zhǔn)確但我實(shí)測下來兩者差異很小不值得為這點(diǎn)提升額外增加代碼復(fù)雜度。使用統(tǒng)一歸一化參數(shù)還有個額外好處后期遷移學(xué)習(xí)階段直接復(fù)用同一套 transform代碼不用改。3. 從零手寫 CNN 并訓(xùn)練到收斂3.1 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計手寫 CNN 不是越復(fù)雜越好關(guān)鍵是結(jié)構(gòu)合理、每層的作用清清楚楚。我用的結(jié)構(gòu)是三個卷積塊加兩個全連接層輸入 224x224x3 的彩色圖片輸出 11 個類別的分?jǐn)?shù)。設(shè)計原則就三條通道數(shù)逐層翻倍、空間尺寸逐層減半、在卷積和全連接的銜接處用池化降維。import torch.nn as nn class SimpleCNN(nn.Module): def __init__(self, num_classes11): super().__init__() self.features nn.Sequential( nn.Conv2d(3, 32, kernel_size3, padding1), nn.BatchNorm2d(32), nn.ReLU(inplaceTrue), nn.MaxPool2d(2), nn.Conv2d(32, 64, kernel_size3, padding1), nn.BatchNorm2d(64), nn.ReLU(inplaceTrue), nn.MaxPool2d(2), nn.Conv2d(64, 128, kernel_size3, padding1), nn.BatchNorm2d(128), nn.ReLU(inplaceTrue), nn.MaxPool2d(2), ) self.classifier nn.Sequential( nn.Flatten(), nn.Linear(128 * 28 * 28, 256), nn.ReLU(inplaceTrue), nn.Dropout(0.5), nn.Linear(256, num_classes) ) def forward(self, x): return self.classifier(self.features(x))為什么每個卷積層都用 3x3 卷積因?yàn)閮蓚€串聯(lián)的 3x3 卷積堆疊出來的感受野相當(dāng)于一個 5x5 卷積參數(shù)更少、非線性表達(dá)更強(qiáng)。為什么通道數(shù)從 32 到 64 到 128 翻倍因?yàn)殡S著空間尺寸不斷減半要保持特征信息量不下降就得靠增加通道數(shù)來補(bǔ)償。展平后的維度是這樣算的輸入 224x224經(jīng)過三次 MaxPool2d(2) 后空間尺寸變?yōu)?224/2/2/2 28所以展平后是 1282828 100352 維。這個全連接輸入維度有點(diǎn)大但實(shí)際訓(xùn)練時問題不大。如果不想每次手算維度也可以在最前面加一層nn.AdaptiveAvgPool2d((7, 7))這樣不管輸入尺寸怎么變都能統(tǒng)一輸出到 7x7代碼更優(yōu)雅我后面在遷移學(xué)習(xí)中就用這種寫法。還有兩個容易被忽略的細(xì)節(jié)。一個是BatchNorm2d放在卷積和 ReLU 之間先歸一化再激活這是目前實(shí)踐中最穩(wěn)定的排列。另一個是最后一個卷積塊后面沒有接全局平均池化而是直接把特征圖展平喂給全連接層。這么做不是最優(yōu)的VGG 時代的大量實(shí)驗(yàn)表明展平操作會導(dǎo)致較大參數(shù)量、更容易過擬合換成AdaptiveAvgPool2d后參數(shù)會少很多。你可以把這個當(dāng)成一個優(yōu)化方向但作為學(xué)習(xí)用的第一版網(wǎng)絡(luò)展平方案更直觀能讓你看懂特征圖是如何變成一維向量的。3.2 訓(xùn)練流程與損失函數(shù)設(shè)置訓(xùn)練一個小型 CNN 分類模型的代碼框架是通用的以后你換任何一個數(shù)據(jù)集這個骨架都能用。核心就是四個步驟前向傳播、計算損失、反向傳播、更新參數(shù)。import torch import torch.nn as nn import torch.optim as optim device torch.device(cuda if torch.cuda.is_available() else cpu) model SimpleCNN(num_classes11).to(device) criterion nn.CrossEntropyLoss() optimizer optim.Adam(model.parameters(), lr1e-3, weight_decay1e-4) scheduler optim.lr_scheduler.StepLR(optimizer, step_size20, gamma0.5) epochs 60 for epoch in range(epochs): model.train() total_loss, correct, total 0.0, 0, 0 for images, labels in train_loader: images, labels images.to(device), labels.to(device) outputs model(images) loss criterion(outputs, labels) optimizer.zero_grad() loss.backward() optimizer.step() total_loss loss.item() * images.size(0) _, preds torch.max(outputs, 1) correct (preds labels).sum().item() total labels.size(0) train_acc correct / total avg_loss total_loss / total # 驗(yàn)證階段 model.eval() val_correct, val_total 0, 0 with torch.no_grad(): for images, labels in val_loader: images, labels images.to(device), labels.to(device) outputs model(images) _, preds torch.max(outputs, 1) val_correct (preds labels).sum().item() val_total labels.size(0) val_acc val_correct / val_total print(fEpoch {epoch1:03d} | Loss {avg_loss:.4f} | fTrain Acc {train_acc:.4f} | Val Acc {val_acc:.4f}) scheduler.step()這里的幾個設(shè)計點(diǎn)都有實(shí)際意義。損失函數(shù)用nn.CrossEntropyLoss()這個函數(shù)內(nèi)部自動幫你做了 softmax 和 log所以不要在模型最后一層額外加 softmax否則等于做了兩次歸一化數(shù)值行為和梯度都會受影響。優(yōu)化器我選了 Adam初始學(xué)習(xí)率 1e-3配了一個很輕的 L2 正則化weight_decay1e-4。Adam 的好處是對學(xué)習(xí)率不敏感、收斂穩(wěn)對新手友好。SGD 配合動量理論上有更好的泛化性能但需要調(diào)學(xué)習(xí)率和動量策略花的時間更多實(shí)戰(zhàn)中遇到 Adam 收斂不上去再考慮換 SGD。訓(xùn)練過程中我用了model.train()和model.eval()來切換模式。這個切換非常關(guān)鍵Dropout在訓(xùn)練時隨機(jī)丟棄神經(jīng)元但驗(yàn)證時不能丟BatchNorm在訓(xùn)練時用當(dāng)前 batch 的統(tǒng)計量驗(yàn)證時用訓(xùn)練階段累積的滑動平均。忘了切回 eval 模式是新手最容易犯的錯誤之一后果是驗(yàn)證準(zhǔn)確率莫名其妙地低而且每次跑結(jié)果不一樣。3.3 訓(xùn)練過程監(jiān)控與調(diào)參記錄訓(xùn)練到 20 輪左右的時候訓(xùn)練準(zhǔn)確率已經(jīng)到了 85% 左右驗(yàn)證集 62% 左右這時明顯出現(xiàn)了過擬合跡象。訓(xùn)練集學(xué)得比驗(yàn)證集快很多的情況在從零訓(xùn)練的小網(wǎng)絡(luò)上幾乎無法避免只能通過增強(qiáng)正則化和降低模型容量來緩解。我把 Dropout 從 0.3 提到了 0.5同時把ColorJitter的增強(qiáng)幅度調(diào)大了一點(diǎn)讓模型看到的訓(xùn)練樣本更加多樣化。調(diào)整后驗(yàn)證集準(zhǔn)確率往上走了一些但最終也只是穩(wěn)定在 70% 附近。從這里你能直觀感受到淺層網(wǎng)絡(luò)的容量瓶頸是什么意思。不是過擬合問題解決不了而是即便解決了過擬合這個網(wǎng)絡(luò)本身的表達(dá)能力也就到這個程度。11 個類別里米飯和面條、湯和燉菜這類細(xì)粒度差異需要更深層的特征才能區(qū)分而三層卷積只能學(xué)到紋理和顏色級別的特征再往上就需要更多層來組合語義信息。另一個值得記錄的調(diào)參經(jīng)驗(yàn)是學(xué)習(xí)率衰減。我用StepLR(step_size20, gamma0.5)也就是每 20 輪把學(xué)習(xí)率減半。如果一直用恒定學(xué)習(xí)率訓(xùn)練后期 loss 會在一個區(qū)間反復(fù)震蕩準(zhǔn)確率曲線也呈鋸齒狀衰減之后曲線明顯平滑下來。你可以在 tensorboard 里觀察 loss 曲線的尾部如果出現(xiàn)高頻震蕩而驗(yàn)證集準(zhǔn)確率不再提升大概率就是學(xué)習(xí)率偏大的信號。最終手寫 CNN 的結(jié)果是訓(xùn)練 60 輪測試集準(zhǔn)確率 70.8%。這個成績在沒有任何預(yù)訓(xùn)練權(quán)重的情況下對于 Food-11 這類真實(shí)圖片數(shù)據(jù)集來說屬于一個合理但談不上優(yōu)秀的結(jié)果。它證明了這個網(wǎng)絡(luò)架構(gòu)是能學(xué)到東西的但天花板也很明顯。4. 遷移學(xué)習(xí)從預(yù)訓(xùn)練權(quán)重到微調(diào)落地4.1 預(yù)訓(xùn)練模型選型遷移學(xué)習(xí)的核心思路是不從一個全新的隨機(jī)初始化開始而是用一個已經(jīng)在 ImageNet 上訓(xùn)練過的模型作為起點(diǎn)。ImageNet 有 1000 個類別、上百萬張圖片模型在分類訓(xùn)練中被迫學(xué)會識別各種通用視覺模式比如邊緣、紋理、形狀、物體部件。這些特征對絕大多數(shù)圖像任務(wù)都有復(fù)用價值。torchvision 里提供多種預(yù)訓(xùn)練模型我選了 ResNet18。選它的理由有三個參數(shù)量約 1170 萬不算大8GB 顯存跑起來毫無壓力結(jié)構(gòu)經(jīng)典殘差連接解決了深層網(wǎng)絡(luò)的梯度傳播問題這讓你在微調(diào)時即使解凍更多層也不用太擔(dān)心訓(xùn)練崩潰在 Food-11 這種中等復(fù)雜度的任務(wù)上ResNet18 的能力已經(jīng)足夠上 ResNet50 提升有限但訓(xùn)練時間和顯存占用都會明顯增加。ResNet50 適合什么時候用如果你手里的數(shù)據(jù)量更大、圖片分辨率更高、類別更多或者類別之間差異非常細(xì)微那時候 ResNet50 或更大的模型才有意義。但在這個項(xiàng)目里選了 ResNet50 也不會讓準(zhǔn)確率有質(zhì)的飛越反而會讓訓(xùn)練變慢過擬合風(fēng)險也更高。4.2 模型替換與參數(shù)凍結(jié)策略加載預(yù)訓(xùn)練 ResNet18 之后第一件事就是把輸出層的全連接替換掉。ResNet18 原來的全連接層輸出 1000 個類別分?jǐn)?shù)我們的任務(wù)是 11 類所以需要換成一個nn.Linear(resnet.fc.in_features, 11)。這里用in_features拿原層的輸入維度是標(biāo)準(zhǔn)寫法避免硬編碼 512 這種數(shù)字以后換 ResNet34、ResNet50 時代碼不用改。接下來是最關(guān)鍵的策略決策凍結(jié)哪些層解凍哪些層。import torchvision.models as models model models.resnet18(weightsmodels.ResNet18_Weights.IMAGENET1K_V1) for param in model.parameters(): param.requires_grad_(False) for param in model.layer3.parameters(): param.requires_grad_(True) for param in model.layer4.parameters(): param.requires_grad_(True) model.fc nn.Linear(model.fc.in_features, 11)這個代碼做了三件事先把所有參數(shù)鎖定requires_gradFalse然后解凍了 layer3 和 layer4 這兩個殘差塊最后替換分類頭。解凍的含義是這些層的參數(shù)會在訓(xùn)練中被更新沒解凍的層參數(shù)保持預(yù)訓(xùn)練權(quán)重不變。凍結(jié)層的參數(shù)不參與訓(xùn)練這兩大好處第一大幅減少需要計算的梯度顯存占用下降第二避免在小數(shù)據(jù)集上破壞預(yù)訓(xùn)練學(xué)到的高質(zhì)量通用特征。但也不宜凍太多——layer1 和 layer2 學(xué)到的是邊緣、紋理這些通用的特征layer3 和 layer4 學(xué)到的是偏語義的特征對食物類別更關(guān)鍵解凍它們讓模型有空間去適應(yīng)當(dāng)前任務(wù)這是精度和數(shù)據(jù)規(guī)模之間的一個平衡點(diǎn)。如果你想先跑一個快速的 baseline可以把所有層都凍結(jié)只訓(xùn)練新的全連接層。這樣訓(xùn)練速度極快十幾分鐘就能出一個結(jié)果通常在 Food-11 上能到 80% 左右。解凍 layer3、layer4 后準(zhǔn)確率可以再提升幾個點(diǎn)。所以一個實(shí)用的流程是先只訓(xùn)分類頭確認(rèn) baseline再逐步解凍更深層觀察準(zhǔn)確率變化找到收益最大且不發(fā)生過擬合的解凍深度。優(yōu)化器這里需要特別處理一下不同層要用不同的學(xué)習(xí)率。因?yàn)槿B接層是隨機(jī)初始化的需要較大的學(xué)習(xí)率快速收斂而預(yù)訓(xùn)練層已經(jīng)有較好的初始化只需要很小的學(xué)習(xí)率做微調(diào)不然一步下去就把之前學(xué)好的特征給破壞了。optimizer optim.Adam([ {params: model.layer3.parameters(), lr: 1e-4}, {params: model.layer4.parameters(), lr: 1e-4}, {params: model.fc.parameters(), lr: 1e-3}, ], weight_decay1e-4)權(quán)重衰減對微調(diào)階段同樣重要它能抑制預(yù)訓(xùn)練層在微調(diào)過程中的參數(shù)漂移。有人擔(dān)心weight_decay加在預(yù)訓(xùn)練層上會破壞原有權(quán)重實(shí)測下來只要 lr 足夠小這個影響可以忽略反而能提升最終精度。4.3 微調(diào)實(shí)驗(yàn)結(jié)果與對比分析遷移學(xué)習(xí)階段我用相同的數(shù)據(jù)增強(qiáng)和 batch size訓(xùn)練了 30 輪。前 10 輪就達(dá)到了手寫 CNN 最終的水平驗(yàn)證集準(zhǔn)確率超過 70%20 輪后驗(yàn)證集穩(wěn)定在 87% 左右30 輪后測試集準(zhǔn)確率定格在 87.3%。整個過程沒有遇到明顯的過擬合訓(xùn)練集和驗(yàn)證集準(zhǔn)確率的差距大約在 3-4 個百分點(diǎn)比手寫 CNN 的 10 個百分點(diǎn)以上健康得多。這個結(jié)果說明預(yù)訓(xùn)練模型在 ImageNet 上學(xué)到的通用特征對食物圖片依然高度有效。底層卷積提取的紋理、邊緣、顏色斑塊等低層特征本身就和食物圖像沒有太大領(lǐng)域差異而高層的語義特征通過微調(diào)也能很快適應(yīng)食物這個特定領(lǐng)域。這是遷移學(xué)習(xí)最核心的邏輯低層特征通用高層特征特異微調(diào)相當(dāng)于把特異的部分重新訓(xùn)練一下而低層保持不動。對比手寫 CNN遷移學(xué)習(xí)帶來的收益非常明確準(zhǔn)確率提升接近 17 個百分點(diǎn)收斂輪數(shù)減少一半以上過擬合風(fēng)險大幅降低。唯一的代價是需要額外加載一個 44MB 左右的預(yù)訓(xùn)練權(quán)重文件以及第一輪訓(xùn)練前的參數(shù)下載時間。5. 兩套方案的對比與選型建議5.1 準(zhǔn)確率、訓(xùn)練時長、魯棒性三維對比兩套方案完整跑完后我列了一張對比表直觀反映差異。對比維度從零訓(xùn)練 CNNResNet18 遷移學(xué)習(xí)測試集準(zhǔn)確率70.8%87.3%達(dá)到 70% 所需輪數(shù)約 40 輪約 8 輪顯存峰值占用約 1.2GB約 1.8GB訓(xùn)練/驗(yàn)證準(zhǔn)確率差距10%3%-4%過擬合風(fēng)險高低收斂穩(wěn)定性需要調(diào)參相對穩(wěn)定從零訓(xùn)練 CNN 最大的問題是過擬合。訓(xùn)練集準(zhǔn)確率接近 96%驗(yàn)證集只有 79% 左右差距接近 17 個百分點(diǎn)。遷移學(xué)習(xí)就健康得多訓(xùn)練集 91%驗(yàn)證集 87%差距被壓縮在可接受范圍內(nèi)。這背后的原因不只是預(yù)訓(xùn)練權(quán)重更重要的是預(yù)訓(xùn)練模型本身的設(shè)計殘差結(jié)構(gòu)配合 batch normalization讓梯度傳播更穩(wěn)定訓(xùn)練過程不容易被噪聲樣本帶偏。5.2 什么場景該選哪種方案做完這個項(xiàng)目之后我形成了一個判斷框架以后拿到新的圖像分類任務(wù)可以直接套用。當(dāng)數(shù)據(jù)量每類超過 5000 張、圖片內(nèi)容高度標(biāo)準(zhǔn)化、且類別間差異明顯時從零訓(xùn)練一個淺層網(wǎng)絡(luò)可能是一個選項(xiàng)但那也僅僅是為了研究網(wǎng)絡(luò)結(jié)構(gòu)才需要做的事。工程上無論是訓(xùn)練效率還是最終精度遷移學(xué)習(xí)幾乎總是更好的選擇。數(shù)據(jù)量中等、每類有幾百張圖片而且任務(wù)和自然圖像比較接近的時候遷移學(xué)習(xí)是首選推薦先用凍結(jié)全部層訓(xùn)練分類頭做 baseline再逐步解凍深層這是最快找到最優(yōu)配置的路徑。數(shù)據(jù)量極少、每類只有幾十張圖片時那就只訓(xùn)練分類頭、保持所有特征層完全凍結(jié)同時依賴更強(qiáng)的數(shù)據(jù)增強(qiáng)來撐住訓(xùn)練。有一種情況值得警惕如果目標(biāo)圖片是醫(yī)學(xué)影像、衛(wèi)星遙感、工業(yè)檢測這類和自然圖像差異巨大的領(lǐng)域預(yù)訓(xùn)練權(quán)重的價值會打折扣。底層卷積的紋理、邊緣特征仍然有用但高層的語義特征跟你的任務(wù)完全對不上。這時候不要盲目解凍所有層應(yīng)該從淺到深逐層解凍每解凍一層就評估一次一旦發(fā)現(xiàn)驗(yàn)證集準(zhǔn)確率下降就停在那里。5.3 遷移學(xué)習(xí)工程的四個經(jīng)驗(yàn)第一個經(jīng)驗(yàn)是 BatchNorm 的統(tǒng)計量與 batch size 高度相關(guān)。微調(diào)時如果 batch size 設(shè)得太小比如小于 16BN 層計算出來的均值和方差波動很大會拖累整個模型的表現(xiàn)。遇到這種情況可以把凍結(jié)層的 BN 也設(shè)成 eval 模式或者干脆用一個足夠大的 batch size。我建議微調(diào)過程中的 batch size 不要低于 32。第二個經(jīng)驗(yàn)是輸入分辨率盡量保持 224x224。預(yù)訓(xùn)練模型在 ImageNet 上訓(xùn)練時用的就是 224 分辨率你如果為了省顯存用 160x160雖然 ResNet 的全連接層會因?yàn)檩斎胱冃《鵁o法 forward但用AdaptiveAvgPool2d的結(jié)構(gòu)能適應(yīng)不同分辨率只是準(zhǔn)確率會下降幾個點(diǎn)。所以最穩(wěn)妥的方式是 resize 到 256 再 center crop 到 224這個方案在速度和精度之間是公認(rèn)的平衡點(diǎn)。第三個經(jīng)驗(yàn)是數(shù)據(jù)增強(qiáng)可以比手寫網(wǎng)絡(luò)用的更強(qiáng)但也不能亂來。Food-11 上我稍微調(diào)大了RandomResizedCrop的裁剪范圍讓模型看到更多不同大小的食物區(qū)域效果是正向的。但ColorJitter如果設(shè)置得過強(qiáng)預(yù)訓(xùn)練層的顏色統(tǒng)計會被打亂效果反而變差。第四個經(jīng)驗(yàn)關(guān)于推理階段。訓(xùn)練結(jié)束后做測試推斷時記得也要用驗(yàn)證集那套 transform不要用包括了隨機(jī)翻轉(zhuǎn)的訓(xùn)練 transform。如果測試時圖像被隨機(jī)翻轉(zhuǎn)你的預(yù)測結(jié)果每次都不一樣無法得到穩(wěn)定的測試集準(zhǔn)確率。6. 常見問題與排查技巧實(shí)錄6.1 損失不下降或訓(xùn)練成 NaN訓(xùn)練過程中損失值不下降或者直接變成 NaN是新手遇到最多的問題。我自己在這上面踩過坑整理一下排查順序。先看學(xué)習(xí)率。如果損失長時間在一個高數(shù)值徘徊不往下走十有八九是學(xué)習(xí)率偏大或者偏小。Adam 的默認(rèn)學(xué)習(xí)率 1e-3 在這個小網(wǎng)絡(luò)上通常合適但如果換成更大更深的網(wǎng)絡(luò)這個值就偏大了損失會在幾個小 epoch 內(nèi)直接炸掉。遇到 NaN 的第一反應(yīng)就是把學(xué)習(xí)率除以 10 再試試。再看有沒有在模型最后一層重復(fù)加 softmax。nn.CrossEntropyLoss內(nèi)部的實(shí)現(xiàn)是log(softmax(x))如果你額外在forward里加了一個 softmax梯度計算路徑就多了一層非線性變換數(shù)值不穩(wěn)定損失甚至?xí)霈F(xiàn)負(fù)值。這個錯誤在代碼里不好肉眼發(fā)現(xiàn)最好用一個小批量數(shù)據(jù)做一輪前向推斷打印輸出層數(shù)值范圍正常應(yīng)該在 -5 到 5 之間。最后看數(shù)據(jù)歸一化。如果忘了用Normalize直接把原始像素值0-255喂給網(wǎng)絡(luò)或者歸一化的 mean/std 寫錯位置輸入分布的數(shù)值范圍會和模型預(yù)期差異很大導(dǎo)致訓(xùn)練很難收斂。Food-11 這種自然圖像一般按 ImageNet 的統(tǒng)計參數(shù)歸一化就好。6.2 過擬合嚴(yán)重時的應(yīng)對次序當(dāng)訓(xùn)練集準(zhǔn)確率很高、驗(yàn)證集準(zhǔn)確率停滯不前的時候按照這個順序調(diào)整先從數(shù)據(jù)側(cè)入手增強(qiáng)RandomResizedCrop和RandomHorizontalFlip有需要再加RandomRotation和ColorJitter再從模型側(cè)入手提高 Dropout 比例、降低通道數(shù)最后從訓(xùn)練策略入手加 weight_decay、早停、降低學(xué)習(xí)率。遷移學(xué)習(xí)階段如果出現(xiàn)過擬合最快的辦法是減少解凍的層數(shù)不要一上來就解凍全部。另一個有效手段是使用更小的學(xué)習(xí)率比如把微調(diào)學(xué)習(xí)率從 1e-4 降到 3e-5讓參數(shù)在已經(jīng)很小的范圍內(nèi)繼續(xù)調(diào)整。微調(diào)更怕矯枉過正寧可慢一點(diǎn)也不要讓預(yù)訓(xùn)練權(quán)重被幾個 high-loss 的樣本帶著跑偏。6.3 加載預(yù)訓(xùn)練模型報 key 不匹配加載torchvision預(yù)訓(xùn)練模型偶爾會遇到state_dict的 key 不匹配或者下面的報錯RuntimeError: Error(s) in loading state_dict for ResNet: Missing key(s) in state_dict: fc.weight, fc.bias. Unexpected key(s) in state_dict: module.fc.weight, module.fc.bias.這個報錯通常有兩種原因。第一種是你用了多 GPU 訓(xùn)練保存的權(quán)重key 前面統(tǒng)一帶著module.前綴第二種是你已經(jīng)替換了最后的全連接層但加載的權(quán)重還是舊的 1000 類版本。解決辦法是加載時用strictFalse并且手動剔除module.前綴。from collections import OrderedDict state_dict torch.load(your_checkpoint.pth) new_state_dict OrderedDict() for k, v in state_dict.items(): if k.startswith(module.): k k[7:] # 去掉 module. 前綴 new_state_dict[k] v model.load_state_dict(new_state_dict, strictFalse)預(yù)處理最好是在保存 checkpoint 時就規(guī)范化 key省得每次加載都寫這段代碼。如果不小心保存了帶module.的權(quán)重上面這段代碼可以直接復(fù)用。6.4 顯存不足OOM時的三板斧8GB 顯存跑 ResNet18 很從容但并不說明你可以隨意浪。batch size 設(shè)到 128、圖片分辨率用到 256OOM 就會找上門。遇到顯存不足按照下面的順序處理。第一減小 batch size。這是最直接的辦法從 64 降到 32顯存立刻減半。代價是訓(xùn)練會多一些波動可以配合適當(dāng)降低學(xué)習(xí)率彌補(bǔ)。第二利用凍結(jié)層的特性。如果只訓(xùn)練分類頭整個特征提取器不需要梯度但實(shí)際上前向計算中的中間特征圖仍然會被保留用于后續(xù)的反向傳播解決辦法是把requires_gradFalse的層放在torch.no_grad()上下文里計算或者直接用autocast混合精度訓(xùn)練。第三開自動混合精度。from torch.cuda.amp import autocast, GradScaler scaler GradScaler() for images, labels in train_loader: images, labels images.to(device), labels.to(device) with autocast(): outputs model(images) loss criterion(outputs, labels) optimizer.zero_grad() scaler.scale(loss).backward() scaler.step(optimizer) scaler.update()混合精度訓(xùn)練把部分計算改為半精度浮點(diǎn)數(shù)顯存占用和計算量都能減少將近一半而精度損失在這個任務(wù)上幾乎觀察不到。這是現(xiàn)代 PyTorch 訓(xùn)練里性價比最高的一個優(yōu)化手段。6.5 訓(xùn)練速度慢排查方向如果你的訓(xùn)練速度異常慢先用nvidia-smi看一下 GPU 利用率和顯存占用。如果 GPU 利用率只有 20% 以下問題多半不在模型而在數(shù)據(jù)加載流程。PyTorch 的 DataLoader 里num_workers設(shè)置太小時CPU 處理圖像速度跟不上 GPU 的消費(fèi)速度整個訓(xùn)練就卡在數(shù)據(jù)讀取上。num_workers設(shè)成 0 表示在主進(jìn)程里加載數(shù)據(jù)速度最慢通常 2 到 4 就夠用。如果設(shè)置到 8 以上你就需要檢查系統(tǒng)內(nèi)存是否足夠內(nèi)存交換會讓訓(xùn)練變慢幾個數(shù)量級。另外開啟pin_memoryTrue可以加速 GPU 和設(shè)備端的數(shù)據(jù)拷貝這個小參數(shù)很多人會忽略。如果數(shù)據(jù)加載已經(jīng)很快但 GPU 利用率還是低就檢查 transform 的復(fù)雜度。RandomResizedCrop這類操作是 CPU 密集型計算再疊加ColorJitter傳統(tǒng)實(shí)現(xiàn)也比較重。有條件的可以把 transform 簡化或者用多進(jìn)程預(yù)處理。在普通項(xiàng)目里我通常把num_workers調(diào)到 4、pin_memory打開就能解決大部分速度問題。7. 訓(xùn)練過程中記錄的幾條心得整個項(xiàng)目跑完我對圖像分類實(shí)戰(zhàn)有了更具體的認(rèn)識。從零手寫 CNN 的過程雖然最后準(zhǔn)確率不高但它教會我網(wǎng)絡(luò)容量限制了模型的表達(dá)能力數(shù)據(jù)增強(qiáng)和正則化只是緩解癥狀真正解決問題要靠結(jié)構(gòu)設(shè)計。這種領(lǐng)悟不是看任何教程能直接獲得的必須在調(diào)參和對比中慢慢沉淀。遷移學(xué)習(xí)讓我重新理解了預(yù)訓(xùn)練這三個字的重量。同樣的網(wǎng)絡(luò)結(jié)構(gòu)、同樣的數(shù)據(jù)、同樣的訓(xùn)練輪數(shù)唯一的差別就是初始化方式不同最終結(jié)果差了 16 個百分點(diǎn)。在工業(yè)界大多數(shù)場景里數(shù)據(jù)和算力才是稀缺資源而預(yù)訓(xùn)練權(quán)重提供了一條用別人已訓(xùn)練好的知識來彌補(bǔ)自己數(shù)據(jù)不足的捷徑。最后一個小技巧想分享給做類似項(xiàng)目的朋友從最開始就建立固定格式的訓(xùn)練日志把每一輪的損失、準(zhǔn)確率、學(xué)習(xí)率、顯存占用都記錄到文件里。這些看似瑣碎的數(shù)據(jù)在你需要回頭對比不同方案時價值極大。我的習(xí)慣是用一張 CSV 記錄關(guān)鍵指標(biāo)再用 Python 腳本畫準(zhǔn)確率曲線幾個方案放在同一張圖上對比誰好誰差一目了然。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
伊人9| 免费黄色片子| 91|九色|国产熟女| 久草线上视频免费看| 国产精品无码久久久久2028| 欲射影视| 精品午夜福利国产一区二区在线观看| 亚洲综合在线91| 久久精品美女一区| 日韩欧美aⅴ综合网站发布| 69综合网| 欧美人妻一区| 日韩干B| 亚洲91极品| 久久婷婷电影网| 亚州综合色| 午夜呻吟欧美| 日本五十路熟女一区二区| 国产精品扒开腿做爽爽爽视频| 无码久| 五月天婷婷激情| 69精品| 又黄又硬又粗又长国产视频| 久久综合乱子伦国产免费| 18禁的网站在线| 天啪| 91天天美女| 亚洲91大片| 国产av强奸美女| 超碰无码加勒比| nuu12国产麻豆精品| 国产乱弄免费在线视频。| 极品AV网站在线观看| 国产91福利小视频在线观看 | 观看视频图片一区二区三区| 亚洲三级网址久久最新| 91亚洲综合| 国产92麻豆天美精品色欲5| 亚洲精品蜜桃久久久一区二区三区| 一区,二区,三区视频| 青青草毛片| 极品粉嫩一区二区| 宅男影院久久久,99| 中文字幕在线第二页| 天无日色综合| 在线观看亚洲成人精品| 91亚洲不卡一区| 奇米狠999| 国产欧美日产一区二区三区 - 国产欧美日| 成人七区| 一本精品日本在线视频精品 | 好湿好紧视频| 欧美丝袜美女电影一二三四区| 91黑丝在线播放| 啊啊啊啊啊啊好多水| 亚洲男人天堂网站| 江都AV在线| 色婷婷综合网| 免费视频在线一区二区不卡| 有码免费观看| 亚洲精品一区二区三区新线路| 美日韩男女操屄视频| 国产9熟妇视频网站| 怡红院视频在线| 精品v日韩欧美国产| 国产精品久久久久亚洲av| 久久精品国产亚洲AV先锋| 丰满搜索结果 -第18页- 久久高清无码| 欧美久久伊人| 日韩欧美字幕亚洲一区二区| 热99这里有精品综合久久| 久久成人东京热人妻| 天天摸天天插天天日| 全球成人中文在线| 99亚洲天堂| 乱伦3P视频| 97干在线视频| 亚洲色图加勒比| caopeng97人妻| 欧美少妇性乱| 精品国产a∨一区天美传媒| 久9精品| 女优大全 - 91n| 精品视频在线观看| 国产99久久99热这里只有精品15| 美女裸体无遮挡永久免费观看网站 | 欧美激情综合网| 三级AV入口| 青青青青操国内视频在线| 神马午夜久久久| 九九成人精品| 91热色| 欧美v日韩v亚洲v最新在线| 自怕偷自怕亚洲精品| 亚洲最大无码中文字幕网站 | 先锋女优在线观看视频| 99在线免费公开视频| 丁香激情网| 超碰69| 精品亚洲成人免费在线| 天综合网| 日日日啊啊啊| 啊啊啊啊啊啊在线| 久久草大香蕉| 人妻美腿丝袜日韩| 国产www色在线观看| 精品乱码久久久久| 日韩激情无码影院| 中文字幕人妻丝袜| 在线二区不卡| 狠狠色婷婷7777久| 成人国产二区三区在线,男女精品。| 性久久| 欧美在线视频播放| 色官网色综合| 少妇蹲下买菜露大唇0| 亚洲色图欧美色图日韩色图| 久久国模av| 亚洲一区二区久久久久| 中文一区在线日| 91快色色色色色| 欧美性五月| 1769一区二区| 中文字幕日韩专区精品系列| 狠狠操综合| 乱伦熟妇一区二区| 伊人991| 97在线欧洲| 久草色悠悠在线视频| 色九久| blacked精品一区国产| 午夜九九| 久久久九97| 人人妻人人爽一区二区三区| 97人肏| 国产精品香蕉| 欧美激情片一区二区| 午夜福利无毒不卡| 视频在线观看青青99国产| 欧美成人黄网色网站| AV男人天堂网| 亚洲另类小说卡通动漫| 日本性一区| 国产一区二区三区影片| 啊啊啊操死我| 2003天天干夜夜操| 嗯嗯啊啊用力视频免费| AAAAAAAAA黄片| 91色s| 婷婷激情啪啪| 亚洲无码成人精品| 中文字幕人妻色偷偷久久皮 | 欧美综合在线91| 日本操大逼| 热久久无毒不卡| 欧美日韩成人| 91制服丝袜| 五月天色图影视| 超碰97综合网| 免费一级欧美片片线观看| 老熟女天天操| 国产精品第二页| 色婷久久| 久操网无码在线| 2017天天操天天日| 性爱AV天堂| 五月婷婷六月丁香| 国产精品制服丝袜清纯唯美| 亚洲精品九九九| 日日日骚女人精品| 韩国久久97| 欧美少妇性爱网站| 97精品视频| 欧美综合 站| 欧美亚洲玖玖玖| 在线色导航| 天天综合网日韩| 久久视频少妇美女| 大香蕉免| 亚洲色图20p| 91麻豆va国产精品| 思思热在线cao| 蜜臀久久99精品久久久久久| 久久中文字幕女同性恋一区| 影音先锋一区二区在线资源| 亚洲欧洲小说图片视频 | 婷婷在线精品| 美国一区二区免费视频| 嫩草在线视频| 100啪啪视频大全| 97在线免费视频观看| 97超视频在线观看| 日日黄色三级网站| 性欧美天天| 久久精品一区二区三区不卡| 中文激情网| 日韩欧美国产一区二区三区四区| 男女猛烈无遮掩视频免费软件| 91九九九小逼| 使劲用力艹少妇视频一区二区| 九九九久千久久激情蜜桃在线看 | 欧美78| 精品少妇一区二区三区免费观看| 无码又爽又硬又激情免费视频| 乱伦日本色图AⅤ| 黄色片,com| 大香蕉免费3| 日韩 国产 欧美自拍| 97极品无码| 婷婷婷婷婷婷久久久久| 在线免费观看日韩一区| 丰满岳乱妇一区二区三区 | 久久久久9999妇女| 九九九草| 久久中出在线| 人妻少妇精品久久久| 伊人激情| 久久久久中出| 久久亚洲天天做| 日韩精品第3页| 综合亚洲情色| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 少妇高潮喷水无套久久久久久| 日韩中文字幕av在线播放| 99青青草国产视频| 人妻熟妇久草在线| 天天干电影| 国产97在线视频| 中国一级αV| 操逼视频国产无套| 日韩精品一区二区日韩| 五月婷婷色| 中文字幕91综合| 成人综合网 欧美| 四虎AV影视国产精品亚洲精品| 国产成自自拍在线观看| 久肏视频字幕| 一本色道久久天天射天天干| 91精品久久久久久77777| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 国产久久久| 日曰骚久久精品| 97天天操| 国产第25页在线观看| 欧美性生活综合| 巨爆乳肉感一区二区三区竹菊影视| 99久久99九九99九九九| 国产精品亚洲四五区在线观看| 欧美老妇女内射网址| 夜夜青青无码影院| 久久蜜桃一区二区| 久久久久久久伊人精品| 大香蕉五月天| 伊人网在线视频| 欧美一级二级三级| 日韩大香蕉| 国产高清免费不卡av| 99热精品在线观看| 白 大 人妻 区 在线| 欧美人妖内射| 国产亚洲精品av一区| 伊人影院中文字幕| 91日产桃蜜| 欧美Aⅴ| 超碰av在线| 大乔未久88一区| 欧美综合91| 影音先锋中文字幕日本好一区二区| 久久久啊啊| 国模久久在线| 91精品啪在线观看国产城中村| 久久久99久9| 美女上床网站| 中文字幕精品日韩中文字幕| 天天日天天屌天天操| 国产97在线视频| 国产精品熟女丝袜一区二区| 91天天日| 国产高清自拍| 333kkkk·亚洲com久久| 啊啊啊啊操死我了| 欧美性爱18观看| 日韩天堂av电影在线观看| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 97爱| 999久久久九| 久久精品超碰| 九九色逼| 加勒比aⅴ| 国产精品无码av嫩草| 肥臀熟女福利视频一区二区| 久偷拍欧美日韩三区| 欧美亚洲中文| 三级三级三级日本99| 中出91视频| 国产精品久久久久久久黄无码| 久偷拍| 久久精品国产亚洲5555| 夜夜操二区| 97操碰| 日本色婷婷| 精品十八在线观看| 久久久com| 九九九成人| 欧美疯狂做爰xxxx| 欧美人妻一区二区| 午夜天堂精品久久久久91| 久操免费视频| 天天摸,夜夜摸| 九月伊人中文字幕| 哈哈操电影AV| 久久久久久久国产视频| 99热这里只有精品1| 综合色图区| 999久久久| 在线天堂999| 日韩性爱啪啪视频| 九九国产热| AV无码久久久精品| 久久粉色| 中文字幕乱码人妻一区二区三区,99精品 | 日韩免费中文字幕视频| 欧美性五月| 亚洲综合色男人网| 五月天玖玖资源站| 中文字幕一二三| 欧色综合| 亚洲精品一区二区三区新线路| 狠狠久久手机视频精品| 操逼短片| 精品国产乱码久久久久久影片| 亚洲欧洲成人在线电影| 老司机午夜精品福利视频一区二区| 久久99人妖视频国产| 青青草中文字幕| 熟女一区二区三区| 99热精品在线播放| 亚洲精品白浆高清久久久久久 | 91久久精品中文字幕| 久久婷婷一区| 91精品国久久久久久无码| 日本岛国黄色网址| 久久久久久69国产一区二区| 黑人在线91| 亚州色图欧美| 久久超碰久| 手机在线人成免费视频| 97超碰磁| 日韩一卡二卡三卡| 久男人久久| 一区,二区,三区网站| 男人高清无码一区二区| 呦呦一区| 成人性交免费视频| 亚洲素人综合| 日韩人妻精品中文字幕| 天天操女人| 亚洲国产欧美中文永久| 天天看天天在线精品| 欧美性暴力| 久久禁| 97日视频| 亚州色图狠狠干| 99无码视频| 亚洲欧美日韩精品久| 无码不卡八戒| 精品无码久久久久久久杏吧| 超碰美国| 青草精品视频日本久久久久网站在线| 日本超碰色精品| 日韩精品人妻中文字幕有码午| 久久色情| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 精品国产a∨一区天美传媒| 玖玖爱一区在线| 午夜福利久久久噜久噜久久综合 | 日韩午夜国产| 青青草色情网站视频| 男人下部插入女人下部| 亚洲熟女乱色| www.高清无码诱惑一区.com | 婷婷伊人| 日韩偷拍色图| 久久欧美1卡2卡3| 夜夜肏2021| 久久久18| 日本免费中文一区二区三区四区| 狠狠五月天| 色色色色网站| 亚洲成人碰碰| 人人妻人人操人人乐| 天天色悠悠激情| 99热超碰| 国产精品久久久777| 国产精品欧美激在线| 国产精品久久久777| 青青草在线视频欧美| 精品国产一区二区三区久久久蜜臀 | 69人妻人人揉人人躁人人精品| 色噜噜综合在线| 久久精品欧美一区蜜桃| 一区二区首页| 久久久久久裸体| 大香蕉中文网| 99久久精品国产系列| 亚洲黄色视频在线观看视频| 免费作爱一级视频| 亚洲AV免费在线| 亚洲欧洲偷拍一区| 久久久国产精品人妻丝袜| 久草热制服丝袜在线观看 | 日韩性爱视频免费在线| 人妻夜夜爽天天爽麻豆三区网站| 亚洲成人精品久久久| 91N综合在线| 久肏视频字幕| 成人自拍三级在线观看| 成人性爱电影一区二区| 人人操天天爽| 91中出在线| 视频一区二区免费在线| 欧美十八禁在线看| 97青娱乐超碰久久| 大香蕉日韩| 日韩精品一区二区高清| 九九精品热| 1204av韩国| 亚洲欧美日韩不卡人妻| 国产二区视频在线观看电影| 99在线免费观看| 免费网站观看www在线观| 另类老少妇| 中国AAAAAA黄色片| 青草视频在线看看看看看看看看看| 第四色色综合91| 综合色区偷拍| 人妻乱仑一区二区三区| 大香蕉宅男伊人| 99re视频在线播放青草| 在线中文字幕极品av| 亚州操操穴网| 啊啊啊啊免费视频| 日韩欧美亚洲一区二区三区影院| 日本裸体久久色噜噜| 亚洲黄色电影| 激情久久久| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 韩国黄片aaaa| 亚洲少妇色图自慰直播| www国产无码| 看一级黄色视频| 久久熟女久| 人人看人人插| 自拍欧美| 亚洲成aⅴ人片不卡无码| 亚洲色吧网| 啊啊啊骚| 久久草大香蕉| 中文字幕国产| 久99| 97天天| 激情综合婷婷| 久久东京热成人| 欧美日韩操逼嗦吊| 四虎精品亚洲| 欧美一区二区亚洲天堂| 密臀国产在线| 丁香婷婷啪啪| 清纯唯美综合| 日韩啪啪啪啪啪| 久久 精品| 亚洲五月天激情| 欧美激情1区| 伊人久久88国产女| 97精品久久| 116美女午夜| 午夜性生活av免费在线看| 无码99| 青青操网| 久久久禁| 欧美性爱在线无码| 国产老女人久久毛| 精品十三区| 香蕉热人人精品| 人妻熟妇久草在线| 五月婷在线| 天天做天天爱| 青青草精品| 夜夜天天噜狠狠爱2021| 老熟妇一区二区三区| 久久综合九九| 91av熟女人妻| 在线小说视频一区| 色妹子A V| 国产精品原创巨作?v网站| 青青草成人视频在线观看二区| 久久久久久国产无码精品| 91精品91久久久久77777| 婷婷六月色| 人妻精品视频一区二区三区| 久久噜| 国产玖玖| 永久免费发布性爱网| 青草伊人网| 后入 亚洲 美女 射| 亚洲另类小说卡通动漫| 亚洲国产日韩精品久久久| 超碰 另类 欧美| 美女写真| 亚洲天堂久久久久久粉红视频| 久久九七| 欧美在线视频99| 国产AV色黄看到爽| 人妻天堂网| 330dv亚洲成年视频网| 综合色图区| 岛国A V在线免费看| 日本道人妻久久久在线不卡色视频| 精精夜夜| 久久婷婷伊人| 色噜噜精品一区二区三| 欧美精品成人一区二区在线观看| 精品美女人人干| 美女黄页| 伊人亚洲国产一成人久久精品,久久| 91看黄片| 亚洲天堂男人的天堂| 国产精品国产| 国产传媒1234区| 激情网五月天| 亚洲中文一区二区三区视频| 91人妻精华帖| 国产午夜精品理论片一二三区区 | 色婷婷导航| 国产专区第一页| 人人人干干人人干| 97干在线| 亚洲天堂2020| 日本一二三免费久久| 亚洲男人天堂2016| 色女综合| 99国产精品在线观看| 婷婷色婷婷| 日本亚洲熟女视频| 日韩精品黄片免费观看| 尤物黄色在线观看网站| 性爱综合一区二区| 久久精品午夜国产亚洲AV无码| 97超碰欧美精品| 抽插一区二区视频| 欧美日韩不卡传媒| 噜噜噜亚洲精| 蜜臀AV一区二区三区| 中出20p| 天天搞欧美| 91热色| 尤物视频新赏网鲜网色诱网| 中文字幕第二页| 国产精品电| 色网亚洲人| 999国产精品999久久久久久| 美女91网| 啪啪啪综合网| 无码精品久久| 亚洲国产尤物yw在线观看| 免费精品中文字幕| 精品性爱一二三区| 久久HD| 日韩三级一区 | 熟女AV一区| 嗯嗯啊啊好大好爽| 另类图片五月天| 国产97在线播放| 亚洲欧美伦综合| 亚洲学生妹高清av| 日韩中文字幕精品一区在线| 中日韩熟女| 色情五月丁香| 欧美一区二区情色| 亚洲天堂日本| 这里只有精品97| 男人天堂网站| 十八禁av无码免费网站APP| 久久精品中文字幕观看| 综合五月婷婷| 91新在线欧美| 欧美亚洲清纯| 97精品久久| 日韩精品在线观看观看| 日日夜夜狠狠| 青青草五月天| 亚洲综合在线91| 五月天我淫我色av| 欧美国产日韩高清在线| 99久久无色码| 欧美黑人日韩少妇色情| 国产一国产一级毛片古装| 再深点灬舒服灬太大了添视频| 岛国成人av在线播放网址| 久久a久久| 国产一| 国产强奸乱伦第1页| 亚洲 一区二区 自拍| 夜夜操二区| 60秒免费小视频| 九九热三级片| 中文字幕精品资源在线| n1038 一二三区| 超碰97人妻自拍| 手机在线播放国产福利| 2020中文字幕| 国产尤物在线三区| 操逼啊啊啊91| 99re8超碰| AV中文字幕三四五| 人摸人人操人| 91美女视频在线| 亚洲色图一区二区三区| 久久婷婷综合国际产色怕| 91偷拍欧美亚洲| 日夜伊人网| www成人啪啪18秘 免费| 麻豆一区在线| 欧美传媒| 中文字幕一区二区三区蜜臀| 一区二区三区一亚洲中文字幕、综合区灬| 嗯啊视频免费在线观看| 黄色小说亚洲| 日本影视久久免费| 亚洲国产精品久久久久久久久久| 少妇久久久免费| 日韩图区 偷拍| 亚欧中文字幕在线视频| 国产精品999aaa| 久久女人一区二区三区| 久久久久女教师免费一区| 久久精品国产亚洲AV无码电影| 久久伊人青青草| 99re免费视频精品全部| 精品射1999| 操逼A∨| 欧美综合加勒比在线| 久操97| 爆乳免费黄网站| 中文字幕后石码四区五区| www久久久| 色九久| 精品久久久无码| 大香蕉一级黄色片久久| 伊人五月天青青草婷婷| 欧洲在线性爱视频| 久久熟妇五十路一区| 国产精品分类在线观看| 久久久婷| 男人高清无码一区二区| 男人天堂网手机版婷婷| 国产97色在线| 亚洲色阁| 综合网欧| 亚洲精品影视老司机| 欧美性Fer办公室秘书| 免费A V在线| 蜜臀AV午夜精品久| 久久的网站啊啊啊啊啊| 91午夜无码| 国产熟女自拍| 99亚亚热| 91影库| 91AV国产精品| 国产高清1234区| 成人一级性爱| 2020天天色综合| www.狠狠干.coom| 翔田千里爆乳巨臀无码| 久久少妇人妻| 色99视频| 午夜福利一区二区影院| 久久久9 9 9精品| 激情文学网伊人| 少妇一区二区三区精选| 亚洲色天堂九9| 丁香激情网| 中文字幕AV乱伦| 日韩无码服务区| 四月丁香婷婷| 日本一本道A级黄色毛片试看60分钟| 台湾佬大香蕉| 久久中出在线| 色99在线| 天天操天天干一区二区| 欧美激情精品| 亚洲熟女偷拍在线观看| 伊人天堂在线| 美国aaaaa一级黄片| 欧美黄业| 91欧美丝袜| 密臀在线免费观看| 乱伦熟女区| 100啪啪视频大全| 九九九九热只有精品| 美腿丝袜高跟网免费视频免费视频| 爆操无码| 成人97人人超碰人人| 99热这里都是精品| 激情黄色五月天| 天天操女人| 97福利视频| 亚洲 一区二区 自拍| 熟女探花啪啪| 丰满人妻-区二区三区免费看 | 国产操偷| 日B操| 亚洲熟女av中文字幕| 色哟哟av网址| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 精品久9| 青青草在线视频美女| 久久国产对白激情浪潮| 偷拍网站久久男女男| 九九热超碰| 911粉嫩人妻| 亚洲啪啪视频一区二区| 狠狠操官网| 91精品国产91久久福利| 九九亚洲| 亚洲国产97| 久久精品28| 欧美激情 亚洲色图| 蜜桃臀一区二区aV| 久久人妻无码毛片A片麻豆| 啊啊啊啊啊啊啊好爽不要| 欧美最婬乱婬爆婬性视频 | 欧美97在线欧| 亚洲色图欧美| 久久超碰网| 欧美人妻少妇| 日本久久女同性恋视频| 91色综合| 日韩强奸av| 久久性爱视频99| 青青免费在线视频一区| 无码一区二区精品视频久久久春药 | 国产精品久久天天干| 乱伦日本中文自拍| 岛国1区2区3区在线观看| 精品国模无码| 秋霞成人一级在线观看| 欧美日韩免费性爱| 18禁网站在线播放| 自拍大香蕉乱插| 亚洲国产成人高清在线| 婷婷色网| 91是天天| 粉嫩AV一区夜夜嗨| 一二视频神马久久传媒| 校园春色美腿丝袜| 欧美性夜| 香伊人在线| 在线国产福利网址导航| 90后性网国产欧美| 欧美1727免费观看视频| 日本97久久久精品| 日韩人人精品| 精品传媒在线一区| 99视频这有这里有精品| 日韩一区二区三区四区五区| 99热这里只有精品99| 好淫网一二三视区| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 欧美18 在线观看| 岛国毛片手机在线观看| 97av在线视频| 啊啊啊好舒服好爽啊啊啊视频| 中文字幕视频免费| 美女久久久久久久久久久| 日韩黄片影院| 久热久| 日日夜夜国产综合| 男人天堂.AB| 亚州 综合 色图| 美国一区二区三区视频| 亚洲精品三| 中文操嬖片。| 九九av| 老熟女熟妇| 黄站在线免费观看| 超碰在线人妻中文字幕| 欧美精品1区2区3区| 久操99| 久热精品在线| 免费福利视频中文字幕| 婷婷亚洲综合| 青青草日韩免费观看高清在线| 伊人久久AV诱惑悠悠| 在线观看免费视频国产| 久青草影院| 试看60秒| 在线播放成人高清免费视频| 蜜桃无码AV一区二区| 欧美综合色站| 99999re| 1769精品一区二区三区| 自拍视频大全亚洲专媒视频/一区二区三区 | 熟女视频久久| 亚洲揄拍网| 精品九九| 狠狠狠狠狠狠| nuu12国产麻豆精品| 国产中文字幕在线点播| 国产精品老熟女一区二区| 日韩资源网| 日韩免费中文字幕视频| 首页亚洲国产高跟丝袜诱惑视频| 亚洲天堂资源| 狠狠中文字幕| 日本伦理一区二区| 大香蕉中文在线| 亚洲欧洲国产综合av| 亚洲91网站| 精品美女久久久久| 殴美牲| 国产白丝AV| 5月婷婷6月六月丁香| 鸥美极品| 人人操人人插人www| 欧美97日韩| 亚洲国产一级黄色视频| 九月丁香婷婷| 日韩欧美亚洲自拍偷拍| 亚洲情色第一页| 天天综合网~91| 九九九九久久久| 玖玖久久久| 日韩人妻精品久久久久| 变态综合色| 六月丁香啪啪| 久久岛国| 久久侵犯人妻爽爽爽| 超碰97人妻在线| 极品白嫩福利在线| 日本性感人妻91| 麻豆久久久久久久久丝袜 | 婷婷五月天激情网| 久久久成人免费av电影| www.av在线观看| 老司机香蕉| 亚洲天堂人妻一区二区| 国产一级内射高清视频| 久久久久久久九九九九九九| 日韩欧美亚欧在线视频| 99青青草国产视频| 久草视频观看视频在线| 精品一区二区久久| 色五月综合网| 亚州综合| 亚洲色悠悠久久88| 免費黃色視頻觀看一| 青草精品视频日本久久久久网站在线| 久操综合在线| 中文字幕乱码人妻二区三区| 久湿久久| 久久久人妻| 强奸乱伦 亚洲一区| 91色堂| 六月丁香啪啪| 乱伦熟女专区| 久久久成人免费av电影| 九九九九九九九精品视频| 97超碰人人模人人拍人人| 97在线观视频免费观看| 曰韩av中文字幕专区| 亚洲97综| 日产123区精品免费观看| 久热大香蕉| 国产精品白领在线观看| 啊啊啊啊啊好舒服视频| 国产原创自拍| 艹精品| 国产视频第二页| 东北女人的毛片| 十八禁视频网站| 黄色AV免费| 校园春色美腿丝袜| 91欧美偷拍| 成人AV在线电影| 日韩高清黄片| 国产一区在线看| 久久一本大香蕉| 蜜桃视频精品一区二区| 日韩 欧美 另类 人妻| 亚洲少妇在线观看| 老司机午夜精品福利视频一区二区| 欧美精品四区| 亚洲欧美日韩精品久久久一区二区 | 深夜国产一区二区三区在线看 | 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 日韩紧密久久| 2018色综合天天操| 一本精品日本在线视频精品| 五十路一区无码| 91青青在线视频| 日产中文字幕2020| 999久久久精品国产| 国产久久av| 翔田千里爆乳巨臀无码| 日韩十八禁| 久超碰这里只有精品| 国产欧美日韩臀| 国产亚洲 中文欧美久久| 久久久久国产一区二| 黄色人人| 立川理惠被中出无码| 久久久精选| 日韩欧美中文字亚洲慕| 欧美78| 日日骚 av| 男人的天堂在线2| 日韩有码免费视频| 99色色网| www.色五月| 亚洲操人| 天天操天天舔| 日本Xx性爱| 淫荡少妇免费| 大香蕉专区| 国产专区第一页| 可以在线观看的黄色网址| AⅤ片水多多| 富女玩鸭子一级毛片| 五月亭亭六月丁香| 伊人天天久久动态图| 97欧美| 天天日天天干天天操| 亚洲全色网| 婷婷久月| 亚洲精品久久久久毛片A片拉屎 | 久久香蕉国产线看观看亚洲女人 | av操操不卡| 97干色天堂| 久久中文色图| 秋霞午夜视频一区二区| 热热热热日日漂亮永久永久国产日| 欧美国产视频| 夜夜嗨绯色| 蜜桃狠狠色伊人亚洲综合| 97热视频在线观看| 女同性恋中文字幕| 九七超碰人人乐| 国产三级片在线观看| 97视频在线看| 国产精品午夜福利亚洲综合网| 日韩免费中文字幕视频| 国产黄色在线播放观看| se01国产在线视频| 激情小说成人日本无码一| 国产精品无码论坛| 亚洲综合五月天| 在线女人91| 超碰538| 四虎影视国产精品| 免费观看一区| 亚洲精品国产无码高清| 久久夜黄色无码A级大片| 91麻豆va国产精品| 亚洲美女精品| 欧美在线中M| 91欧美网| 曰韩操B| 婷婷中文字幕| 曰本熟女视频| 偷拍亚洲视频一区二区三区四区| 国产伦精品| 国产成年女人免费视频播放a| 国产尤物AV尤物在线观看不卡| 九九色热| 黄色十八禁网站| 在线洲亚线| Sekablack无码一区| 多乙久久久久久| 久久久草成人网站久久久草成人久久久草久久久 | 97 九色| 久久久偷拍| 日本性爰一道本| www.色婷婷| 99re只有精品| 999热日韩精品| 91色人妻| 人人爱操| 夜夜 中文视频rt| 日本一二区不卡| 国岛片视频| 日韩精品人妻系列无码天堂| 99国产精品自在自在| 张柏芝国产一区在线观看| 亚洲av综合色区无码一| 久操黄色视频| 中文字幕熟女人妻丝袜丝| 国产视频一区二区三区在线免费观看| 激情五月天丁香| 91少妇香蕉久久精品| 九九九九精品九九九九| 人人操人人摸人| 国产精品久久久久绯色| 亚洲综合色图欧美| 成人aⅴ一区二区三区| 色综合中文字幕不卡| 色777999综合| 无码高清国产AV| 日本精品88888888| 欧美啪啪色吧在线| 5278欧美一区二区三区| 日韩午夜国产| 国产美女在线精品免费看| 开心五月婷婷激情| 蜜臀th| 欧美αv.com| 另类亚洲图色| 97欧美视频| 性爱视频久久| 九九五月天| 看日韩操逼| 丝袜狂射91| 亚洲熟女性高潮久久久| 96爱综合| 伊人一级免费黄片| 97超碰jingpin| 天久久久噜噜噜久久国产精品爽爽| 亚洲AV无码国产成人| 欧美91久久久久| 国产精品无码久久久久2028| 国产精品久久久777| 黄色免费网| 91人妻丝袜无码| 久久久久久网址| 人妻夜夜爽天天爽麻豆三区网站| 91亚洲人| 天天综合网国产| 老女人综合网| 人妻精品综合中文字幕在线| 九热中文字幕| 天美国产三级传媒| 欧美色狠| 67914在线精品观看| 国产91影院| 亚洲综合影片| 国产美女销魂在线观看不卡| 久久久久9999妇女| 少妇无码av专区线| 亚洲 另类 丝袜 自拍 动漫| 日韩人妻制服丝袜av| 日本熟妇精品九九| 日本www操操操| 色网亚洲人| 中文字幕黑人大片| 熟妇综合一区二区三区| 激情亚洲天堂| 亚洲最大成人a毛毛片| 欧美综合传媒| 久操婷婷| 精品无码秘 人妻一区二区| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 日韩精品字幕| 色在线69堂| 狠狠色综合网| 国产一国产一级毛片古装| 久操 高清| 亚洲黄色a级片| 九九九久久久W精品| 人人喜人人妻| 国产成人无码啪| 国产黑白丝在线| 欧美大香蕉卡久久| 三级特黄60分钟播放| 亚洲脚交| 啪啪视频mP4| 在线观看亚洲专区| 91丝袜| 使劲用力艹少妇视频一区二区| 黄片在线免费在线观看| 亚洲欧美999| 色臀aV| 一道本久久棕合爱| 强奸国产在线| 国产精品扒开腿做爽爽爽视频| 天天舔九色婷婷| 337p大胆噜噜噜噜噜91Av| 日韩综合无码一区久久92| 日日日大屁股骚女人精品| 亚洲AV免费在线| 久久久久久久伊人精品| 黑人性暴力毛片| 中文乱码99| 97福利视频| 欧美亚洲第一页| 黄页| 日日干夜夜欢| 国产白领连续中出在线观看| 蜜乳性色无码专日粉嫩骚逼AV| 蜜臀99久久精品久久久久| 黄色一区三区| 99综合自拍| 日韩精品一二三四| 欧美久久伊人| 国产乱伦性爱区| 97欧美视频| 日本布卡一区二三区| 日本黄色裸日本黄色裸体| 久久天堂婷婷网| 黄色视频特级毛片| 亚欧免费| 日产操逼| 国产美女自拍视频| 丰满欧美放荡少妇在线| 久久精品72| 亚洲熟妇图片| 9九九九九视频在线观看| 手机在线观看不卡无码av| 日韩黄片影院| 啊啊啊好多水| 另类欧美色| 蜜桃网熟妇| 九九av| 成人熟女区| 日韩懂色网| 久久久久9久久久久| 99热这里只有精品8| 爱做久久久久久| 把腿张开老子CAO烂你| 青娱乐欧美激情一区二区| 国产欧美在线观看免费观看| 久久久日本电影| 人妻熟女一区二区三区视频| 亚洲天天精品| 97超碰中文| 加勒比东京热五月天天堂网| 国产精品视频播放| 欧美综合加勒比在线| 嗯嗯,啊啊,国产精品| 日韩97超碰中文字幕| 日韩三级一区 | 日韩性爱一级片| 日本阿v天堂在线观看| 亚洲图片欧美色| 97香蕉网| 日韩av在线精品观看| 在线αⅴ| 国内毛片国产欧美拍| 国产黄色视频久久| 免费αV在线视频| 在线无码视频| 欧美一区二区三区入口| 精品无码不卡视频| 中国zzijzzijzzwww精品| 亚洲 自拍偷拍 欧美| 高清无码 国产精品| 日本视频在线观看污污污| 播播亚洲小说亚洲| 亚洲中文字幕av| 91美女中出| 天操天操夜操夜月操月年年操|