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

ARTICLE DETAIL

資訊詳情

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

3400張果蔬圖像分類實(shí)戰(zhàn):遷移學(xué)習(xí)與數(shù)據(jù)增強(qiáng)踩坑指南

3400張果蔬圖像分類實(shí)戰(zhàn):遷移學(xué)習(xí)與數(shù)據(jù)增強(qiáng)踩坑指南 簡(jiǎn)介一套面向計(jì)算機(jī)視覺學(xué)習(xí)者和研究人員的36種常見水果和蔬菜圖像分類數(shù)據(jù)集涵蓋香蕉、蘋果、梨、葡萄、橙子、獼猴桃、西瓜、石榴、菠蘿、芒果、黃瓜、胡蘿卜、辣椒、洋蔥、馬鈴薯等大家熟悉的果蔬類別總計(jì)約3400張已標(biāo)注圖片。所有圖片已經(jīng)過預(yù)處理可直接作為分類網(wǎng)絡(luò)的輸入免去自行清洗和縮放的步驟數(shù)據(jù)同時(shí)明確劃分為訓(xùn)練集與驗(yàn)證集并按照同一類別分別存放方便讀者直接開展分類實(shí)驗(yàn)、評(píng)估模型泛化能力或進(jìn)行數(shù)據(jù)可視化。壓縮包內(nèi)共2000個(gè)文件以1998張jpg圖片為主體另附1個(gè)json類別標(biāo)簽文件與1個(gè)Python可視化腳本整體大小約94.47MB結(jié)構(gòu)清晰便于快速上手。使用附帶show腳本可以隨機(jī)瀏覽各類樣本json文件則記錄類別名稱與對(duì)應(yīng)關(guān)系為后續(xù)微調(diào)或擴(kuò)展提供參考。目前已有213人學(xué)習(xí)下載適合作為課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)或算法對(duì)比的基礎(chǔ)數(shù)據(jù)集也可用于圖像分割等任務(wù)的前期數(shù)據(jù)準(zhǔn)備是一份難得的可直接落地的多類別果蔬數(shù)據(jù)集。1. 3400 張、36 類果蔬圖像分類數(shù)據(jù)集小數(shù)據(jù)集做圖像分類到底圖什么圖像分類是計(jì)算機(jī)視覺里門檻最低、也最容易讓人誤判難度的任務(wù)。很多人拿到一個(gè)「36 種常見水果和蔬菜圖像分類數(shù)據(jù)集已標(biāo)注約 3400 張數(shù)據(jù)」這樣的包第一反應(yīng)是嫌棄單類平均不到 100 張能訓(xùn)出什么來但真正做過落地項(xiàng)目的人都清楚工業(yè)場(chǎng)景里能拿到的高質(zhì)量標(biāo)注數(shù)據(jù)往往就是這個(gè)量級(jí)。這套數(shù)據(jù)集的真實(shí)價(jià)值在于——它完整復(fù)刻了實(shí)際項(xiàng)目里最常遇到的「標(biāo)注可用但數(shù)量緊張」的狀態(tài)比 CIFAR-10、ImageNet 這種規(guī)整學(xué)術(shù)集更貼近真實(shí).用它跑一遍完整的圖像分類流程覆蓋從目錄整理、標(biāo)簽映射、遷移學(xué)習(xí)到結(jié)果評(píng)估的每一步比刷十遍理論書都管用。而且這套數(shù)據(jù)的類別分布并不均勻某些類多、某些類少這本身就逼著你去面對(duì)類別不均衡、過擬合、數(shù)據(jù)增強(qiáng)策略這些繞不開的問題。以下是我拿這套數(shù)據(jù)集完整走了一遍流程后的實(shí)測(cè)步驟和踩坑記錄從目錄結(jié)構(gòu)開始。2. 數(shù)據(jù)集落地第一步先搞清目錄結(jié)構(gòu)和標(biāo)簽分布避免訓(xùn)練腳本寫一半翻車2.1 拿到壓縮包先別急著解壓訓(xùn)練先盤點(diǎn)文件組織方式和標(biāo)簽口徑這類果蔬數(shù)據(jù)集最常見的組織形式是「每個(gè)類別一個(gè)文件夾」文件夾名即標(biāo)簽名例如Apple、Banana、Carrot。但你需要確認(rèn)兩件事第一標(biāo)注是按文件夾名隱式標(biāo)注還是附帶 CSV/JSON 標(biāo)注文件第二圖像是原始尺寸還是已經(jīng)被統(tǒng)一縮放。這兩點(diǎn)直接決定你寫數(shù)據(jù)加載器的方式。常見做法是先用命令行做一次完整盤點(diǎn)# 解壓后先看頂層結(jié)構(gòu)確認(rèn)是 train/val 分好還是全量混在一起 unzip fruit_veg_36.zip -d ./fruit_veg_36 cd fruit_veg_36 ls -la # 統(tǒng)計(jì)每個(gè)類別文件夾下的圖片數(shù)量輸出類別名與張數(shù) for d in */; do count$(find $d -type f \( -name *.jpg -o -name *.jpeg -o -name *.png \) | wc -l) echo $d : $count done這一步的意義在于把「約 3400 張」落實(shí)為精確的分布表。我拿到這套數(shù)據(jù)時(shí)實(shí)際統(tǒng)計(jì)結(jié)果和標(biāo)題描述基本一致但類別之間差異明顯像Apple、Orange這類常見水果可能超過 120 張而部分葉菜類只有 60 到 70 張。這種不均衡如果不提前發(fā)現(xiàn)訓(xùn)練時(shí)模型會(huì)對(duì)樣本多的類別嚴(yán)重偏置樣本少的類別 recall 掉到慘不忍睹。統(tǒng)計(jì)完分布后我建議順手把圖片尺寸分布也打一下確認(rèn)是否存在尺寸混亂的情況。# 用 Python 快速檢查圖片尺寸分布判斷是否需要統(tǒng)一 Resize python - EOF from PIL import Image import os, collections root ./fruit_veg_36 sizes collections.Counter() total 0 for cls in os.listdir(root): cls_path os.path.join(root, cls) if not os.path.isdir(cls_path): continue for img_name in os.listdir(cls_path): img_path os.path.join(cls_path, img_name) try: with Image.open(img_path) as im: sizes[im.size] 1 total 1 except Exception as e: print(f損壞文件: {img_path} - {e}) print(f總圖片數(shù): {total}) print(fTop 尺寸: {sizes.most_common(10)}) EOF這段腳本有雙重作用一是找出無法被 PIL 正常打開的損壞圖片二是確認(rèn)圖像尺寸是否已經(jīng)被預(yù)處理過。檢查結(jié)果告訴我這套數(shù)據(jù)里大部分圖像是正方形縮略圖邊長(zhǎng)在 128 到 256 像素之間但也混入少量原圖——這一點(diǎn)直接影響了后面訓(xùn)練時(shí)的 Resize 策略選擇。2.2 類別標(biāo)簽別用文件夾名硬編碼建立穩(wěn)定的 class_idx 映射文件是第一步不然換臺(tái)機(jī)器就翻車文件夾名當(dāng)標(biāo)簽看似省事但工程上隱患很大。不同來源的數(shù)據(jù)集命名風(fēng)格不一致Apple和apple會(huì)變成兩個(gè)類帶空格或中文名的文件夾在跨平臺(tái)傳輸時(shí)還會(huì)編碼出錯(cuò)。更穩(wěn)妥的做法是把類別名映射成從 0 開始的整數(shù)索引并把映射關(guān)系保存成 JSON 文件訓(xùn)練和推理共用這一份映射。import os import json root ./fruit_veg_36 classes sorted([d for d in os.listdir(root) if os.path.isdir(os.path.join(root, d))]) class_to_idx {cls: i for i, cls in enumerate(classes)} idx_to_class {i: cls for cls, i in class_to_idx.items()} with open(class_mapping.json, w, encodingutf-8) as f: json.dump({class_to_idx: class_to_idx, idx_to_class: idx_to_class}, f, indent2, ensure_asciiFalse) print(f共 {len(classes)} 個(gè)類別映射已保存至 class_mapping.json) print(class_to_idx)這段代碼里有幾個(gè)細(xì)節(jié)值得說明用sorted()排序后再編號(hào)確保同一份數(shù)據(jù)在任何機(jī)器上生成的映射順序一致——否則訓(xùn)練時(shí)Apple是 0推理時(shí)變成 7模型直接全部預(yù)測(cè)錯(cuò)誤映射文件存成 JSON 而不是 pickle因?yàn)?JSON 跨 Python 版本通用不會(huì)出現(xiàn) pickle 協(xié)議不兼容的問題。后續(xù)所有 DataLoader、訓(xùn)練腳本、評(píng)估腳本都只認(rèn)這份 JSON不認(rèn)文件夾名就能避開大量低級(jí)錯(cuò)誤。2.3 劃分訓(xùn)練驗(yàn)證集不要用隨機(jī)劃分用分層抽樣保證每個(gè)類別的比例一致3400 張數(shù)據(jù)做分類常見的錯(cuò)誤是直接random.shuffle后按 8:2 切分。這在類別分布不均衡時(shí)很危險(xiǎn)——某個(gè)樣本少的類別可能全被切進(jìn)訓(xùn)練集驗(yàn)證集里根本沒有這個(gè)類訓(xùn)練過程看起來 loss 很低實(shí)際推理時(shí)那個(gè)類全錯(cuò)。正確做法是分層抽樣每個(gè)類別內(nèi)部獨(dú)立按比例切分。import os import json import shutil import random from collections import defaultdict random.seed(42) root ./fruit_veg_36 target ./fruit_veg_split train_ratio 0.8 # 統(tǒng)計(jì)每類的全部圖片路徑 class_images defaultdict(list) for cls in sorted(os.listdir(root)): cls_path os.path.join(root, cls) if not os.path.isdir(cls_path): continue for img_name in os.listdir(cls_path): if img_name.lower().endswith((.jpg, .jpeg, .png)): class_images[cls].append(os.path.join(cls_path, img_name)) for cls, paths in class_images.items(): random.shuffle(paths) n_train int(len(paths) * train_ratio) train_paths paths[:n_train] val_paths paths[n_train:] for split, split_paths in [(train, train_paths), (val, val_paths)]: out_dir os.path.join(target, split, cls) os.makedirs(out_dir, exist_okTrue) for p in split_paths: shutil.copy2(p, os.path.join(out_dir, os.path.basename(p))) print(f{cls}: total{len(paths)}, train{len(train_paths)}, val{len(val_paths)})這里我用了shutil.copy2而不是shutil.move目的是保留原始?jí)嚎s包不動(dòng)后續(xù)想調(diào)整劃分比例或切換預(yù)處理方式時(shí)還能重來。random.seed(42)保證重復(fù)執(zhí)行腳本得到完全一樣的劃分結(jié)果——在論文復(fù)現(xiàn)或團(tuán)隊(duì)協(xié)作時(shí)這個(gè)固定種子能省掉大量「為什么你跑的結(jié)果跟我不同」的爭(zhēng)論。3. 用 ResNet18 作為基準(zhǔn)模型從 ImageNet 預(yù)訓(xùn)練權(quán)重起步但最后的全連接層必須自己重搭3.1 為什么是 ResNet18 而不是更深的 ResNet50 或 ViT3400 張數(shù)據(jù)容不下大模型這是這套數(shù)據(jù)集訓(xùn)練時(shí)最關(guān)鍵的選型問題。數(shù)據(jù)量只有 3400 張平均每個(gè)類別不到 100 張如果用 ResNet50 甚至 ViT-Base 從頭訓(xùn)練參數(shù)量遠(yuǎn)大于樣本量結(jié)果必然是嚴(yán)重過擬合——訓(xùn)練集準(zhǔn)確率 99%驗(yàn)證集準(zhǔn)確率 60% 不到。ResNet18 參數(shù)量約 1100 萬配合 ImageNet 預(yù)訓(xùn)練權(quán)重和強(qiáng)數(shù)據(jù)增強(qiáng)正好落在這個(gè)數(shù)據(jù)量的可用范圍內(nèi)。從訓(xùn)練開銷看ResNet18 在單張消費(fèi)級(jí) GPU 上訓(xùn)練 30 到 50 個(gè) epoch 只需要十幾分鐘可以快速迭代驗(yàn)證數(shù)據(jù)增強(qiáng)策略和超參數(shù)而 ResNet50 的訓(xùn)練時(shí)間接近翻倍ViT 還需要額外的學(xué)習(xí)率 warmup 和更精細(xì)的調(diào)參。對(duì)于 36 類果蔬分類這個(gè)任務(wù)ResNet18 的表達(dá)能力已經(jīng)足夠——果蔬圖像的類間差異比如不同水果的顏色、紋理遠(yuǎn)沒有 ImageNet 里 1000 類那么細(xì)模型瓶頸在數(shù)據(jù)量而非網(wǎng)絡(luò)容量。常見做法是先用 ResNet18 拿到基線結(jié)果如果準(zhǔn)確率不足再嘗試更深的網(wǎng)絡(luò)但大概率收益遞減。3.2 加載預(yù)訓(xùn)練權(quán)重的正確姿勢(shì)保留卷積基的權(quán)重丟棄全連接層輸出維度用 PyTorch 加載 ImageNet 預(yù)訓(xùn)練 ResNet18 時(shí)最容易報(bào)錯(cuò)的地方是最后一層全連接fc的輸出維度。ImageNet 預(yù)訓(xùn)練模型的fc層輸出是 1000而我們的任務(wù)是 36 類直接加載會(huì)維度不匹配。常見錯(cuò)誤是連fc層的舊權(quán)重一起加載直接報(bào)RuntimeError: size mismatch。正確處理方式是把fc層替換成新的線性層。import torch import torch.nn as nn from torchvision import models, transforms # 加載 ImageNet 預(yù)訓(xùn)練權(quán)重不修改網(wǎng)絡(luò)結(jié)構(gòu) model models.resnet18(weightsmodels.ResNet18_Weights.IMAGENET1K_V1) # 獲取 ResNet 最后一層全連接層的輸入特征維度 num_ftrs model.fc.in_features # 替換全連接層輸出維度改為 36類別數(shù) model.fc nn.Linear(num_ftrs, 36) # 將模型移到 GPU如可用 device torch.device(cuda if torch.cuda.is_available() else cpu) model model.to(device)這段代碼的核心是model.fc.in_featuresResNet18 的fc接收 512 維輸入ResNet18_Weights.IMAGENET1K_V1枚舉是 torchvision 新版推薦的加載方式比直接傳pretrainedTrue更明確避免未來版本中棄用警告。替換后的fc層參數(shù)是隨機(jī)初始化的而前面的卷積層保留了 ImageNet 上學(xué)習(xí)到的紋理和邊緣特征這種組合正是遷移學(xué)習(xí)的核心思想用預(yù)訓(xùn)練網(wǎng)絡(luò)提取通用特征只訓(xùn)練最后的分類頭。3.3 數(shù)據(jù)增強(qiáng)策略3400 張數(shù)據(jù)不增強(qiáng)必過擬合隨機(jī)裁剪與翻轉(zhuǎn)是最低成本的手段訓(xùn)練集只有約 2700 張圖像如果不做數(shù)據(jù)增強(qiáng)模型兩三輪迭代后就會(huì)開始死記硬背訓(xùn)練樣本。常見做法是訓(xùn)練時(shí)用隨機(jī)裁剪、隨機(jī)水平翻轉(zhuǎn)和顏色擾動(dòng)驗(yàn)證時(shí)只做縮放和中心裁剪保證評(píng)估結(jié)果的確定性。train_transforms transforms.Compose([ transforms.RandomResizedCrop(224, scale(0.8, 1.0)), transforms.RandomHorizontalFlip(), 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_transforms 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]) ])這里的參數(shù)選擇有實(shí)際依據(jù)RandomResizedCrop(224, scale(0.8, 1.0))裁剪比例下限設(shè)為 0.8 而不是默認(rèn)的 0.08是因?yàn)楣邎D像的識(shí)別靠的是整體形狀和顏色特征過度裁剪會(huì)裁掉關(guān)鍵的判別區(qū)域。Normalize用的均值標(biāo)準(zhǔn)差是 ImageNet 的統(tǒng)計(jì)值配套預(yù)訓(xùn)練權(quán)重使用如果用隨機(jī)初始化的權(quán)重從頭訓(xùn)練就需要重新統(tǒng)計(jì)數(shù)據(jù)集的均值和標(biāo)準(zhǔn)差。訓(xùn)練與驗(yàn)證的 transform 差異必須保持——驗(yàn)證集加隨機(jī)增強(qiáng)會(huì)降低指標(biāo)穩(wěn)定性同樣的驗(yàn)證圖像每次評(píng)估結(jié)果都不同無法判斷是模型改進(jìn)還是隨機(jī)擾動(dòng)帶來的波動(dòng)。4. 完整跑通訓(xùn)練流程從 DataLoader 到訓(xùn)練循環(huán)的關(guān)鍵參數(shù)及 36 類分類的 3 個(gè)必調(diào)參數(shù)4.1 構(gòu)建 DataLoaderpin_memory 與 num_workers 對(duì)訓(xùn)練速度的影響遠(yuǎn)比想象中大數(shù)據(jù)加載往往是訓(xùn)練中的一個(gè)隱藏瓶頸。3400 張圖數(shù)據(jù)量不大但如果num_workers0數(shù)據(jù)預(yù)處理在 CPU 上單線程執(zhí)行GPU 頻繁空閑等待訓(xùn)練速度可能慢 3 到 4 倍。實(shí)際調(diào)參時(shí)num_workers通常設(shè)為 CPU 核心數(shù)的四分之一到二分之一pin_memoryTrue能提升 GPU 拷貝效率。from torch.utils.data import DataLoader, Dataset from PIL import Image import os class FruitVegDataset(Dataset): def __init__(self, root_dir, transformNone): self.samples [] self.transform transform for cls in sorted(os.listdir(root_dir)): cls_path os.path.join(root_dir, cls) if not os.path.isdir(cls_path): continue for img_name in os.listdir(cls_path): img_path os.path.join(cls_path, img_name) self.samples.append((img_path, cls)) def __len__(self): return len(self.samples) def __getitem__(self, idx): img_path, cls self.samples[idx] image Image.open(img_path).convert(RGB) if self.transform: image self.transform(image) return image, class_to_idx[cls] train_dataset FruitVegDataset(./fruit_veg_split/train, transformtrain_transforms) val_dataset FruitVegDataset(./fruit_veg_split/val, transformval_transforms) train_loader DataLoader(train_dataset, batch_size32, shuffleTrue, num_workers4, pin_memoryTrue) val_loader DataLoader(val_dataset, batch_size32, shuffleFalse, num_workers4, pin_memoryTrue)自定義Dataset類是最可控的方案它將圖片路徑和類別名加載到內(nèi)存列表中每次__getitem__按索引讀取。轉(zhuǎn)換RGB這步很重要——如果數(shù)據(jù)集中混有灰度圖或 RGBA 圖convert(RGB)統(tǒng)一為三通道避免通道數(shù)不匹配報(bào)錯(cuò)。batch_size32是 3400 張數(shù)據(jù)量下的合理值太小如 8會(huì)讓梯度更新過于頻繁訓(xùn)練不穩(wěn)定太大如 128雖能跑但單 epoch 迭代次數(shù)太少不利于學(xué)習(xí)率衰減策略發(fā)揮作用。4.2 訓(xùn)練循環(huán)必調(diào)的 3 個(gè)參數(shù)學(xué)習(xí)率、權(quán)重衰減、學(xué)習(xí)率衰減策略訓(xùn)練圖像分類模型的參數(shù)很多但初期真正決定模型收斂質(zhì)量的就是這 3 個(gè)參數(shù)。學(xué)習(xí)率用0.001是遷移學(xué)習(xí)場(chǎng)景下的常見起點(diǎn)配合 AdamW 優(yōu)化器同時(shí)需要設(shè)一個(gè)足夠小的權(quán)重衰減系數(shù)配合衰減策略把最終精度再推高幾個(gè)點(diǎn)。import torch.optim as optim import torch.nn as nn criterion nn.CrossEntropyLoss() optimizer optim.AdamW(model.parameters(), lr0.001, weight_decay0.01) # 每隔 10 個(gè) epoch 把學(xué)習(xí)率乘以 0.1 scheduler optim.lr_scheduler.StepLR(optimizer, step_size10, gamma0.1) num_epochs 30 best_val_acc 0.0 for epoch in range(num_epochs): model.train() running_loss 0.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() * images.size(0) scheduler.step() # 驗(yàn)證階段 model.eval() correct 0 total 0 with torch.no_grad(): for images, labels in val_loader: images, labels images.to(device), labels.to(device) outputs model(images) _, predicted torch.max(outputs, 1) total labels.size(0) correct (predicted labels).sum().item() val_acc 100.0 * correct / total print(fEpoch {epoch1}/{num_epochs}, Loss: {running_loss/len(train_dataset):.4f}, fVal Acc: {val_acc:.2f}%) if val_acc best_val_acc: best_val_acc val_acc torch.save(model.state_dict(), best_model.pth)三個(gè)參數(shù)的選擇邏輯各不相同lr0.001不能改成 0.01因?yàn)轭A(yù)訓(xùn)練權(quán)重已經(jīng)處于一個(gè)較好的局部區(qū)域?qū)W習(xí)率過大一步就可能把已有特征破壞掉weight_decay0.01是一個(gè)溫和的 L2 正則化強(qiáng)度對(duì) 3400 張的小數(shù)據(jù)集防過擬合有明顯幫助再大如 0.1則會(huì)讓模型欠擬合StepLR每 10 個(gè) epoch 降十倍是一個(gè)標(biāo)準(zhǔn)套路但更穩(wěn)妥的做法是設(shè)置ReduceLROnPlateau等驗(yàn)證集準(zhǔn)確率連續(xù)多個(gè) epoch 不漲時(shí)再降學(xué)習(xí)率這個(gè)攜帶代碼較少、適應(yīng)性更強(qiáng)。用驗(yàn)證準(zhǔn)確率逐步上升但訓(xùn)練 loss 持續(xù)下降的數(shù)據(jù)走向判斷是及時(shí)發(fā)現(xiàn)在第 15 輪開始時(shí)進(jìn)入過擬合狀態(tài)的關(guān)鍵。4.3 訓(xùn)練過程中的數(shù)據(jù)走向觀察loss 和準(zhǔn)確率分道揚(yáng)鑣時(shí)說明模型開始過擬合了訓(xùn)練不是把腳本跑完就結(jié)束觀察每個(gè) epoch 的輸出數(shù)字是發(fā)現(xiàn)問題的核心窗口。我跑這套數(shù)據(jù)時(shí)前 10 個(gè) epoch 內(nèi)訓(xùn)練 loss 從 3.58 快速降到 0.5 左右驗(yàn)證準(zhǔn)確率同步從 30% 左右爬到 85%——這是正常信號(hào)。到第 15 個(gè) epoch 左右訓(xùn)練 loss 還在繼續(xù)下降但驗(yàn)證準(zhǔn)確率開始原地踏步甚至微弱下降。這個(gè)「訓(xùn)練 loss 下降、驗(yàn)證準(zhǔn)確率停滯」的背離就是過擬合的第一個(gè)信號(hào)此時(shí)靠增加 epoch 數(shù)已經(jīng)挽回不了局面需要靠更強(qiáng)的數(shù)據(jù)增強(qiáng)或更大的權(quán)重衰減來過這一關(guān)。另一個(gè)值得注意的信號(hào)是單個(gè)類別準(zhǔn)確率的差距過大。如果Apple驗(yàn)證準(zhǔn)確率 98%而Raspberry只有 62%那么模型的整體準(zhǔn)確率 86% 掩蓋了嚴(yán)重的類別不均衡問題。要精確定位需要輸出每個(gè)類別的 precision、recall 和混淆矩陣而不是只看總體準(zhǔn)確率。這也是自動(dòng)化調(diào)參難以取代人工觀察的重要原因。5. 結(jié)果評(píng)估與避坑指南36 類果蔬分類實(shí)戰(zhàn)的準(zhǔn)確性評(píng)估及 4 個(gè)必踩坑5.1 混淆矩陣揭示模型把哪些類別搞混了準(zhǔn)確率 86% 聽上去還不錯(cuò)但具體哪些類容易混淆、混淆到什么程度只有混淆矩陣能回答。對(duì)果蔬分類來說形狀和顏色相似的類別是天然的難點(diǎn)——比如Granny Smith和Green Apple或Carrot和Sweet Potato。打印混淆矩陣最常見的做法是結(jié)合sklearn的classification_report和confusion_matrix把每個(gè)類別的 precision、recall、f1-score 全部列出來。import numpy as np from sklearn.metrics import confusion_matrix, classification_report import torch all_preds [] all_labels [] model.eval() with torch.no_grad(): for images, labels in val_loader: images images.to(device) outputs model(images) _, preds torch.max(outputs, 1) all_preds.extend(preds.cpu().numpy()) all_labels.extend(labels.numpy()) cm confusion_matrix(all_labels, all_preds) print(Confusion Matrix:) print(cm) target_names [idx_to_class[i] for i in range(len(idx_to_class))] print(classification_report(all_labels, all_preds, target_namestarget_names))classification_report輸出是一個(gè)值得逐行查看的關(guān)鍵文件它記錄了驗(yàn)證集約 680 張圖中每個(gè)類別的精確率、召回率和 F1 值。confusion_matrix矩陣的行是真實(shí)類別列是預(yù)測(cè)類別對(duì)角線上的數(shù)字是正確預(yù)測(cè)的數(shù)量非對(duì)角線元素則是具體的錯(cuò)誤模式——通過它你能看到類似0被預(yù)測(cè)成16這樣的高頻錯(cuò)誤這就是你在后續(xù)處理時(shí)需要專門優(yōu)化的方向。5.2 避坑記錄 1類別名映射不一致導(dǎo)致訓(xùn)練驗(yàn)證指標(biāo)錯(cuò)亂現(xiàn)象訓(xùn)練過程 loss 正常下降但驗(yàn)證準(zhǔn)確率始終在 10% 到 20% 左右徘徊跟隨機(jī)猜測(cè)一個(gè)水平——這不是模型沒學(xué)好而是標(biāo)簽對(duì)不上。原因我在第一次劃分?jǐn)?shù)據(jù)集后單獨(dú)寫了一個(gè)讀取驗(yàn)證集的腳本里邊直接硬編碼了另一份class_to_idx映射和訓(xùn)練腳本用的映射順序不一致。模型預(yù)測(cè)的0是Apple但驗(yàn)證腳本里0對(duì)應(yīng)的是Banana相當(dāng)于每次評(píng)估都在用錯(cuò)誤答案對(duì)答案。解決統(tǒng)一從唯一的class_mapping.json加載映射任何腳本不自己定義類別列表。這也是我在 2.2 節(jié)堅(jiān)持把映射存 JSON 的原因——硬編碼一次排查三小時(shí)。5.3 避坑記錄 2數(shù)據(jù)增強(qiáng)過猛把識(shí)別特征給增強(qiáng)沒了現(xiàn)象加了RandomResizedCrop和ColorJitter后訓(xùn)練 loss 下降變慢驗(yàn)證準(zhǔn)確率反而比不加增強(qiáng)時(shí)低了 3 到 4 個(gè)百分點(diǎn)。原因數(shù)據(jù)增強(qiáng)的強(qiáng)度不是越大越好。我對(duì)RandomResizedCrop的scale設(shè)置成了默認(rèn)的(0.08, 1.0)這意味著有概率把圖像裁剪到只剩原圖的 8%對(duì)果蔬分類來說如果裁掉的是蘋果柄部附近的表皮區(qū)域剩下的部分完全失去了判別性——這不是增強(qiáng)這是損壞。另外我把ColorJitter的四個(gè)參數(shù)全設(shè)成 0.5果蔬整體顏色被嚴(yán)重偏移模型學(xué)到的是偏色后的特征而不是真實(shí)特征。解決把scale下限提到 0.8ColorJitter系數(shù)降到 0.2。調(diào)整后驗(yàn)證準(zhǔn)確率回到正常水平并最終超過了不加增強(qiáng)的結(jié)果。數(shù)據(jù)增強(qiáng)的幅度要結(jié)合具體任務(wù)判斷圖像分類的通用參數(shù)不一定適合果蔬這種靠顏色和整體形狀區(qū)分的場(chǎng)景。5.4 避坑記錄 3類別不均衡導(dǎo)致小眾類別被完全忽略現(xiàn)象整體驗(yàn)證準(zhǔn)確率 87%但查看classification_report發(fā)現(xiàn)大蒜這一類的 recall 只有 38%大量大蒜圖片被誤判成了洋蔥或姜。原因數(shù)據(jù)集中大蒜樣本本來就少訓(xùn)練集里估計(jì)只有 50 張左右而洋蔥、姜這些類別樣本更多。模型在訓(xùn)練中傾向于把模糊樣本判給先驗(yàn)概率更高的類別——類似的問題在很多教程數(shù)據(jù)集上不明顯因?yàn)閷W(xué)術(shù)數(shù)據(jù)集通常類別數(shù)量均衡而真實(shí)場(chǎng)景的數(shù)據(jù)集幾乎沒有均衡的。解決在CrossEntropyLoss中傳入weight參數(shù)權(quán)重設(shè)置為每個(gè)類別樣本數(shù)的倒數(shù)再歸一化讓小眾類別獲得更高的梯度權(quán)重。此外可以把數(shù)據(jù)增強(qiáng)在小眾類別上加強(qiáng)一些。這類調(diào)整一般能讓小眾類別 recall 從 38% 提升到 60% 以上同時(shí)整體準(zhǔn)確率不會(huì)掉超過 1 到 2 個(gè)百分點(diǎn)。5.5 避坑記錄 4推理時(shí)圖像尺寸和預(yù)處理不一致導(dǎo)致的「玄學(xué)」準(zhǔn)確率下降現(xiàn)象訓(xùn)練結(jié)束評(píng)估時(shí)指標(biāo)不錯(cuò)但拿單張圖做推理測(cè)試時(shí)某些圖片識(shí)別結(jié)果明顯不對(duì)而且是同一類圖片反復(fù)錯(cuò)。原因直接pip install pillow后用Image.open讀圖然后直接model(img)跳過了Resize、Normalize這些預(yù)處理步驟。模型訓(xùn)練時(shí)看到的是標(biāo)準(zhǔn)化后的張量推理時(shí)輸入的是 0 到 255 的原始像素值分布完全對(duì)不上——任何模型在輸入分布偏移下表現(xiàn)都會(huì)崩。解決推理前最后做一遍流程梳理用和訓(xùn)練驗(yàn)證階段完全一樣的val_transforms處理輸入圖片。這里提到的坑是入門階段最高頻的報(bào)錯(cuò)來源之一經(jīng)常被誤認(rèn)為「數(shù)據(jù)集質(zhì)量差」或「模型訓(xùn)練失敗」實(shí)際上是推理鏈路細(xì)節(jié)出了問題。6. 進(jìn)階把準(zhǔn)確率從 86% 推到 92% 的三個(gè)有效手段這個(gè)數(shù)據(jù)集的驗(yàn)證準(zhǔn)確率到 86% 已經(jīng)驗(yàn)證了基礎(chǔ)流程跑通了。想進(jìn)一步往上推不需要換大模型常見的思路是把數(shù)據(jù)增強(qiáng)、訓(xùn)練策略和模型集成重新組織一次。第一個(gè)進(jìn)階方向是引入更強(qiáng)的數(shù)據(jù)增強(qiáng)策略具體可以用torchvision.transforms.RandAugment替代手寫組合。RandAugment通過隨機(jī)組合旋轉(zhuǎn)、平移、對(duì)比度調(diào)整從一組預(yù)定義的圖像變換中隨機(jī)抽取 2 到 3 種、每次幅度隨機(jī)相當(dāng)于每輪訓(xùn)練看到的樣本變化范圍更大。在 3400 張這個(gè)量級(jí)上RandAugment的效果比手動(dòng)調(diào)ColorJitter參數(shù)更穩(wěn)。第二個(gè)手段是改用余弦退火學(xué)習(xí)率調(diào)度器替代StepLR。CosineAnnealingLR能讓學(xué)習(xí)率從初始值平滑下降到接近零再重啟避免StepLR的階梯式突變對(duì)模型收斂的干擾。在果蔬分類這類中小數(shù)據(jù)集上余弦退火配合稍長(zhǎng)訓(xùn)練輪數(shù)如 40 輪通常能比陡降式衰減多出 2 到 3 個(gè)百分點(diǎn)的提升。第三個(gè)手段是微調(diào)策略的分層訓(xùn)練凍結(jié)model.conv1和layer1這些淺層參數(shù)只更新layer3、layer4和fc。淺層卷積捕捉的顏色紋理特征在 ImageNet 上已經(jīng)學(xué)得很好在這類小數(shù)據(jù)集上沒必要重新調(diào)整少更新參數(shù)可以抑制過擬合。凍結(jié)方式是把對(duì)應(yīng)層的requires_grad設(shè)為False優(yōu)化器只接收需要更新層的參數(shù)。# 凍結(jié)前兩層只更新高層特征和分類頭 for name, param in model.named_parameters(): if name.startswith(conv1) or name.startswith(layer1): param.requires_grad False # 優(yōu)化器只接收 requires_gradTrue 的參數(shù) optimizer optim.AdamW( filter(lambda p: p.requires_grad, model.parameters()), lr0.001, weight_decay0.01 )這三個(gè)手段組合下來在同類數(shù)據(jù)集上通常能穩(wěn)定增效 3 到 6 個(gè)點(diǎn)。后續(xù)真正投入時(shí)還需要把best_model.pth導(dǎo)成 ONNX 格式部署到服務(wù)端或者轉(zhuǎn)成 TorchScript 放到移動(dòng)端到那一步才能真正體會(huì)到完整鏈路跑通對(duì)整個(gè)項(xiàng)目的價(jià)值。我在做類似項(xiàng)目時(shí)習(xí)慣用一個(gè)獨(dú)立的實(shí)驗(yàn)記錄表把每次修改的增強(qiáng)策略、學(xué)習(xí)率、優(yōu)化器、最終準(zhǔn)確率記下來調(diào)參時(shí)對(duì)著表比較而不是隨手試。希望這些步驟和踩坑記錄能幫你在自己的圖像分類任務(wù)上少走彎路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
大香蕉一区二区在线观看.| 国产91av在线播放| 熟妇xxxxx性春色| 免费一级毛片在线视频观看| 中日无幕一二三四区| 久湿久久| 欧美少妇性爱网站| 91无码人妻| 亚洲精品美女久久久久久久久| 中文字幕jul-617人妻熟女| 精品国产一区二区久久| 天天综合亚洲综合| 亚洲瓯美色图| 欧美黄色大片在线观看 | 精品国产久久乱码| 亚洲精品白浆高清久久久久久 | 加勒比色99999| 最新中文字幕精品在线| 欧美老熟另类| 黄色操人| 91美女视频电影| 欧美 亚洲 偷拍自拍| 熟女AV一区| 思思视频免费看网站| 黄页18禁| 东北丰满熟女国产一区| 久久久人妻| 国产怡红院| 夜夜夜久久| A 在线网址| 东京热熟女亚洲视频网站| 一区二区三区黄片免费观看| 黄骗免费网站| 插老姨肥穴| 日韩性爱高清免费视频| 天天干人人看综合| 久久少妇人妻| 蜜桃久久久久久| 亚洲人妻中文高清| 亚洲国产综合图区中文字幕| 人人污日韩一区二区| 国产精品毛片?v一区二区三区 | 九九九久千久久激情蜜桃在线看 | 精品乱码在线观看| 五月丁香六月| 自拍大香蕉乱插| 一本色道综合久久欧美日韩精品| 东京热视频网| 日韩字幕一区| 91男女| 久久熟女久| 激情五月天丁香| 午夜操逼不卡| 曰韩人妻中文字幕在线| 五月天久久综合网| 欧美综合色图片| 91在线/欧洲| 天天天天天天天天综合| 干b在线性社区| 97久久精品亚洲| 亚洲αv一区二区三区| 国内精品嫩模A∨私拍小视频| 丝袜狠狠草尤物 91| 国产乱人妻精品入口| 欧美国产有色电影| 狠狠操狠狠燥| 亚洲色婷婷综合久久一区二区三区| 久湿久久| 国产美女自拍视频| 大香蕉中文在线| 久久久偷拍| 蜜臀99久| 日产操逼| 欧美另类精品xxxx| 色色五月天婷婷| 91女神在线视频| 久久鲁夜| 超碰69| 一区二区不卡免费| 欧美天天干| 视频国产精品未满十八禁止在线观看| 黑人娇小av在线播放| 成人97人人超碰人人| 老熟女乱子伦中文字幕一区二区| 天天做日日爱夜夜爽| 99热99在线播放激情| 在线观看av区| 久插综合| 在线午夜成人无码视频| 无码聚合| 亚洲丝袜色图| 亚洲欧美黄| 成 人 A V免费视频在线观看| 91国产操逼视频| 久久国内| 91最新综合| 国产精品大屁股999| 黄页| 无码视频黄色网战| 国产高清在线自在拍69| 一级做a爰片久久毛片图片| 亚洲天堂热| 欧美 亚洲 大香| 97资源站日韩| 色色色色综合网| 五月婷婷hd| 色噜噜精品一区二区三| julia高潮后不停追击中出| 精品一久久久| 男人天堂黄片| 91久久堂| 日日操丁香五月天| 东北操逼| 乱伦图一区| 肉丝网站91| 9久久精品| 99啪啪| 99999这里都精品| 亚洲国产午夜真人一级片中文字幕精品黄网站| 秋霞午夜视频一区二区| 成人一级性爱| 日本一片一区| 亚洲自拍天堂| 久操免费电影| 青草青青久久久久久国产| 啊啊啊久久| 操人妻少妇中文| 97精品在线视频| 一区二区偷拍拍视频| 欧洲人妻视频| 亚洲精品丝袜| 亚洲一本大道中文字幕无码在线| 999热日韩精品| 97超碰久久色| 操屄不卡视频| 美女天天干| 久九9精品| 天综合中文| 国产黄色在线播放观看| 亚洲天堂一二| 国产亚洲精品美女| 亚洲中文字幕97久久精品少妇| www熟女乱伦com| 乱码人妻一区二区三区| 久久国产99精品72福利| 亚洲一区中文字幕一区| 先锋色眉乱伦资源| 特色a在线上| 蜜屁Av| 日韩在线女优天天干| 高潮毛片无遮挡高清免费| 久久亚洲天堂| 免费看污网址| 天天影视综合网欧美精品| 不卡中文字幕aⅴ在线| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 99av| 欧美性第1页| 久久久久久久久久精| 大香蕉视频一二三区| 九九九九精品在线| 天天综合网~91综合网| 日韩精品三级片长长久久| 色 婷97| 在线看免费无码AV天堂的| 在线播放免费av福利片| 爱妃国产亚洲视频中文字幕| 亚洲欧美日韩制服另类| 天天激清| 国产精品盗摄 偷窥盗摄| 青娱乐休闲视频在线观看| 91亚.色| 国产精品一区二区麻豆| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 男人天堂新| 后入合集| 中文字幕一区二区视频在线观看| 亚洲色图欧美色图另类图片| 亚州综合色| 2024黄色视频| 播播亚洲小说亚洲| 精品区9| 国产成人资源| 欧美少妇性乱| 黄色不卡视频| 久久久久久99999国产精品| 久热久| 婷婷久久综合| 偷窥自拍亚洲色图| 久久国产精品熟女人妻| 亚洲综人| 中文字幕日韩专区精品系列| 色婷婷视频| 超碰精品在线| 自拍二页| 亚洲自拍偷拍视频在线| 99热超碰在线| 国产女人9999| 国产精品4p在线观看| 亚洲黄色网址视频| 少妇无码太爽| 国产精品69久久久久久久| 欧洲精品一级二级精品综合视频综合| 永久免费发布性爱网| 久久大香蕉手机高清视频| 伊人青青草久久| 亚洲久久天堂| 全球成人中文在线| 色天堂在线观看| 久久婷婷电影网| 日本一级性爱| 欧美日韩大陆黑人少妇99| 国产精品欧美在线观看| 亚洲国产一级中文综合久久天堂在线免费观看 | 九九九九一级| 91丨九色丨国产丨人妻在线 | 亚洲国产午夜真人一级片中文字幕精品黄网站 | 欧美日韩国产中文精品字幕自在自线| 欧美十八禁在线看| 中文熟女五十乱码在线| 91c色| 超碰精品| 国产精品露脸在线观看| 丝袜熟女2P| 三级色影综合网| 日韩欧美国产高清视频| 丝袜美腿操av| 亚洲色吧网| 无码人妻一区二区三区四区老鸭窝| 亚洲乱码国产乱码精网站| 日韩 欧美 国产 麻豆| 久久五十路熟女人妻| 欧美亚洲日韩16色| 国产综合在线视频网站| 亚洲国内精品成人不卡| 国产精品久久久久无码A√| 欲色影视综合吧| 99久久久无码精品国产人| 色男人色天堂东京热| 日本一二区免费| 极品肉射| 中文字幕精品久久久久人妻红杏ⅰ| 黄色激情电影在线观看| 啊啊啊啊好大好硬啊啊啊啊啊| 黑人精品成人一区二区三区 | 免费A V在线播放| 東南亚性呦成人伦理资源在线视频 | 久久久亚洲高清不打码| 亚洲图片 欧美电影| 人妻密肉在线观看| 久久人妻视频| 九九色热| 凹凸久久人人| 亚洲色图欧美一区二区不卡| 欧美综合在线第一页| 精品一区二区啪啪啪| 亚洲精品国产日韩无码AV永久免| 国产精品久久久久999| 亚洲天堂电影精品一区| 日本高清有码网址视频| 家庭乱伦国产| 久操97| 青青草字幕AV| 久久夜嗨| 午夜精品99久久久久传媒| 美女操逼福利视频| 手机在线播放国产福利| 国内精品久久人妻性色av| 欧美福利视频啊啊啊啊| 蜜臀99久| 97色伦97色伦国产欧美| 69XX一中文字幕人妻91| 百度百度日本操逼| 风月影院十八禁| 啊啊啊啊好多水| 色欧美色交综合| 中文字幕伊人| 中文字幕熟女人妻丝袜丝| 日本精品一区二区三| 媚薬在线视频麻豆| 91无码人妻| 经典丝袜一区| 成人区人妻精品一| 天天干18禁| 欧美天天综合| 国产精品嫩草影院午夜两性| 密乳AV免费观看| 五月婷婷丁香六月丁香| 综合操逼| 久热超碰| 东北老女人的激情视频| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 九九九九热| 亚洲97资源| 天天躁日日躁XXXXYY| 岛国1区2区3区在线观看| 免费的很黄很污的全部视频| 亚洲中文字母在线播放| 天天干少妇| 久久久18禁| 97资源亚洲| 日韩熟女无码| 男女真人网18| 婷婷激情一区二区三区俺也去| 色婷婷久久综合超碰| 96精品一区| 91大神精品长腿在线观看网站| 精精品人妻一区二区三区| 97免费视频在线| 国产无码久久高清| 日本午夜精品理论片A级APP发布| 国产精品99久久久www| 欧美精品丝袜久久久中文字幕| 久草久日| 中文字幕精品日韩中文字幕| 江都AV在线| 人妻少妇无码| 男人a天堂手机在线版| 98色网| 少妇精品久久久| 国产美女高潮视频| 熟女乱伦二区| 四虎884| 亚洲无码一区二区三区三州| 欧美 熟女 日韩| 日日操天天操| 欧美综色欧| 操高情无码| 91久久久老司机| 成人精品久久久午夜福利| 日本裸体久久色噜噜| 亚洲精品97p| 欧美劲爆视频一区二区| 夜夜爽33333| 国产第二页| 国产女乱淫真高清免费视频| 国产一区麻豆免费观看| 热无码中文亚洲H一道本一区二区| 加勒比在线视频| 免费操逼91| 91丨精品丨国产丨丝袜| 免费看欧美美女黄色大片| 人人摸人人舔一区二区| 久久精品小视频| 国内伊人久久久久久网站视频| 99re这里只有精品3| AV一起草在线| 粉嫩小泬久久久一区二区| 精品一区二区人妖| 无码国产精品96久久久久孕妇| 伊人久久88国产女| 日韩欧美aⅴ综合网站发布| 成人情色综合网| 大香蕉国产中文自拍| av在线免费一区二区| 亚洲九九爱| 三级三级三级日本99| 久久精品国产亚洲AV片多多 | 97超碰精品图片| 男人的天堂不卡一区二区| 亚洲综合首页| 亚洲综合伊人| 日本天天人人狠狠在线日美女| 91欧美在线| 成人在线视频一区| 青青草日韩无码| 欧美性爱日韩性爱| 国产视频人人网| AV色五月| 日本 情色 1区2区3区| 久久亚洲av成人无码国产| 超碰在线人妻中文字幕| 欧美天天综合网版| 玖色av| 国产人伦精品一区二区三区| 亚洲操人| 精品久一区免费| 另类小说五月天| 色欲蜜臀AV| AV麻豆免费一区| 波多野结衣AV无码一区| 97久久国产精品女不卡| 97se亚洲综合自| 2020天天色综合| 久湿久久| 夜夜嗨老熟女AV一区二区三区| 综合网亚| 蜜臀av网址| 91 偷| 夜夜爽夜夜爽| 偷窥自拍A片| 超碰色老头| 国产v亚洲v日韩v欧美v片另类| 成人小电影网站tex| 超碰人妻97| 亚洲天堂五月天国产| 国产精品原创巨作?v网站| 亚洲精品一区二区日本| 亚洲春色一区二区三区| 国产亚州高清国产拍精| 天天干天天插| 天天综合网1| 大香蕉2017| 天天爱天天操| 国产精品免费1区2区视频| 久久尹人大香焦视| 国产 亚洲 丝袜 制服| 久久综合婷婷| 六月婷婷一区二区三区| 啊啊啊啊啊好多水| 一本大道不卡一二三区| 人人扣人人操| 五月婷婷hd| 国产女人视频三四五区| 在线免费观看高清无码视频| 女人喷水视频在线观看| 99.色网| 超碰精品97| 亚洲精品一区二区精品| 国产成人精品亚洲日本| 熟女欧美日韩综合婷婷| 夜夜嗨一区二区| 色婷婷日韩精品一区二区三区| 操逼逼中文字幕| 国产日韩欧美亚洲精品95 | 综合伊人激情| 人妻内射一区二区在线视频| 国产麻豆一级精品视频| 青青草原伊人网| 色五月婷婷麻豆在| 亚洲在线网站| 超碰一区二区| 久久本道| 可以免费观看的日韩av毛片| 伊人超碰97| 丝袜熟女2P| 国产精品久久久久久久AV大片| 91色伦综合| 国产美女高潮叫床视频| 97免费视频在线| 亚洲精品一二三四区| 午夜福利激情在线视频| 麻豆熟妇乱妇熟色A片在线看 | 国产精品亚洲无码| av影院十区| 欧美日韩夜夜| 人妻啪| 亚洲欧美啪啪| 毛片视频白嫩| 东亚亚洲无码高清| 中日韩免费看男女操逼大全| 欧美色老汉| 成人日韩欧美| 国产精品美女视频诱惑| 美女大乳久久久久久久女人18| 国产综合网站在线播放 | 91女人的网站| 8050午夜少妇无码| 超碰午夜| 97ai亚洲| 欧美性天天影院| 日韩AV电影网站| 18禁无码永久免费无限制| 久久精品一区二区三区蜜桃臀| 殴美大黄片| 综合亚洲欧美精品日韩?v| 后入式999| 青青色综合| 婷婷视频在线免费观看| 在线αⅴ| 91久久久久久久久18| 2019亚洲男人天堂| 性色中出| 无码99| 亚洲成人免费在线| 日本女优在线视频福利| 乱伦一二三| 欧美色图欧美| 深爱伊人影院| WWW美腿丝袜香蕉中文| 国产农村妇女精品一二区| 开心婷婷五月| 亚洲精品日韩国产欧美| 免费的很黄很污的全部视频| 18禁止看精品中文字幕| 日本孕妇一区二区视频操逼免费看 | 99999国产| 欧美日韩天堂| 91丝袜美腿网站| 午夜福利视频在线一区| 三男一女不戴套的A片| 久久久久婷婷精品av电影| 99re69| 美日韩一卡二卡三卡免费人妻精品| 亚洲色啪| 大香蕉亚洲中文| 色色色网站| 免费黄色片子| 色噜噜狠狠色综无码久久合欧美| 天堂种子在线www网资源| 国产综合网站在线播放 | 亚洲欧洲综合av在线| 欧美不卡在线一区二区| 国产在线能看的你懂的| 国产真乱mangent| 欧洲在线性爱视频| 国产精品无码成人精品| 熟妇乱伦一区二区| 秋霞网无码| 精品九九| 国产高清无码一区三区二区| 精品人妻av在线播放| 欧美丰满少妇xx高潮| 亚欧视频在线| 不卡啪啪视频| 97资源制服丝袜| 97资源超碰| 男女91| 中文字幕一区二区三区人妻少妇在线| 日本精品人妻少妇一区二区| 成人一区二区三区四区| 日韩 女同 综合| 亚州五月| 日韩三级伦理中文字幕| 91精品久久久| 一起草日韩| 亚洲色图欧美色图日韩色图| 婷婷AV一区二区三区| 五月综合激情网| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 大黄片做爱的大的| 国产精品自在自拍视频| 日本一级黄色电影| 800zy一区二区| 97精品国产精品免费观看| 俺去啦自拍| 极品色| 欧美一区二区三区入口| 五月天社区| 欧美1727免费观看视频| 粉嫩少妇自慰在线| 亚洲成人在线乱码色午夜| 亚洲国产综合图区中文字幕| 日韩精品一区二区日韩| 日本女人操逼| 久久精品视频在线观看| 国产精品97超碰| 一区二区三区国产在线播放| 欧美人妻精品一区二区| 久久久工口| 少妇被玩视频二三区| 久久人妻少妇| 国产一区麻豆免费观看| 青青操在线视频| 亚洲无码电影久久久| 操我无码| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 亚洲97网站| 欧美亚洲小说| 日本午夜精品理论片A级APP发布| 玖玖爱综合| 日韩啪啪视频| 伊人久久大香大香线蕉中文| 成人热久久精品| 亚洲欧美小说| 国产精品秘 福利姬在线观看| 久久精品一区| 麻豆精品一区二区三区四区免费观看| 尤物黄色在线观看网站| 99视频精品| 啊啊啊好舒服视频在线观看| 欧美色www亚洲国产阿娇要播| 自拍偷拍2025在线观看| 牛牛久久国产精品视频一二三| 超碰99在线| 日本在线视频导航| 99精品高潮| 1000部熟女视频在线观看| 色婷婷久久| 欧美人妻另类在线| 热久久国产| 日本不卡三级网在线播放| 高清视频一区| 天天透伊人| 中文字幕丝袜| 久久久久久久人妻| 国产97在线视频| 九九热视频在线观看| 日本不卡中文| 99色天堂| 女人综合网| 大香樵伊人网| 78超碰| 国产高清1234区| 特色a在线上| 亚洲天堂男人在线| 久96热在线观看视频| 超碰97欧美在线 | 91国精产品| 九月丁香综合网| 天堂综合| 福利操逼| 蜜臀网址在线| 天天爽夜夜操| 91内射| 亚洲第一色页夜| 国产女人高潮嗷嗷嗷叫小说| 91少妇香蕉久久精品| 熟妇操花| 日韩九九九| 亚洲一区二区三区久久 亚洲一区二区| 中文字幕午夜精品久久久| 人妻久久久久久| 97碰久久| 91天天综合网,天天综合网| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 中文字幕一区二区三四五区日日骚| 不卡中文字幕aⅴ在线| 色眯眯射| 牛黄色久午久| 国产97在线视频| 欧美老妇综合网| 俺去俺来也在线www| 99re视频在线播放青草| 一区黄二区黄| 亚洲一卡2卡3卡4卡乱码网站| 亚洲强奸乱伦影视网| 久肏视频字幕| 九热大香蕉| 不卡啪啪视频| 国产精品com| 激情欧美日韩女同久久| 五月婷婷久久综合| 为用户提供免费看黄网址在线观看| 91劲爆| 三级片大波波| 亚洲黄网在哪免费看| 老鸭窝在线视频播放| 天色综合网| 成人免费在线网站| 人人么人人操| 91美女视频。| 久久內射| 天天拍天天操| 在线观看AV片| 久久久久久亚洲Av无码精| 天天日美女的B| 超碰性爱97| 一级性爱aaaa| 1人人看人人摸人人操| 网友自拍第1页| 久久伊人青青草| 久久精品一区二区三区不卡| 久久久久久AⅤ无码免费肉站 | 裸体1区| www.97在线| 99色热| 91社操逼| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 丁香婷婷五月| 欧美亚州综合网图片| 六月婷婷一区二区三区| 啊嗯好大视频在线观看| 欧美久久伊人| 人妻少妇被猛烈进入中| 大香蕉乱级| 亚洲成人贴图| 亚洲se91| 人人妻人人爽| 超碰在线在公开超碰在线在公开| 曰韩少妇无码| 亚洲少妇在线影音| 亚洲、日韩、综合、另类| 99久久久无码精品国产人| 免费人成毛片乱码| 亚州综合色| 97人人夜| 超碰色97| 麻豆天美在线| 亚洲少妇自拍中文字幕懂色| 亚洲影视高清第一页| 国产亚洲精品美女| 亚洲自拍一区夜夜操| 操学生天天| 插老姨肥穴| 青青色综合| 精品十三区| AV高清一区| 第二页中文字幕| 狠狠搞 亚洲91| 国产人伦精品一区二区三区 | 精品一区二区成人| 少妇一区二区三区高速| 国产亚洲日韩在线三区黑人| 性久久| 懂色av色欲av蜜臀av| 国产人伦a片信息免费片| 青娱乐亚洲自拍| 在线a v| 丁香婷婷九月| 综合色99| 精品 码产区一区二-1080P高清在线www-B029AV| 日日夜夜天天| 亚洲色鬼| 欧美一二三区四五区| 夜夜骑天天燥| 丝袜色综合| 国产熟码AV| 国产熟女无套内射| 国产97在线视频| 国产乱伦搜索结果91P| 一级性爱啪啪视频| 久久久久久精品免费看A级| 探花一区在线| www.四虎在线| 亚洲激情天堂网| 福利一级版子| 国产日韩美女小穴视频网站不卡| 人人妻人人爽一区二区三区| 91AV入口| 特级毛片特黄久久免费看| 精品国产乱码久久久久久口爆网站| 国产成人网| 一区黄二区黄| 东京热不卡视频| 欧美色图20P| 韩国免费播放一级毛片| 欧美 日韩 亚洲 春色| 女人爽到高潮潮喷18禁网站| 日韩女优中文字幕| 青青草色插素人| 大香蕉线| 国产乱伦亚洲| 一起草精品人妻| 欧洲综合视频| 国产后入内射| 一区二区乱码福利| 男人a天堂手机在线版| 99久在线精品99re8| 午夜精品久久久久久久99热影院| 日本免费一区二区不卡| 蜜臀99久久精品久久久久| 伊人久久大香线蕉无码| 一区二区日韩欧美久久| 日韩钢筋无码高清啾啾啾| 淫淫综合网| 老熟妇一区二区三区…| 久久久久久夜夜夜夜夜| 色九九综合AV| 亚洲情色综合| 婷婷99狠狠| 330dv亚洲成年视频网| 天天欧美| 中国国国产一级特黄毛片| 在线 制服丝袜中出 人妻| 老女人老91妇女老热女| 国产精品免费久久久久久久久久| 国人欧美精品一区二区| 涩五月婷婷| 9九九国产| 岛国片在线播放| 九久久九精品视频| 欧美96交| www.91理论| 三级网站超变态精品| 欧美色九九| 五月天婷精品激情| 久久人妻无码毛片A片麻豆| 国产91影院| 日本国产欧美高清在线| 97在线观看免费视频l| 日韩免费在线观看不卡| 四虎永久在线精品免费网址| 中文字幕福利视频一区二区三区在线观看| 少妇啪啪自拍| 亚洲天天影视综合网| 中文字幕一区二区视频在线观看| 激情九月婷婷| 日韩91网| 欧美一区二区三区日韩| 中国小夫妻勾搭露脸淫荡对白| 免费试看60秒| 九九aV| 青青草国产一区二区三区| 高清国产精品福利网站| 天无日色综合| 亚州一区二区| 人妻精品综合中文字幕在线 | 二对二中文字幕。| 欧美人人操人人插| 久久大香蕉手机高清| 91天天| 欧美78p| 91殴美| 亚洲欧美性生活| 2023天天操夜夜操| 丝袜熟女2P| 亚欧色图在线激情| 色一射色一射| 91亚洲色人| 超碰98综合网| 无码精品人妻一区二区三区妖精| 学生妹天天看| 精品伊人久久久大香线蕉小说| 天天操福利视频综合网站| 韩国一级做A片免费的| 97国产精选| 女优视频第10页| 羞涩视频| 免费看一级a性色生活片久久无| 天天干人人乐| 日本熟妇熟色97一本在线观看| 男女啪啪啪18禁网站| wwe 天天干.com| 三级激情网站| 91中出在线| 黄污污污污| 性饥渴少妇av无码毛片| 天天综合网~91综合网| 免费av大片| 99999精品| 日韩三级在线观看mp4| 人人操人人大香蕉| 手机在线大香蕉| 亚洲s在线观看| 在线观看色视频| 天天天干977| 亚洲AV无码久久精品蜜桃小说| 懂色天天爱天天日天天射天天澡| 毛片99-全集电影手机免费观看完整-B029AV| 中文字幕 国产 精品| 午夜超碰| 粉嫩小泬久久久一区二区| 国产精品香蕉热久久新品| 久久久青青草| 久草久热| 天美麻花大全视频| 在线a亚洲视频播放在线| 九一性生活免费视频| 日韩人妻精品久久久久| 国产一级高跟丝袜| 日本二区不卡| 97这里都是精品| www.久久99| 免费中文综合精品| 激情小说激情视频| 美女毛片999| AV九九| 美女国产一区二区久久| 精品午夜福利| 欧美日日人人天天| 丝袜内射| 久久久 国产精品| 午夜舔阴达高潮视频免费看| 美女91av| 神马久久网| 九九热免费视频| 黄色性爱网网| 久久无码一区二区二三区性色| 成人黄页| 蜜臀人妻少妇久久在线观看| 亚洲色诱惑| 国产精品久久99日日| 九九九九精品| 啊啊啊啊啊啊在线| 尤物视频偷拍免费| 中文字幕少妇色| 97超碰色五月| www.超碰在线| 久久久成人国产精品无码| 78操B| 夜夜国自区| 亚洲AV在线资源| 69人妻精品丰满熟女区| 丁香五月色| 亚洲1区| Blackedraw视频一区二区| 国内偷自视频区视频综合| 熟妇视频一区二区三区在线| 97鸡把在线视频| 蜜桃精品视频一区二区三区| 久草色悠悠在线视频| 九九无码久久精品视频| 亚洲无码99| 激情网五月天| 激情色播| 一区二区偷拍拍视频| 亚洲国产欧美中日韩成人综合视频| 午夜一级免费毛片| 亚洲国产成人福利在线观看| 久久精品午夜国产亚洲AV无码| 国产色产精品在线观看| 91性片| 大香蕉中文| 九九九精品美女| 91丝袜人妻| 东京热av影院| 蜜臀aV午夜一区二区三区| 久久机热| 老鸭窝在线视频播放| 黑人性欧美| 色淫网站优优视频| 呦呦一区| 青娱乐福利99| 操逼片国产| 综合操逼| 无码丰满熟妇一区二区浪潮AV| 国产av波波国产精品| 欧美一级久久久久久久大片动画| 日韩黄片视频试看| 国产特级毛片AAAAAA高潮流水 | 男人的天堂无码| 91天美传媒在线观看| 国厂麻豆77q4| 啊啊啊久久久视频| 老熟乱一区二区三区四区| 欧美亚洲特P| 久久的免费性爱视频| 美女天天干| 国产精品无码av| 国内自拍 日韩激情 99| 人妻少妇一区二区| 中日无幕一二三四区| 欧美成人9797| 欧美影音在线| 精品一区二区2| av影片在线观看不卡| 尹人免费观看视频在线| 看日韩操逼| 五月香婷婷| 国产亚洲欧洲在线观看| 综合欧美日韩在线| 久久久久久999| 福利视频香蕉免费一区二区在线| 女同女同恋久久级三级| 亚洲最大的综合性av| 约操熟妇| 亚 欧 美 综合| 日日黄色三级网站| 这里都是精品| 久久亚洲中文字幕视频| 播播亚洲小说亚洲| 久7色| 青草园大香蕉| 亚洲欧美日韩激情不卡| 国内毛片婷婷六月色| 99在线观看| 天美传媒在线一区| 欧美一区二区| 东京热男人的天堂精品| 99热这里是精品| 9 9无尺码天堂网| 91精品国产综合久久久蜜臀酒店| 粉嫩av一区二区三区天美传媒| 精品国产一区二区三区四区在线看| 男男H黄动漫啪啪无遮挡网站| 人妻天天爽夜夜爽爽| 超碰伊人在线| 午夜福利国产欧美日韩夜夜| 亚洲欧洲日韩国产自在线| 色哟哟-国产专区| 黑白配性爱AV成| 国产成人欧美一区二区三区的国产| 日本人妻A片成人免费看片| 久久久久网站-538在线视频-欧美永久乱码 | 男人的午夜天堂| 久操网视频| 久久久久久中文字幕中文字幕最新| 任你干在线视频| 久久久亚洲Av| 91久精品| 91精品国产乱码| 国产又黄又粗的视频| 久久精视频美日韩在线视频| 97日视频| 九九九热| 欧美极品女人的天堂| 亚洲丰满很很操| 天天看天天在线精品| 97久久久久久久精| 精品国产乱子伦一区二区三区,精品一| 日韩黄色av中文字幕| 中文一区二区婷婷视频| 丝袜美腿91| 91精品伊人久久久大香线蕉91| 60秒试看最爽10分钟网站| 99热在线观看| 亚洲操操操| 超碰在线免费一区二区三区| 殴美在线AⅤ| 97av,com| 欧美性爱日韩性爱| 日本99一区二区| 亚洲一区二区三区在线激情| 97精品一二区| 久久97精品久久久久久久不卡| 97色婷婷| 无码二级三级| 中出91| 60秒不遮不挡| 久久秀这里有精品| 日本久久超碰| 91女在线观看| 婷婷综合伊人一区| 男人下部插入女人下部| 国产农村妇女精品| 嗯……啊…嗯嗯…啊…好舒服| 中文字幕三四区| 久久9亚洲| 电家庭影院午夜69久久夜色精品国产69乱| 亚洲天天艹| 亚洲加勒比久久日本道| 国产久久视频| 老司机深夜18禁污污网站| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲精品国产日韩无码AV永久免 | 亚洲成熟国产精品美女| 天天日日本| 很黄很色的视频在线观看| 九九久久一区二区三区| 99e久久国产精品| 91女神在线视频| 日韩免费看在线黄色片| 国产怡红院| 国产精品久久久久久无码红治院| 欧美一区二区日韩传媒搭讪精品| AV天堂国产| 日韩图区| 在线99热| 欧美草草高清日韩视频| 色综合一区二区三巨| 蜜臀久久99精品久久久| 国产精品小视频一区二区三区| 97色碰| 国产精品网站www| 麻豆啪啪啪视频| 91欧美经典| 97久久免费| 男女激情黄色网址| 色妇综合网| 伊人青青草久久| 黄色av一区二区在线| 99999国产| 欧美精品双插| 亚洲一区二区三区欧美日韩| 熟女人妻一区二区三区免费看 | 激情网色| 亚洲性天堂| 狠狠搞 亚洲91| 偷窥自拍亚洲天堂网爆| 好爽视频在线观看视频| 国精综合一二三区影视| 看大黄色大片原件| 中文字幕国产| 精彩视频日韩| av日韩在线观看电影| 97综合久久| 亭亭在线资源| 久久9久9久99久9久9| 国产精品久久久久中文字幕| 天美传媒AV在线播放| 欧美性爱一区二区三区四区| 婷婷综合在线| 人妻无一区二区三区| 亚洲AV色图| 国产美女激情| 99色色| 乱伦熟女区| 欧美大香蕉久| 加勒比海色香蕉婷婷| 香蕉免费一区二区三区不读| 天堂九九九九九九九九九| 国产精品麻豆视频网站| 国产性爱强奸乱伦大全| 青青草在线视频欧美| 夜夜肏2021| 操逼日韩无码| 国产黄色影片在线观看| 天天综合网网欲色| 久久↗↗| 亚洲日韩熟女人妻高清在线| 日韩成人大片一区二区| 韩国轻伦国内自拍一区| 亚洲中文字幕妇伦久久| 精品人妻一区二区三区蜜桃视频| 3p国产色噜噜一区| 午夜免费视频1000| 麻豆九九九| 校园春色宗合网| 99久在线精品99re8蜜桃| 国产精品熟女一区二区三区| 麻豆视频国产一区二区| 亚洲国产ⅴ高清在线观看| 色欲日韩欧美在线一区| 丁香六月婷婷久久综合| 超硑97精品| 欧美亚洲韩国视频十五区| 欧美性爱超碰97| 国产精品福利视频播放| 日本一区二区成人在线| 最新欧美色网| 四虎884a| 蜜臀久久99精品久久久久久成人小说 | 夜夜高潮夜夜爽国产伦精品| 啊啊啊好大好深| 国产综合在线视频网站| 国产强奸超碰AV| 大香蕉伊人网WWWn0n| 草b在线| 九九综合九九综合| 秋霞一级A片黄色视频| 3P乱轮视频| 神马精品视频| 久久国语| 欧美色图综合| 激情网色| 素人播放一区| 亚洲综合一| 夜夜爽夜夜爽| 国产欧美一级在线观看| 伊人网av| 日韩少妇在线视频| 性夜影院爽黄A爽免费动漫| 91精品国产高清久久久久久,亚洲成人 | 屁股久久久久久| 中文操嬖片。| 天美国产三级传媒| 深夜激情| 国产精品黄色三级av| 四虎AV在线观看| 91热色| 亚洲巨爆乳一区二区三区四季网| 国产女性无套 免费观看| 曰本精品久久久| 超碰吊日色| 99热在线观看| 亚洲欧洲精品成人| 色噜噜狠狠色综无码久久合欧美| 亚洲网站一区二区在线| 九九久久精品| 久久久久国产精品人妻aⅴ天堂| 天天激清| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 不卡六六在线91| 三级激情网站| 亚洲成人av色网| 色九色久| 在线一道啪| 亚州久久9| 九九热九九| 国产伦精品一区二区三区在线观| 欧美影音在线| 亚洲无码偷拍| 大稥蕉免费视频这里只有精品| 60秒免费小视频| 热无码中文亚洲H一道本一区二区| 欧美色偷拍 | 亚洲男人天堂网久久| 欧美人妻少妇| 一区二区偷拍拍视频|