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

ARTICLE DETAIL

資訊詳情

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

PyTorch實戰(zhàn):從零構建食物圖片分類器的完整記錄

PyTorch實戰(zhàn):從零構建食物圖片分類器的完整記錄 從零搭一個食物圖片分類器我的 PyTorch 入門實戰(zhàn)記錄想入門 PyTorch但又不想只跑個 MNIST 就完事那食物圖片分類是個特別合適的練手任務。它既不像 MNIST 那樣簡單到沒有成就感也不像 COCO 檢測那樣一上來就需要分布式訓練和多卡策略難度剛好卡在一個“跳一跳夠得著”的位置。這篇文章是我自己從零開始實現一個食物圖片分類項目的完整記錄包含數據集整理、預處理細節(jié)、模型選型、訓練循環(huán)手寫、調參經驗、踩坑復盤。項目本身不復雜但能把 PyTorch 的日常工作流全部過一遍。做完之后你會發(fā)現后面再去碰遷移學習、目標檢測、語義分割這些任務底子已經打得差不多了。適合誰看剛學完 Python 基礎、看過幾篇 PyTorch 教程但沒完整做過項目的朋友以及想用一份清晰代碼把“訓練-評估-預測-模型保存”整條鏈路跑通的人。如果你是資深煉丹師這篇文章可能偏基礎但里面有幾個關于數據加載和調參的坑也許能讓會心一笑。1. 項目整體拆解食物分類到底在解決什么問題1.1 食物分類任務的核心難點食物圖片分類本質上是一個圖像分類問題模型要做的就是輸入一張圖片輸出它屬于哪個類別。我這邊定了 10 個常見食物類別面包、乳酪、冰淇淋、蘋果、香蕉、玉米、胡蘿卜、煎蛋、米飯、意面。聽起來和 CIFAR-10 很像但實際做起來有幾個地方和普通分類不一樣。第一是類內差異大。同樣是米飯有炒飯、白米飯、蓋澆飯顏色、紋理、擺盤方式完全不同。同一個類別里的圖片可能比不同類別之間的差異還大這對模型的特征提取能力提出了要求。第二是類間相似度高。胡蘿卜和玉米都是長條形的蘋果和番茄都是圓形的僅僅靠顏色或者形狀一個維度的特征根本分不開。這也是為什么傳統(tǒng)手工特征做食物分類效果一直不好的原因需要模型自己去學更抽象的組合特征。第三是數據噪聲多。食物圖片來自真實生活場景有餐盤、桌面、餐具、手指、光影干擾甚至有咬過一口的蘋果。如果只用干凈的商品圖訓練到了真實場景基本就崩了所以數據增強在這個任務里不是可選項而是必需品。1.2 為什么選擇 PyTorch 而不是其他框架做這個項目我選 PyTorch不是因為別的框架不行而是因為 PyTorch 的調試體驗對新手最友好。最核心的一點是動態(tài)計算圖。模型跑起來之后你可以隨時在任意一行代碼處打斷點查看中間張量的 shape、dtype、梯度值改完代碼不用重新構建整個圖就能繼續(xù)跑。這種交互式的開發(fā)體驗對新手理解“前向傳播-反向傳播”的整個過程特別有幫助。你自己手寫一個訓練循環(huán)比用任何高層封裝都更能理解框架內部發(fā)生了什么。另外 PyTorch 的生態(tài)在視覺領域是最完整的。torchvision 模型庫、transform 工具、預訓練權重、各類第三方擴展基本上你能想到的視覺處理需求都有現成的輪子。社區(qū)討論也多遇到問題搜一下大概率能找到答案。1.3 整體技術選型與管線設計整個項目按下面這條管線走數據采集與整理 - 預處理 Pipeline - DataLoader 構建 - 模型選型 - 訓練循環(huán)實現 - 評估與保存 - 單張圖片推理硬件方面我用的是一塊顯存 8GB 的中端顯卡。這個配置訓練 10 分類的 ResNet18 完全夠用Batch Size 開到 64 也沒壓力。沒有 GPU 也能跑就是慢一些CPU 模式下建議用更小的模型或者把圖片尺寸降下來。軟件環(huán)境方面PyTorch 版本用的 2.1Python 3.10torchvision 0.16??蚣軆炔康慕涌谶@兩年有些變化我代碼里會加一點兼容性說明如果你用的版本不一樣大概率也能對上。2. 數據集準備與預處理這步做不好后面全白搭2.1 數據集來源與整理方式數據是分類任務的命根子。我沒有直接用某個現成的食物數據集而是從一個開源圖片平臺上抓取標注好的食物圖片再結合一部分自己手拍的圖片做補充。整理成下面這樣的目錄結構food_dataset/ ├── train/ │ ├── bread/ │ ├── cheese/ │ ├── ice_cream/ │ ├── apple/ │ ├── banana/ │ ├── corn/ │ ├── carrot/ │ ├── fried_egg/ │ ├── rice/ │ └── spaghetti/ └── val/ ├── bread/ └── ...每個類別我收集了大約 300 張訓練圖和 80 張驗證圖。這個數據量對于初學者完全夠用了如果再少可能需要更強的數據增強或遷移學習來兜底。目錄按類別分好之后用 torchvision.datasets.ImageFolder 就可以直接讀取它會把子目錄名自動映射成類別標簽。這里有個關鍵點子目錄的命名盡量用英文避免編碼問題導致讀取錯誤因為某些系統(tǒng)對中文路徑默認編碼是 GBKPyTorch 底層用的是 UTF-8碰到中文目錄名容易臨時找不到文件。2.2 預處理 Pipeline 的幾個關鍵細節(jié)預處理是整個項目最容易忽略但影響最大的部分。torchvision 的 transform 流水線我這樣定義from torchvision import transforms train_transform transforms.Compose([ transforms.RandomResizedCrop(224, scale(0.6, 1.0)), transforms.RandomHorizontalFlip(), transforms.RandomRotation(15), transforms.ColorJitter(brightness0.2, contrast0.2, saturation0.2), 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]) ])訓練集用了 RandomResizedCrop這一步很關鍵它不僅僅是裁剪還會隨機改變圖片的縮放比例和寬高比相當于做了模擬距離變化和拍攝角度的增強。scale 參數我設成 (0.6, 1.0)意思是裁剪區(qū)域占原圖的 60% 到 100%。這個區(qū)間對食物比較合適太低了把整個食物裁掉一半反而引入無效噪聲。歸一化的 mean 和 std 直接用 ImageNet 的統(tǒng)計值因為我們后面會加載 ImageNet 預訓練權重輸入分布必須和預訓練時一致否則前期微調階段梯度會不穩(wěn)定收斂慢很多。驗證集一定不要用 RandomResizedCrop。很多新手在驗證集也上隨機裁剪導致每次評估同一張圖都可能得到不同的預測結果最后模型得分忽高忽低根本沒法判斷好壞。驗證集用 Resize 到 256 再 CenterCrop 到 224這個流程是 ImageNet 分類任務的標配好處是既保留中心主體信息又統(tǒng)一了輸入尺寸。2.3 數據劃分與 DataLoader 的優(yōu)化配置數據劃分我是直接在目錄結構層面完成的訓練和驗證獨立文件夾簡單可靠。沒有做 K 折交叉驗證因為對初學者來說單次劃分配合早停法已經足夠判斷模型好壞。DataLoader 的配置里有幾個參數值得注意from torch.utils.data import DataLoader train_loader DataLoader(train_dataset, batch_size64, shuffleTrue, num_workers4, pin_memoryTrue) val_loader DataLoader(val_dataset, batch_size64, shuffleFalse, num_workers4, pin_memoryTrue)num_workers 設為 4在我的機器上數據加載和訓練基本可以并行GPU 不會因為等數據而空轉。這個參數不是越大越好太多進程反而會增加 CPU 調度開銷和內存占用。經驗值一般是 CPU 核心數的一半左右如果你的機器是 8 核設 4 是安全的起點。pin_memoryTrue 也很重要它把數據加載進鎖頁內存從 CPU 拷貝到 GPU 時會走更快的 DMA 通道。代價是占用一部分固定內存但性能收益在數據量大的時候非常明顯。這里有個小坑如果你的內存只有 8GB數據又特別大的情況下pin_memory 可能導致內存壓力過大那就別開。3. 模型構建從手寫網絡到 ResNet 遷移學習3.1 模型結構選型與對比模型選型我認真對比過三個方案。第一個方案是自己寫一個三層卷積網絡結構像這樣import torch.nn as nn class SimpleCNN(nn.Module): def __init__(self, num_classes10): super().__init__() self.features nn.Sequential( nn.Conv2d(3, 32, kernel_size3, padding1), nn.ReLU(inplaceTrue), nn.MaxPool2d(2), nn.Conv2d(32, 64, kernel_size3, padding1), nn.ReLU(inplaceTrue), nn.MaxPool2d(2), nn.Conv2d(64, 128, kernel_size3, padding1), 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))這個網絡在 CIFAR-10 這種小圖上可以跑一跑但換到 224x224 的食物圖片上三層卷積的視野范圍太小提取不到足夠抽象的語義特征訓練兩輪就能看到驗證準確率卡在 60% 左右上不去。這就是典型的模型容量不足。第二個方案是用 torchvision 里現成的 ResNet18from torchvision import models model models.resnet18(weightsmodels.ResNet18_Weights.IMAGENET1K_V1) num_ftrs model.fc.in_features model.fc nn.Linear(num_ftrs, 10)這里最關鍵的一行是 model.fc nn.Linear(num_ftrs, 10)它把 ResNet18 原來的 1000 類分類頭換成了我們自己的 10 類分類頭。前面的卷積層依然保留原來的參數這些參數已經在 ImageNet 上學會了通用的邊緣、紋理、形狀特征相當于省掉了從頭學特征的時間。第三個方案是 ResNet34。比 ResNet18 多了一層殘差塊參數量大一些但在這個 10 分類小數據集上提升不明顯反而訓練速度更慢。最終我選擇 ResNet18這個選擇非常穩(wěn)妥預訓練權重齊全、顯存占用小、推理速度快后續(xù)還可以拿它做實時 demo。3.2 遷移學習的三層境界用預訓練模型做遷移學習不同階段策略不一樣。最簡單的做法是凍結卷積層只訓練分類頭。具體操作是將前面所有參數的 requires_grad 設為 False只有最后一層保持 Truefor param in model.parameters(): param.requires_grad False for param in model.fc.parameters(): param.requires_grad True這樣做的好處是訓練速度極快因為反向傳播只經過最后一層梯度計算量小。缺點是特征提取網絡是固定的無法針對食物數據做自適應優(yōu)化。如果數據量少這個方法很管用我在 300 張每類的數據集上試過驗證準確率大概能到 75%。更常用的做法是解凍部分網絡做全參數微調。做法就是什么都不用改全網絡參數都保持可訓練但把學習率調小。因為如果從頭到尾都用默認學習率 0.01 訓練預訓練模型前面卷積層的預訓練特征會被破壞。我用的是不同層不同學習率的方法fc_params model.fc.parameters() conv_params [param for name, param in model.named_parameters() if name not in {fc.weight, fc.bias}] optimizer torch.optim.SGD([ {params: conv_params, lr: 1e-4}, {params: fc_params, lr: 1e-3} ], momentum0.9)這樣卷積層用一個較小的學習率微調分類頭用一個較大的學習率從頭學。經驗證明這樣做比全局統(tǒng)一學習率效果更好能兼顧特征適配和分類器收斂速度。還有一個進階做法叫層級解凍就是把網絡從后往前逐步放開訓練每訓練幾個 epoch 解凍一層。實際操作中感覺收益性價比不高在數據集不太大的情況下全參數微調 小學習率就已經很好了。3.3 損失函數、優(yōu)化器與評估指標的選擇分類任務最常用的損失函數是交叉熵損失criterion nn.CrossEntropyLoss()這個函數把模型的原始輸出 logits 和標簽作為輸入內部自動完成 softmax 計算和交叉熵運算。需要注意模型輸出的是 logits不要在外面再包一層 softmax。新手經常犯這個錯誤導致訓練初期損失值異常地高因為 softmax 之后再算交叉熵數值穩(wěn)定性會變差。如果需要在推理時得到概率輸出那是在模型輸出之后單獨調 softmax而不是加在模型結構里。優(yōu)化器我最終選了 SGD 而不是 Adam。很多人覺得 Adam 好收斂快但是 SGD 在配合動量之后泛化能力往往比 Adam 好尤其在數據量不大的情況下。學習率我設成 0.001 起步配合余弦退火調度器。評估指標不能只看準確率。食物分類的類別不均衡問題不嚴重但為了更穩(wěn)妥我還是同時監(jiān)控每個類別的準確率和 Macro F1。準確率容易給人一種“模型已經很好”的錯覺因為如果某幾個類別特別簡單模型會靠它們拉高整體準確率但真正難的類別可能完全沒學會。4. 訓練循環(huán)手寫與參數調優(yōu)模型的成長過程4.1 一個標準訓練循環(huán)的完整實現我堅持手寫訓練循環(huán)不用任何高層封裝。原因很簡單訓練循環(huán)是 PyTorch 的心臟不手寫一遍就永遠隔著一層紗。完整代碼如下import torch device torch.device(cuda if torch.cuda.is_available() else cpu) model model.to(device) best_val_acc 0.0 epochs 30 for epoch in range(epochs): model.train() running_loss 0.0 correct 0 total 0 for images, labels in train_loader: images, labels images.to(device), labels.to(device) optimizer.zero_grad() outputs model(images) loss criterion(outputs, labels) loss.backward() optimizer.step() running_loss loss.item() _, predicted torch.max(outputs.data, 1) total labels.size(0) correct (predicted labels).sum().item() train_loss running_loss / len(train_loader) train_acc 100.0 * correct / total # 驗證階段 model.eval() val_loss 0.0 val_correct 0 val_total 0 with torch.no_grad(): for images, labels in val_loader: images, labels images.to(device), labels.to(device) outputs model(images) loss criterion(outputs, labels) val_loss loss.item() _, predicted torch.max(outputs.data, 1) val_total labels.size(0) val_correct (predicted labels).sum().item() val_acc 100.0 * val_correct / val_total print(fEpoch {epoch1:02d} | Train Loss: {train_loss:.4f} | fTrain Acc: {train_acc:.2f}% | Val Acc: {val_acc:.2f}%) if val_acc best_val_acc: best_val_acc val_acc torch.save(model.state_dict(), best_model.pth)這一段代碼里有幾個細節(jié)必須說明。model.train() 和 model.eval() 很重要。這兩個模式切換直接影響 BatchNorm 和 Dropout 的行為。train 模式下 BatchNorm 會使用當前 batch 的統(tǒng)計量Dropout 會隨機丟棄神經元eval 模式下 BatchNorm 使用累計的全局統(tǒng)計量Dropout 被關閉。如果不切換到 eval 模式驗證時結果會不穩(wěn)定這是個常見坑。with torch.no_grad() 讓驗證階段完全不計算梯度。這能省下大量顯存和計算時間。在驗證階段我們只需要前向傳播不需要通過 loss.backward() 更新梯度所以直接開啟無梯度模式。optimizer.zero_grad() 放在前向之前每次迭代都清空梯度。如果不調用這個梯度會累加在某一步更新的時候用的就是幾個 batch 的累積梯度訓練過程會變得極度不穩(wěn)定。PyTorch 不會自動清梯度這一點和有些高層框架不一樣必須手動清。驗證準確率超過歷史最好就保存模型。我每次 epoch 結束都檢查一次保存的時候只保留 val_acc 最高的那一次。這種“早停 快照”策略比無條件跑完所有 epoch 更穩(wěn)妥后面加載到的最佳模型不需要再人工挑選。4.2 超參數調優(yōu)的完整記錄學習率是最關鍵的超參數。我做了三次對比實驗學習率優(yōu)化器最終驗證準確率訓練穩(wěn)定性0.1SGD62%波動大后期發(fā)散0.01SGD78%前期震蕩后期穩(wěn)定0.001SGD85%平穩(wěn)上升穩(wěn)定收斂0.001Adam84%收斂最快但后期略波動0.1 這個學習率對于遷移學習來說太激進了。因為預訓練權重的特征已經很好學習率太大一步跨過頭就把原有知識破壞了。0.001 是遷移學習微調階段比較安全的選擇。Batch Size 的影響我也對比了。Batch Size顯存占用訓練速度穩(wěn)定性16約 1.5GB最慢震蕩劇烈64約 3GB快平穩(wěn)128約 5GB最快有些微震蕩太小 batch 會產生比較大的梯度噪聲訓練震蕩明顯。最后我選 64因為它在我的 8GB 顯存卡上留下了充足的余量還可以順便開個并行的驗證程序。優(yōu)化器動量我設為 0.9這是一個經驗上幾乎不需要調的默認值SGD 加動量能在保證梯度方向穩(wěn)定的同時加快收斂速度。4.3 過擬合的判斷與應對方法訓練過程中我在第 5 個 epoch 開始觀察到訓練準確率接近 90%但驗證準確率只有 72%。這就是過擬合的典型信號。食物圖片分類數據集量不算大模型容量又大過擬合幾乎是必然的。我從兩方面來應對。第一是數據增強。項目已經掛了 RandomResizedCrop、RandomHorizontalFlip、RandomRotation、ColorJitter這些都屬于基礎操作。為了再強化我給訓練集加了一個 MixUp 增強import numpy as np def mixup_data(x, y, alpha0.2): if alpha 0: lam np.random.beta(alpha, alpha) else: lam 1 batch_size x.size()[0] index torch.randperm(batch_size).to(device) mixed_x lam * x (1 - lam) * x[index] y_a, y_b y, y[index] return mixed_x, y_a, y_b, lamMixUp 的思路是把兩張圖片按比例混合標簽也跟著混合。比如一個蘋果和一張香蕉按 0.7:0.3 混合模型要學到的是這個混合圖片有 70% 的蘋果和 30% 的香蕉。這樣模型被迫學習軟標簽決策邊界更加平滑不容易陷入尖銳的過擬合狀態(tài)。第二是Dropout 和權值衰減。ResNet18 本身已經帶了全局平均池化對于防止過擬合有一定幫助。我在分類頭前面加了 Dropout(0.2)并且設置了 weight_decay1e-4也就是 L2 正則化限制權重的絕對值大小。加了這兩層保護后驗證準確率有 3-4 個百分點的提升。5. 訓練過程中踩過的坑與排查實錄5.1 顯存不足的排查過程第一次跑 ResNet18 加 batch 128大概在訓練到第 3 個 epoch 時爆了顯存。報錯信息是 CUDA out of memory。我的排查步驟是這樣的先看是不是常量緩存占用的顯存用 torch.cuda.empty_cache() 清一輪再試確認不是緩存問題后把 batch size 降到 64顯存占用從 5.2GB 降到 3GB。問題解決。這里有一個額外的技巧如果只是顯存峰值爆掉可以開啟 PyTorch 2.0 的自動混合精度訓練float16 半精度計算會把顯存占用差不多減半。代碼如下from torch.amp import autocast, GradScaler scaler GradScaler() for images, labels in train_loader: images, labels images.to(device), labels.to(device) optimizer.zero_grad() with autocast(device_typecuda): outputs model(images) loss criterion(outputs, labels) scaler.scale(loss).backward() scaler.step(optimizer) scaler.update()混合精度對我來說不僅是顯存優(yōu)化更是訓練加速手段。我那臺顯卡的 FP16 計算速度接近 FP32 的兩倍整個訓練時間縮短了接近一半。初學者不用害怕這個 API 復雜直接用就行內部機制暫時不需要完全搞懂。5.2 訓練不收斂的問題排查有段時間模型 loss 一直停留在 2.3 左右準確率始終在 35% 上下像是卡住不動。我排查過后發(fā)現問題出在學習率預熱缺失。遷移學習微調時如果一開始就用中等偏大的學習率預訓練特征會在早期被大幅擾動導致 loss 飆升后無法恢復。解決辦法是在前幾個 epoch 用很小的學習率做預熱from torch.optim import lr_scheduler def warmup_lr(epoch, warmup_epochs3, base_lr0.001): if epoch warmup_epochs: return base_lr * (epoch 1) / warmup_epochs return base_lr scheduler lr_scheduler.LambdaLR(optimizer, lr_lambdawarmup_lr)前 3 個 epoch 學習率從 0 逐漸升到 0.001之后再正常訓練。加了這一層預熱后模型在第一個 epoch 的 loss 就降到了 1.5 附近訓練明顯走上了正軌。另一個不收斂的常見原因是標簽問題。我檢查了一遍標簽映射發(fā)現 ImageFolder 是按文件名排序的目錄名順序和類別數組順序可能不一致。排查方法是打印前幾個樣本的標簽和類別名對齊關系確認無誤后再訓練。5.3 數據加載慢與 CPU 瓶頸訓練過程中 GPU 利用率經常掉到 60% 左右看代碼邏輯應該是數據加載跟不上。我用 num_workers4 解決了這個問題。注意幾個細節(jié)workers 不是越多越好。我試過 num_workers8GPU 利用率沒明顯提升反而程序啟動變慢偶爾還會出內存錯誤。因為我那臺機器還要跑其他服務8 個進程把 CPU 占滿了。還可以開啟驗證集數據的 preload把整個驗證集一次性加載進內存# 緩存驗證集到顯存減少重復 IO val_images torch.cat([batch[0] for batch in val_loader], dim0).to(device) val_labels torch.cat([batch[1] for batch in val_loader], dim0).to(device)驗證集圖片數量少幾百張圖占不了多少顯存但節(jié)省每次驗證時反復從磁盤讀文件的 IO 時間。實際體驗是每個 epoch 的驗證時間從 15 秒降到了 3 秒。6. 推理部署與結果分析模型到底學到了什么6.1 單張圖片推理的完整流程訓練完以后我把模型保存成文件然后做了一個簡單的推理腳本。推理過程是獨立于訓練的模擬真實使用場景。import torch from torchvision import transforms, models from PIL import Image device torch.device(cuda if torch.cuda.is_available() else cpu) model models.resnet18(weightsNone) num_ftrs model.fc.in_features model.fc torch.nn.Linear(num_ftrs, 10) model.load_state_dict(torch.load(best_model.pth, map_locationdevice)) model.to(device) model.eval() class_names [bread, cheese, ice_cream, apple, banana, corn, carrot, fried_egg, rice, spaghetti] 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]) ]) img Image.open(test_food.jpg).convert(RGB) img_tensor transform(img).unsqueeze(0).to(device) with torch.no_grad(): outputs model(img_tensor) probabilities torch.softmax(outputs, dim1) top_prob, top_class torch.topk(probabilities, k3) for i in range(top_prob.size(1)): idx top_class[0][i].item() print(f{class_names[idx]}: {top_prob[0][i].item():.4f})這里有個小坑就是Image.open之后最好強制 convert(RGB)。有些食物圖片是 RGBA 四通道的 PNG如果不轉的話輸入張量就是 4 個通道和模型期望的 3 個通道不匹配直接報錯。模型 state_dict 里只保存了參數沒有保存結構。加載模型時要先創(chuàng)建一個相同的模型結構再 load_state_dict所以我在推理腳本里重新定義了模型。還有一種更省事的方式是保存整個模型對象但不推薦因為模型結構在 PyTorch 升級后可能不兼容。6.2 混淆矩陣分析跑完測試集之后我輸出了一張混淆矩陣圖我就不貼了重點看幾個數據點。意面帶最容易和玉米混淆。細看原因是兩者的顏色接近都是黃棕色系而且食物照片中都有長條形結構。模型沒能學到“意面是彎曲細長的面食玉米是一粒一粒的”這種語義級區(qū)分。香蕉和胡蘿卜也非常容易分不清。測試集里胡蘿卜圖片有不少是切成條狀的和香蕉外形很接近。這提醒了我真實分類場景中“形狀”和“顏色”并不總是可靠特征模型如果能捕捉到“香蕉有弧度”“胡蘿卜根部有漸細的尖端”效果會更好。通過混淆矩陣我找到了 3 個樣本量不足的難分對有針對性地多收集了這些類別的圖片加入訓練集。下次迭代的驗證準確率從 85% 提升到了 88%。6.3 模型大小與推理性能訓練完成之后我對模型的工程指標做了記錄。指標數值模型參數量約 1120 萬模型文件大小約 43MB單張圖片 CPU 推理耗時約 45ms單張圖片 GPU 推理耗時約 3ms顯存占用約 1.2GB對于移動端或嵌入式部署1120 萬參數量還是偏大。項目如果后續(xù)擴展我會考慮蒸餾成一個小型網絡或者直接用 MobileNetV3。但在“驗證思路、跑通流程”這個階段ResNet18 的體量是完全合理的。7. 經驗的總結做圖像分類項目最容易忽略的幾件事整個項目跑下來我自己有幾點特別深的體會。數據整理階段多花一小時訓練階段省一周。目錄結構、類別命名、數據校驗、樣本分布檢查這些不起眼的準備決定了后面所有環(huán)節(jié)是否順暢。我一開始沒有認真檢查每個類別的圖片數量訓練到中途才發(fā)現有一個類別圖片數量比其他類別少了一半導致模型嚴重偏向樣本多的類別又要重新整理數據從頭訓練。不要迷信模型越復雜越好。這個 10 分類任務用 ResNet18 已經溢出真正決定模型上限的是數據質量、增強策略和調參細節(jié)。換更大的模型不會帶來想象中的大提升。手寫訓練循環(huán)是值得的。雖然 PyTorch Lightning 之類的框架能省掉大量樣板代碼但對我來說手寫循環(huán)帶來的收益是理解層面的——理解了每個張量的變化、每行代碼的作用之后后面用任何高階框架都只是一個“選擇”的問題而不是被框架牽著走。保存模型時多保存一份帶優(yōu)化器狀態(tài)的完整檢查點。我后來想接著上次的訓練繼續(xù)跑發(fā)現只保存了模型參數優(yōu)化器的動量狀態(tài)沒保存結果后面幾個 epoch 的收斂速度明顯變慢相當于丟掉了一部分訓練信息。正確做法是每一輪同時保存 optimizer.state_dict 和調度器狀態(tài)torch.save({ epoch: epoch, model_state_dict: model.state_dict(), optimizer_state_dict: optimizer.state_dict(), best_val_acc: best_val_acc, }, checkpoint.pth)恢復訓練時就三行代碼搞定checkpoint torch.load(checkpoint.pth) model.load_state_dict(checkpoint[model_state_dict]) optimizer.load_state_dict(checkpoint[optimizer_state_dict])最后再說一個小技巧是我后來才養(yǎng)成的習慣每訓練一個模型就在最后帶著 test_loader 跑一遍混淆矩陣同時把預測錯誤的樣本圖片存下來按類別分文件夾放好。這樣做有兩個直接好處一是能一目了然知道困難樣本長什么樣二是給后續(xù)的數據增強方向提供了明確依據。前幾次做項目我就是只盯著準確率遇到瓶頸根本沒有方向直到養(yǎng)成這個習慣之后模型的迭代才真正開始“有路線圖”。整個食物分類項目從頭到尾一共花了不到兩周的下班時間卻把 PyTorch 的完整工作流徹底打通了。如果你也是剛入門有一定 Python 基礎想找一個有真實場景又不至于復雜的項目食物圖片分類是個不錯的選擇。照著這個思路做一遍動手敲一遍代碼調試一遍報錯你會發(fā)現自己對深度學習模型訓練的理解一下子變得具體了很多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美亚洲韩国视频十五区| 日本成熟少妇A∨网站| 91性高朝久久久久久久久| 熟妇高潮精品一区二区三区下载| 亚洲综合中文字幕有码| 久草国产在线视频| 亚洲中文字幕在现观看| 午夜福利一区二区三区四区五区色婷婷| 欧美色色色| 91精品亚洲内射孕妇| 91操人| 亚洲日本成人动漫| 黄片无码在线制服| 亚洲熟伦熟妇AV无码春色| 天堂av最新电影网| 久久日本熟女精品一区| 青青国产精品在线| 偷看洗澡一二三区美女| 无码聚合| 天天色粽合合合合合合合| 国产午夜福利电影免费在线观看| 丁香九月婷婷| 精品欧美乱码久| 九九九精品一区二区无码| 91在线|亚| 99视频精品| 成人无码影片视频在线| 黑人精品XXX一区一二区| 啪啪啪综合网| 国产久久久久久| 国产97色在线 | 亚洲| 后入式在线免费观看60秒| 麻豆视频test| 亚洲,欧美,春色,另类| 综合自拍| 色香色欲天天综合网天天来吧| 在线观看亚洲成人精品| 内射小黄片| 色99999| 久久69| 国产美女高潮视频| 美女黄页网站| AVE乱伦| 人妻一区二区三区四区视频| 男女性无套 免费九一| 蜜臀久久99精品久久久久久-DVD原版全| 久久久精品九| AA级电影三区| 日本 色 导航| 青青草日韩无码| 亚洲激情综合| 日韩78m视频| 有码色中文字幕在线观看| 操我啊啊啊啊啊| 久7色| 亚洲丝袜二区| 亚洲综合网图| 97伊人超碰| 熟妇人妻精品一区二区| 好属操| 日本操逼aaaaa| 殴美牲| julia高潮后不停追击中出| 99热久| 亚洲综合小说另类图欧美视频激情小说色五月天 | 大香蕉五月天| 嗯嗯啊啊视频在线看| 午夜精品久久久久久久男人的天堂| 久热伊人| 高潮综合网| 国产情色在线| 男人的天堂99| 国产日韩区| 国产三级在线现体验区| 国产 三级自拍| 丁香五月天堂| 欧美亚洲丝袜美女电影| 综合九九| 日韩国产欧美伦理在线| 涩五月婷婷| 嫩草 人人网精品| 97在线免费公开视频| 亚洲欧美日韩制服另类| 美女被艹尤物视频| 夜夜狼人妻| 国产精品一区二区后入| 久久久久国产精品久久久| 韩日性爱av| 日韩啪啪视频| 综合网97| av网站国产主播在线| 一级特黄aaa大片在线观看成人一级片在线观看 | 激情小说亚洲| 亚洲国产精品成人无码久久久| 久久 国产精品 一区| 成人网欧美风情| 老熟女阿 国产91| 摸奶性爱视频网站在线免费播放| 久久99网站| 天天天天天天天天综合| JuliaAnn丝袜熟女系列| 久久久久免费少妇| 欧美日韩97在线| 色欲Av人妻精品一区二| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 精品人妻中文字幕4399| 操狠狠| AV男人天堂网| 久久黄色视频一区二区三区| 精品人妻免费观看| 麻豆 欧美 日韩| 91欧美巨乳| 性爱网站一区二区| 久久久9视频| 乱人乱色一区二区三区免费| 人人操,操人人| 91真人天天在线| 男人女人18禁片免费看网站| 精品四五区| 78m啪啪啪| 亚洲AV秘 精品久久老牛影视| 亚洲s在线观看| 精品国产乱子伦一区二区三区,精品一| 欧美国产日韩高清在线| 疯操AV| 99热婷婷| 亚洲无线码欧洲精品区别| 丰满欧美少妇| 岛国网址国产 | 国产又黄又爽又刺激久久久久久 | 男人天堂网站| 美女诱惑1区2区| 青青草公开在线免费不卡视频| 日本九九九九| 欧美日韩欧美| 日本一片一区| AV一区观看| 日日妻色网| 男女性感激情网站| 久久精品99| 青青操狠狠撩| 欧美宗合色| 97超碰色五月| 黄色av片三级三级三级免费看| 国产性爱欧美性爱在线| 成人无码影片视频在线| 欧洲综合色| 99re视频在线观看这里只有精品| 少妇久久久| 国产白嫩精品久久| 中国亚洲呦女专区| 国产精品一区二区三区免费视频| 天天日天天射天天干| 日本国产高清色www视频在线| 精品人妻一区春色| 欧美午夜精品久久久久久超碰| 亚洲精品久久久久毛片A片拉屎 | 国产91会所女技师在线观看| 久久综合久色欧美综合狠狠 | 欧美 亚洲 另类 综合| 黄色AAAAA欧美| 亚洲亚洲亚洲天堂天堂| 天天弄欧美| 小视频玖玖| 久草电影网| 五月天色图| 欧美一区二区亚洲天堂| 亚洲AV无码乱码| 久操视频免费观看| 一牛影视久久久一区二区三区| 国产黄色 A 片免费看| 啊啊啊水好多| 日日日色色色色色| 鸥美插入视频| 国产高清1234区| 国产欧美精选激情视频| 97免费在线观看视频| 99热免费精品| 国产人妻精品久久久一区二区三区| 91影库| 亚洲久久久| 动漫av中文| 七久久久| 国模限制级电影| 国产乱人伦AVA麻豆软件.| 国产97在线视频| 麻豆a'v电影| 日韩精品熟妇| 97天天摸天天碰| 欧美一级黄色18片免费看| 秋霞Av理论一级在线| 久久99干一本高清| 一区二区三区成人 | 78久久| 桑老女人九区| 97精品97久久| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 九九Av| 国产亚洲精品美女久久久久久2021| 日韩射精| 性色aV一区二区三区噜噜| 人妻无码一区二区三区久久99| 久久骚少妇| 人人爱夜夜爱| 伊人久久亚洲中文字幕不卡| 日韩人妻精品中文字幕| 99热18这里只有精品| 久久偷拍人| 男人的天堂.com| 婷婷六月色| 欧美激情综合| 成人综合视频久久| 麻豆性爱视频在线播放| 国产精品 午夜福利| 国产精品熟女AV中文字幕在线播放| 婷婷91| 涩五月婷婷| 久操在97| 亚洲污污网站| 青青久久久| 我想要啊 啊 啊| 大香蕉人妻久久| 色汉综合| 2019天天干天天操| 久草福利在线资源站| 成人精品一区二区91毛片不卡| 亚洲精品人妻在线| 插欧洲美女欧美精品| 999国产精品999| 久久激情视频| 日韩偷拍色图| 日韩少妇在线视频| 亚洲美女高潮喷水视频| 日本精品一级二级三级| 亚一综合久久久久久久久久| 亚洲情色91| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 人人澡人人干| 国产精品不卡一区二区三区av| 干我久操| www.91色| 久久最新视频免费观看| 人妻天天爽夜夜爽2| 亚洲日精品| 亚洲久久久久| 无套内射人妻在线播放| 九九色综合| 麻豆AV短剧| 久久风骚城市| 一级乱伦网站| 欧美日韩色| 牛牛操视频逼| 婷婷五月天伊人| 91久久18禁| 香蕉国产97| 国产精品第一区第一页| 天天天天天干夜夜夜夜夜操| 亚洲精品欧美专业| 欧美伊人电影| 99久久99九九99九九九| 亚洲揄拍网| 在线看污网站| 一级啊性爱在线视频| 中文字幕一区 二区三四五 区日 日骚 | 久久精品无码不卡| 久久精品国产亚洲妲己影视| 尹人大香蕉视频在线| 久久神马影院| 国产午夜在线观看| 五月婷婷五月天| 嗯嗯啊啊好疼| 国产在线视频午夜精华在| 欧美第一页| av橘色网站| 亚洲欧美首页| 午夜小电影在线插入淫高潮| 国产网站在线播放| 欧美三级免费伊人| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 四季AV综合网址| 超碰97人人乐| 岛国视频免费在线观看| 99国产精品久久久久久久成人热 | 婷婷伊人网| 精品一国2| 国产精品秘 福利姬在线观看| WWW4虎| 欧美一级二级三级| 婷婷久久大香蕉| 九区国产| 亚洲色诱惑| 欧美第一页| 51久久夜色精品国产麻豆| 久久9精品视频| 久久夜夜| 黑人中出21连凳花野真衣| 欧美天天性| 国产原创自拍| 97在线免费看视频| 屌逼传媒| 久久久久久网址| 人妻精品综合中文字幕在线| 电家庭影院午夜69久久夜色精品国产69乱| 男人兔费天堂| 日本性爱视频一级| 丰满搜索结果 -第18页- 久久高清无码| 日本一区二区不卡| 好看的91视频| 日本操逼二区| 骚日日av| 久久久不能久久久久| 青娱乐国产剧情av一区| 99操| 日韩AV熟女乱伦| 97超碰9| 在线观看十八禁| 久久久久九九九九| 欧美少妇性乱| 国产精品亚洲免费| 91情色| 中文字幕十五区| AA特级绝黄| 日韩91网| 啊啊啊啊啊在线视频| 九九视频黄色片| 亚州九九九精品视频| 亚洲成A∨人影院在线欢看| 日本三级精品| 精产国品一区二三产品| 91动漫操逼视频| 97se亚洲综合自| 久久999久| 国产黄色av大片网站| 91性感在线| 美女大乳久久久久久久女人18| 久久久久久国产无码精品| 91日韩网站| 热天堂一区二区| 美女写真| 激情抓乳插进去啪啪啪日韩 | 伊人991| 亚洲高清无码免费观看视频| 国产成人91一区二区三区| 婷婷精品国产一区二区三区日韩| 91精品丝袜久久久久久| 欧美系列在线一区二区| 亚洲乱色熟女一区| 日少妇视频| av线电影| 亚洲大胆人体av| 青青草日逼视频| 欧美三级中文字幕hd| 欧美天天弄| 老色鬼成人精品视频下载大在线观看| 91天堂视频| 97五月天| 中文字幕一区二区三区视频播放| 香蕉热人人精品| 亚洲人久久久久日| 一本久久久精品| 东北女人操比视频| 日产中文字幕2020| 按摩中文字幕| 3571色综合一区二区二区| 中文字幕一区电影在线观看| 亚洲第一精品在线视频| 亚洲第一狼人丝袜美女另类| 一级性爱视频免费在线| 欧美日综合| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 夜夜操中文字幕| 日韩天堂av电影在线观看| 色99在线| 人人操AV| 中文字幕视频一区视频二区| 亚熟在线| 久久天天躁日日躁狠狠躁| 丝袜美腿诱惑亚洲欧美视频在线观看 | 激情综合五月| 欧美专区第一页| 五月激情啪啪| 女人天堂AV五区在线| 91一起操| 97天天爽| 久久婷婷在线观看视频| 好爽,再快点啊哈嗯嗯嗯嗯| 草草影院在线视频| 躁躁日曰躁2020| 五月天伊人| 性性欧美| 91无码人妻精品一区二区三区蜜桃| 91亚洲欧美综合高清在线| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 人人摸人人干| 99999久久久久9国产精品| 亚洲影视综合网| 精品国产乱码久久久久久影片| 天天流夜夜操| 夜夜操91744565| 麻豆一区二区三区精品| 欧洲精品久久| 91插B网站| 人妻丝袜日本| 人人贴人人摸| 国模无码一区二区三区在线| 亚洲欧美成人在线| 日本一二区免费| 久久精品国产99国产精品亚洲| 秋霞一区二区三区四区五区六区七区| 精品一二三区女同| 成人三级片一区二区三区视频| 麻豆天美一区二区| 无码久久亚洲高清,| 欧美黄色片在线播放| 国产福利小视频高清在线观看| 色官网在线| 日韩欧美麻豆大片| jiujiujiujingpin| 性色A∨91| 日韩欧美福利视频看看| 操一区| 欧美亚洲20p| 亚洲国产中文字幕| 男女啪啪网站免费视频| 欧美一区二区观看在线| 麻豆视频test| 青青草女人天天干| 久久久久亚洲熟妇熟女| 国产又大又硬又长又粗| 亚洲日本韩国极品一区二区| 精品乱码在线观看| 亚洲色图综合| 天天日日夜夜| 视频黄站| 天天干干天天干干| 伊色综合天堂色97| 玖玖爱伊人玖玖爱| 波多野结衣AV无码一区| 九九综合久久| 久久大陆| 免费少妇一区二区| 国产黄a三级三级三级av在线看| 97视频新免费| 素人一区二区三区日韩| 久久久久无码| 精品无码少妇| 国产欧美亚洲精品a第2页| 9超碰免费| 久 久无码人妻AV| 一个人免费HD91视频| 亚洲av热热色| 小说区 图片区色 综合区| 久操精品网| 91欧美性| 国产女人极品高潮毛片| 亚洲 欧美 另类 日韩 人妻一区| a片在线播放| 久久人妻丝袜一区二区三| #NAME?| HEYZO高无码国产精品227| 天天澡天天爽日日av| 久久精品一区二区一8| 99热亚洲| 久久青青草在线视频| 亚洲天堂 视频你懂的| 老司机午夜精品福利视频一区二区| 亚洲成aⅴ人片不卡无码| 日韩草久视频| 久久国产成人精品国产成人亚洲 | 麻豆精品.欧美精品.日韩精品.| 岛国成人av在线播放网址| 日韩精品三级片长长久久| 宅男影院久久久,99| 亚洲蜜臀懂色| 岛国黄| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 蜜臀久久一区二区| 久久久久国产精品久久久| 一区二区偷拍拍视频| 国产人妻久久精品一区二区三区| 亚洲综合五月天| 夜夜欢天天干| 九九九九88| 欧美精品23| 麻豆一区二区三区精品| 激情综合二| 中文字幕欧洲有码| 久操九九九九| 操逼视频色| 中文字幕伊人| 大香蕉丝袜一级片| 98人妻精品一区二区色欲| 蜜臀AV成人精品蜜臀AV久久| 无码高清国产AV| 夜夜嗨TV| 黄色成品网站| 国产精品自在线发布| 亚洲欧美天| 久久五月份| 2019精品国产无码成人| 日韩射图| 欧美 亚洲 大香| 国产精品久久久久久久黄无码| 素人伊尹大香蕉免费下载视频| 无码免费一区二区三区啪啪| 国产亚洲精品激情| 久久男人| 亚洲Av噜噜一区二区三区妖精| 日韩成人大片在线观看| 亚洲AV麻豆Aⅴ无码电影一 | 性爱1区| 欧美激情一区| 夜夜免费视频| 亚洲免费日韩在线一区二区| 99精品成人免费看| 欧美一级AAAAAAA| 欧亚日本情色| 人人摸人人干| 国产精品麻豆成人AV艾秋| 国产亚洲欧美每日在线| 大逼色网站| 青青草日本中文字幕| 9久久精品| 小视频国产| 天久久久噜噜噜久久国产精品爽爽| 91av天美性媒精品视频| 婷婷五月丁香五月| 日韩av一级黄片| 性暴力欧美猛交在线直播| 日本不卡一二区| 欧美一区二区三区黄色影视| 白丝1区2区3区| 中日高清无码操逼视频| 欧美一级特黄淫片在线观看| 日本成人在线不卡一区二区三区 | 日韩欧美中文日韩欧美色| 欲香欲色| 91网站18| 九九九网站| 麻豆一区二区三区在线看| 青青草字幕AV| 久久久久久久国产| 国产精品久久久蜜臀| 红杏大香蕉| 色婷婷色99国产综合精品| 日韩无码黄色片| 三级特黄60分钟播放| 欧美日韩国产成人高清| 麻豆久久精品亚洲精品88| 大香蕉中文201| 日韩乱伦影音先锋| 精品成人无码| 岛国视频一二三区| 久久久久亚洲av综合波多野制衣| 青娱乐999| 国产午夜精品理论片一二三区区| 国产精品爆乳懂色蜜乳| 久久久久夜夜夜夜| 91在线欧美| 精品一区二区三区丰满熟女-亚洲欧美一区| 亚洲 欧美 日本 国内 首页| 国产又粗又长又大的视频| 亚洲精品久久久久久| 亚洲97网站| 超碰 欧美| 91M一社| 伦理第一页| 中文字幕乱码在线| 人人操,人人液| 无码137片内射在线影院| 日B操| 草草影院日本第一页| 日本东京热加勒比久久| 日韩一级成人毛片免费观看| 新版天堂中文资源8在线| 一级久久性爱视频| 97久久视频| 亚洲影视综合网| 色一射色一射| 色九九综合AV| 深喉吞精| 欧美性生活男人的天堂| 日本五十路熟女一区二区| 懂色AV蜜臀无码精品APP| 国产久久久久久久久一区二区| 小泽玛利亚一二三| 色诱avtt| 国产久久天堂资源| 日韩熟女操逼| 日韩久久激情精品| 嗯嗯嗯不要不要免费视频| 亚洲色悠悠久久88| 天天干人人乐| 国内精品久久人妻性色av| 国产尤物AV尤物在线观看不卡| 激情综合五| 高跟伊人julia ann| 高颜值美女口爆高潮浪叫| 亚洲国产丝袜熟女av| 日韩亚洲中文有码视频| 18精品一二区| 欧美高清18A片| 全免费a敌肛交毛片免费| 人妻熟女字幕一区二区| 97一区二区三区视频| 亚洲骚逼少妇| 午夜一区二区三区国产| 熟妇人妻精品一区二区视频色欲| 九九热精彩视频| 女优大全 - 91n| 亚洲五码一区二区三区| 精品久久久久9999| 日本道人妻久久久在线不卡色视频| 欧美性爱综合,免费| 日韩性爱小视频在线观看| 日韩三级网址| 啊v在线观看视频| 强奸乱伦Av网| 欧州激情视频在线一区二区| 九九九九九精品视频| 色黄色美女大长腿午夜视频| 富二代亚洲精品99| 久久9精品| 亚洲Av无码成人精品国产| 日韩欧亚太美不卡| 久久精品熟妇丰满人妻99| 免费人成?大片在线播放| 欧美综合在线91| 97色网| 久久精品人体| 91性感在线| 99ri精品| 欧美另类丝袜熟女| aaaa少妇高潮大片| 97超碰这里只有精品| 草莓精品视频在线免费观看| 亚洲中文字幕乱码无码一区二区| 亚洲精品99999| 久久怡红院| 四虎免费在线播放| 天天干天天操天天干天天操| 91男同| 日本女优在线视频福利| 免费97视频| 精品一区二区成人| 亚洲国产中文字幕| 免费黄色A片| 日本天堂在线播放| 日韩欧美亚洲一区二区三区影院| 豆1无夜无码| 老司机深夜影院18未满| 亚洲国产青青| 91精品国产麻豆国产自产在| 夜夜嗨一区二区三区三州加勒比 | 乱子伦一区二区三区国产精品| 九一亚洲国产免费| 精品视频一区二区| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 久操97| 婷婷三区| 久久社区一区二区三区| 色情婷婷久久五月天| 国产精品亚洲美女久久久久| 亚州性色| 9 7超碰在线免费观看| 飘花国产午夜精品不卡| 中文字幕诱惑制服人妻丝袜美丝袜美 | 91色情黑丝搞鸡在线观看一区二区三区三州| 亚洲无码一区成人免费午夜| 色一射色一射| 蜜乳av一区二区| 啊啊啊啊在线播放| 色爱综合网| 超碰在线欧美性爱激情| 2026国产精品视频| 五月婷婷激情综合| 91福利网在线观看| 60秒免费视频| 天天日少妇逼AV| 俺去啦俺来也久久综合| 91AV天美在线视频| 欧美躁死她一区二区| 久久成年片色大黄全免费网站| 蜜桃久久久久久久久久久久| 丁香婷婷啪啪| 成人性爱AV在线免费观看| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 97天天插| 夜夜操av亚洲一区二区| 国产网站在线播放| 天天综合中文字幕 91| 天天日天天舔东京热| 日本一本道A级黄色毛片试看60分钟| 60秒不遮不挡| 亚洲九九视频在线观看| 日本三级韩三级99久久| 美国一区二区三区视频| 国产精品久久久久久久久久久久久久吹| 91最新综合| 九九热超碰| 亚洲 欧美 制服 另类 自拍| 亚洲天天更新| 人妻少妇久久| 日本精品国产视频| 男人的天堂2019AV| 国产亚洲精品玖玖玖在线观看| 一区在线精品中文字幕| 九九九久| 丝袜狂射91| 色av中文字幕| 久操99| 亚洲色啪| 日本道久久综合色色| 老司机深夜18禁污污网站| 精品久9| 亚洲人精品久久久| 性色av一区二区| 午夜精品99久久久久传媒| 亚洲精品成人激情在线| 做爱A级亚欧| 成全动漫视频观看免费下载| 九九AV| 97视频免费播放| 夜夜久久久| 青青草原成人| 日本性一区| 日韩色女精品| 大香蕉色欲AV| 欧美色图 人妻| 久久久久久9999| 中文字幕版| AV一二区| 色诱avtt| 亚洲天堂情色| 97视频900| 伦在线97| 亚洲色图第四色| 综合激情一一91| 亚洲天堂日本| 国产久久久久影院老熟女| 一区中文字幕二区日韩| 久久AV色| 中文字幕精品久久久久人妻红杏ⅰ| 激情四射婷婷四五月天| 亚洲天堂中文字幕无码男同| 开心五月天激情网| 激情五月丁香五月| www.zbzhongsen.com| 九九色精品| 狠狠操综合| 99操| 97亚洲性爱| 夜夜爽妓女| 中文有码第五页| 超碰97最新人妻| 国产白丝在线| 伊人视频| 久久久久久999| 亚洲自拍97| 91P0RNY大屁股人妻| 伊人天天久久动态图| 国产丝袜美女在线一区| 成年人三级黄色片视频| 亚洲第一无码播放立川理惠| 五月婷婷六月天| 91亚洲黑人| 亚洲激情天堂网| 天天干夜夜| 97精品免费| 国产精品久久妻无码网站| 强奸乱伦Av网| 五月丁香影视| 久久亚洲不卡一区二区三区 | 精品一级| 立川理惠被中出无码| 三级色综合| 欧美性生活综合| 色婷婷aV一区二区三区麻豆综合| 超碰碰激情97+久| 日韩三级av片| 久久成人国产精品| 色99视频| 欧美少妇性乱| 91美女在线| 国产福利在线视频网站| 激情五月天色播| 天天色怡春院| 欧美人妻少妇| 国产综合网站在线播放| 女色视频社区| 熟妇高潮二区三区| A片大香蕉在线| 97操操| 亚洲色悠悠久久88| 99热这里只有精品18| 一线黄色免费性爱片| 欧日韩不卡视.频| 学生妹天天看| A级国产欧美激情在线| 超碰人人超在线观看| 久久综合精品一区二区三区| 精品国产乱码久久久| 中国少妇XXXX做受| 日韩99神马视频播放片在线播放| 国产精品一区二区麻豆| 天天激情综合站| 国产少妇肉丝在线观看| 亚洲偷91色| 综合伊人网12色| 黄污污污污| 欧美日韩亚洲国产中文永久天天看| a'v在线资源| 丁香五月社区| 日韩BBN| 日韩不卡在线一区二区| 国产AV天美| 亚洲另类天堂| 狠狠操狠狠爱| 97国产精选| 亚洲成a人在线观看久| 亚洲第一页欧美| 日日夜夜精品视频| 人妻丝袜无 码视频专区| 国产日韩中文字幕欧美| 天天看天天在线精品| 校园春色综合色| 亚洲爽图| 九久9热| 综合另类| 夜夜高潮夜夜爽| 女性喷水高潮在线观看| 美女啊啊啊啊啊啊啊| 欧美中文综合| 色色亚洲| 91色狼| 日韩伦理视频| A片大香蕉在线| 少妇同性| 久思思热视频在线观看| 美女诱惑在线一区| 久久国产乱子伦精品免费女人| 1二区9| 国产一区二区精品久久99| 激情综合网一盗摄| 无码精品一区二区三区潘金莲| 欧洲精品久久| 国产男女无套视频免费观看| 91色欧美| 视频在线观看一二三区| 国产精品日本无码A片| 又黄又粗又硬又长又大| 女同女同恋久久级三级| 欧美变态激情网| 亚洲av影音先锋| 欧美色道啊| 99热综合| av毛片aaaaa免费看| 久草婷婷| 久久精品三级影视| 麻豆成人影音在线| 日韩少妇丰满亚洲| 岛国网址国产 | 婷婷综合在线| www国产无码| 久久久久ab| 亚洲欧洲国产综合av| 久久九九97| 观看免费区二区三区二| 蜜乳Av成人片网站| 欧洲色综合| 骚货| 家庭乱伦网站国产| 水滴偷拍| 亚洲国产精品久久久男人的天堂| 免费黄色A片| 超碰97亚洲| 精品国产乱码久久久兰草影视| 日本肉体xxxx裸交| 日韩97| 美女网站黄页| 99999久久久久9国产精品| 亚洲无吗在线视频| 熟妇视频一区二区三区在线| m欧洲一级午老| 99精品久久| 欧美自拍偷拍综合图片| 在线 欧美 亚洲| 亚洲综合影视| 亚洲经典啪啪| 成人av在线播放| 中文字幕一区二区三区人妻不卡 | www.99中文字幕| 久操免费观看| 欧美与日韩97| 亚洲精品一二三四区| 手机看片1024你懂的国产| 人妻精品视频一区二区三区| 日本高清一本二本免费不卡| 国产农村妇女精品一二区| 久9视频| 奇米四色影视777久久久| 91爱网| 精品少妇一区二区| 久久精品国产99国产精品亚洲| 天天天天干| 男女真人网18| 亚洲无无码αⅴ每日更新| 91n处女在线观看| 国产情色在线| 天天α片| 99啪啪视频| 天天干少妇| 久久性爱城| 国产不卡免费在线视频| 内射老妇BBWX0C0CK| 五十路熟女人妻一区二区在线观看| 超碰在线综合97| 91久久久老司机| 久久一区,青青青青草视频在线播放| 日日夜夜天天| 91色久| hd成人一区二区在线| 成人乱人伦一区二区| 色吧5亚洲| 91亚洲网| 亚洲男人电影天堂| 天天综合中文字幕 91| 清纯唯美亚洲另类| 黄页网站成人免费| 久久机热| #NAME?| 日韩在线观看AV| 国产91丝袜在线播放蜜月| 日韩精品人妻中文字有码在线| 综合久欧洲| 男人天堂久久日韩| 91视频成人福利网站在线一区| 欧美专区第一页| 91人妻超碰| 超碰97精品在线| 亚洲欧美九九| 超碰 另类 欧美| 四季AV综合网址| 丝袜喷水在线| 日日夜夜噜| 欧美日韩婷婷中文| 亚洲色情在线影视| 日本不卡一区二区三区| 伊人96在线| 久久久一二三四区| 日本媚薬中文字幕在线| 久热热| 人妻9117c| 乱伦a片视频| 日韩一性一交一A片俄罗斯| 人妻中文字幕日韩电影| 日本欧美国内在线| 国产 日韩 欧美 人妻 熟女 中文| 天天弄天天操| 97亚洲性爱| 色大香蕉97N| 夜夜做夜夜爽精品视频| 中文字幕AV中出| 日本熟妇浓毛hdsex| 国产精品一区av在线| 91人妻素女| 婷婷五月天综合网| 久久久噜噜噜久久久| 亚爽爽爽爽爽爽爽爽| 婷婷激情五月综合| 午夜精品久久久久久久久久久久久| 熟女探花啪啪| 国产精品呦一区二区三区| 日欧操屄视频| 亚洲欧美中日韩| 久久久久久久久国产| 亚洲女人91| 97人人夜夜精品视频| 久久无码电影| 国模限制级电影| 男人把坤坤插入女人的下体| 久久久青青草| 一个国产在线综合网站| av天堂手机版追回| 91暧暧| 噜噜噜亚洲精| 日本αv| 久久露脸国产老熟女| 中文字幕少妇色| 欧美日韩亚洲少妇寂寞影院正在播放 | 91一区二区三区蜜桃| 欧美特大黄一级片片免费| 91xingse| 91精品在线播放| 欧美18 在线观看| 天天肏夜夜肏| 精品999日本| 免费视频一二三区| 99久久久久久久久| 国产怡红院| 综合五月天| 多毛小伙内射老太婆| 综精品久久久aaaa| 欧美韩日精品99综合| AV和黑人在线播放| 啊啊啊啊啊在线观看网址 | 插入逼91| 色婷婷五月天| 国产又大又粗又长视频| 亚洲日韩视频二区| 亚州色图第三区| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 日韩欧美三级| 熟女五十路一区二区三| 91 国产丝袜在线放观看| 欧美亚洲中文字幕| 凸凹视频在线观看| 99黄页网站| 久久精品国产亚洲妲己影视| 77777亚洲蜜臀精品久久综合蜜臀| 精品国产乱码久久久影院| 夜夜天天噜狠狠爱2021| 99热在线不卡| 91天天看| 蜜色网色哟哟| 91在线视频国产网站| 99色| 99999精品| 九九九九久久久| 98超碰欧美| 婷婷久久五月| 国产农村妇女毛片精品久久| 成人性爱电影一区二区| 激情视频图片| 丁香五月天激情网站| 超碰碰小说97| japan日本高清乱xxxx| 91欧美性| 无码国产精品久久久久| 欧美天天综合站| 亚洲无吗在线视频| 日韩一级二级三级免费看完整版国语版 | 亚洲免费成人精品电影| 久偷拍欧美日韩三区| 中国少妇XXXX做受| 精品一国2| 亚洲成人美女无吗| 国产精品一区二区麻豆| 717影院理论午夜伦八戒| 国产精品伦理| 一区二区你上我| 亲子敌伦对白在线播放| 天天操天天射青青草| 超碰精品国产无码| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 免费看国产曰批40分钟怎么下载| 天天舔天天日天天射| 精品亚洲国产成人av网站| 青青草国产一区二区三区| 91啪啪视频| 精品999999| 91熟女综合| 大伊香蕉在线视频免费| 91精品导航| 亚洲精品一二三四区| 亚洲欧洲综合av在线| 职场同事知名国产国产精品久久欧美日韩| 九九无码视频| 熟妇乱伦一区二区| 男人网站婷婷| 九九Av| 中文字幕日韩专区精品系列| 风骚少妇视频中文字幕| 婷婷激情五月综合| 欧美精品久久久久久久丰满| 精品人妻伦一区二区三区久久| 激情开心五月天| 久久黄片国产一区二区| 欧美一区二区日韩传媒搭讪精品| 丁香婷婷大香蕉| 蜜臀视频网站| 日影院久久婷婷夜夜网| 亚洲精品日日夜夜52| 免费精品无码一级毛片牛牛影视 | 久久精品国产99国产精品亚洲| 播播亚洲小说亚洲| 超碰人妻97| 一区二区视频你懂的| 色综合色| 做爱A级亚欧| 国产极品馒头逼| 国产欧美黑人丰满在线| 蜜桃久久综合视频| 国产曰批免费观看久久久| 青青草好吊色| 综合九九| 亚洲人妻熟妇三十三区| 亚洲免费看片| 先锋激情∨在线视频播放| 一区二区三区看视频| 91成人社区| 久99久视频精选| 黄片www.| 国产精品ⅴ无码大片在线看.| 欧美色图20P| 99re在线视频国产| 青青草吊丝| 口爆综合网| 亚洲最大无码中文字幕网站| 精品人妻1区| 翔田千里AV无码秘 三区| 蜜桃臀一区二区三区久久| 久草资源欧美在线视频| 五月婷婷激情综合| 天天日B夜夜干B时时操B| 91看黄片| 欧洲在线性爱视频| 九七色图| 亚州欧美在线| av草草在线电影| 小骚逼被操的爽不爽| 天天日日本| 女人天堂AV五区在线| 97福利视频| 国产精品亚洲一区二区三区四区| 午夜超爽| 五月婷婷丁香六月丁香| 91在线免费精品视频| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 狠狠色一区二区中文字幕| 午夜情侣自拍网站| 亚洲中文字幕97久久精品少妇| 午夜精品视频777| 久久久久成人亚洲国产| 色呦呦呦在线观看视频| 国产精品无码久久久久2025| 亚洲欧洲自拍图片专区满春格| 测评在线观看AV| 国产精品99999| 亚洲图片另类| 91操熟女| 日本中文熟女视频| 日韩福利电影网| 操屄日韩| 中文字幕日韩专区精品系列 | 亚洲棕合电彰| 六月丁操逼| 歐美性天天| 欧美大片天天看| 九九九热精品| 日本性一区| 久久久久久人| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 欧美性生活综合| 婷婷综合| 亚洲AV无码天美传媒一区| 久久久久无码| 国产美女激情| 东北操逼|