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

ARTICLE DETAIL

資訊詳情

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

PyTorch眼睛疾病分類(lèi)數(shù)據(jù)集訓(xùn)練:驗(yàn)證集劃分與類(lèi)別不平衡實(shí)戰(zhàn)指南

PyTorch眼睛疾病分類(lèi)數(shù)據(jù)集訓(xùn)練:驗(yàn)證集劃分與類(lèi)別不平衡實(shí)戰(zhàn)指南 簡(jiǎn)介眼睛疾病分類(lèi)數(shù)據(jù)集是一份可直接用于圖像分類(lèi)任務(wù)的中小型醫(yī)學(xué)影像資源包含白內(nèi)障、青光眼、正常、視網(wǎng)膜疾病四個(gè)類(lèi)別適合臨床篩查模型練手、課程實(shí)驗(yàn)或YOLOv5分類(lèi)項(xiàng)目。數(shù)據(jù)按train和test目錄整理訓(xùn)練集481張、測(cè)試集120張均為JPEG格式配合JSON分類(lèi)字典和Python可視化腳本可快速完成數(shù)據(jù)劃分查看與模型迭代。壓縮包共604個(gè)文件除601張圖片外還有1個(gè)字典文件、1個(gè)可視化腳本和1張示例圖整包約61MB輕量易下載。目前已有413人學(xué)習(xí)下載腳本支持隨機(jī)抽取4張圖展示并保存結(jié)果無(wú)需改動(dòng)即可運(yùn)行能幫助使用者快速核對(duì)數(shù)據(jù)質(zhì)量和類(lèi)別分布。1. 拿到眼睛疾病分類(lèi)數(shù)據(jù)集先別急著訓(xùn)訓(xùn)練集和驗(yàn)證集到底在做什么接手一個(gè)醫(yī)學(xué)圖像的眼睛疾病分類(lèi)數(shù)據(jù)集時(shí)真正讓人栽跟頭的往往不是模型而是文件夾里那兩個(gè)split訓(xùn)練集和驗(yàn)證集。很多人直接把train和val合并重訓(xùn)或者反復(fù)拿驗(yàn)證集調(diào)參最后精度漂亮得可疑一上真實(shí)場(chǎng)景就露餡。要解決的問(wèn)題很具體這個(gè)分類(lèi)數(shù)據(jù)集該按什么結(jié)構(gòu)讀取、類(lèi)別分布怎么看、訓(xùn)練流程怎么寫(xiě)、驗(yàn)證集怎么用才不作弊。適合用PyTorch做醫(yī)學(xué)圖像分類(lèi)的算法工程師、做畢設(shè)的學(xué)生以及想從yolo那套自定義數(shù)據(jù)習(xí)慣切到分類(lèi)任務(wù)的人。2. 拆解眼睛疾病分類(lèi)數(shù)據(jù)集目錄結(jié)構(gòu)、標(biāo)簽格式與劃分合理性檢查2.1 先看目錄結(jié)構(gòu)和標(biāo)簽格式再?zèng)Q定用什么姿勢(shì)讀取常見(jiàn)眼睛疾病分類(lèi)數(shù)據(jù)集的組織方式通常是train目錄下按類(lèi)別建子文件夾val目錄同樣按類(lèi)別建子文件夾圖片文件散落在各自的類(lèi)別文件夾里。類(lèi)別名即標(biāo)簽文件夾名就是醫(yī)生給的診斷結(jié)論。公開(kāi)數(shù)據(jù)集里的類(lèi)別體系大體圍繞眼底鏡圖像展開(kāi)正常、糖尿病視網(wǎng)膜病變、青光眼、白內(nèi)障、黃斑變性、高血壓視網(wǎng)膜病變、近視等。這類(lèi)圖像通常由眼底相機(jī)采集也有部分是醫(yī)院病歷系統(tǒng)里導(dǎo)出的彩色照片。拿到數(shù)據(jù)后第一件事不是寫(xiě)訓(xùn)練腳本而是確認(rèn)兩類(lèi)元信息圖片擴(kuò)展名是否統(tǒng)一.jpg和.png混用非常常見(jiàn)類(lèi)別文件夾里有沒(méi)有混入非圖片文件比如隱藏的desktop.ini或macOS的.DS_Store。最有效的檢查方式是直接對(duì)每個(gè)split做一次文件統(tǒng)計(jì)把類(lèi)別和數(shù)量一次性打出來(lái)。import os from collections import Counter data_root eye_disease_dataset for split in [train, val]: split_path os.path.join(data_root, split) if not os.path.isdir(split_path): print(f{split} 目錄不存在先檢查數(shù)據(jù)集路徑) continue classes [d for d in os.listdir(split_path) if os.path.isdir(os.path.join(split_path, d))] per_class {} for cls in sorted(classes): per_class[cls] len(os.listdir(os.path.join(split_path, cls))) total sum(per_class.values()) print(f[{split}] 共 {total} 張{len(classes)} 個(gè)類(lèi)別) for cls, n in sorted(per_class.items(), keylambda x: -x[1]): print(f {cls}: {n} ({n / total * 100:.2f}%))這段腳本輸出每個(gè)類(lèi)別在訓(xùn)練集和驗(yàn)證集的數(shù)量占比。眼睛疾病數(shù)據(jù)集的通病是類(lèi)別不平衡正常眼通常是數(shù)量最多的類(lèi)而糖尿病視網(wǎng)膜病變的早期樣本可能只有正常眼的零頭。如果某個(gè)類(lèi)在驗(yàn)證集里只有個(gè)位數(shù)對(duì)應(yīng)的acc、precision都不可信后面必須換成per-class指標(biāo)。另一個(gè)判斷依據(jù)是目錄層級(jí)torchvision的ImageFolder要求類(lèi)別文件夾直接掛在split下如果數(shù)據(jù)集是train/class/subfolder這種二次封裝結(jié)構(gòu)或者用csv索引標(biāo)簽就要寫(xiě)自定義Dataset不能硬套現(xiàn)成工具。2.2 驗(yàn)證集、測(cè)試集和訓(xùn)練集標(biāo)題只給了兩個(gè)split時(shí)怎么補(bǔ)第三個(gè)很多公開(kāi)醫(yī)學(xué)圖像數(shù)據(jù)集只劃分了train和val沒(méi)有test。原因通常是數(shù)據(jù)量少官方想給使用者預(yù)留調(diào)參空間。但作為落地的人必須自己補(bǔ)出一個(gè)test split否則報(bào)出來(lái)的所有指標(biāo)都可能被驗(yàn)證集“污染”。驗(yàn)證集用來(lái)做模型選擇、超參調(diào)優(yōu)和早停測(cè)試集用來(lái)估計(jì)最終交給業(yè)務(wù)方時(shí)的真實(shí)性能。常見(jiàn)做法是從訓(xùn)練集里再切一小塊出來(lái)當(dāng)測(cè)試集。假如訓(xùn)練集有8000張按分層抽樣切出10%約800張作為test剩下的做train。切分時(shí)用sklearn的train_test_splitstratify按類(lèi)別標(biāo)簽分層保證每個(gè)類(lèi)在test里的比例和train一致。import shutil from pathlib import Path from sklearn.model_selection import train_test_split train_root Path(eye_disease_dataset/train) test_root Path(eye_disease_dataset/test) test_root.mkdir(exist_okTrue) for cls_dir in train_root.iterdir(): if not cls_dir.is_dir(): continue imgs list(cls_dir.glob(*)) _, test_imgs train_test_split(imgs, test_size0.1, random_state42) dest test_root / cls_dir.name dest.mkdir(parentsTrue, exist_okTrue) for img in test_imgs: shutil.copy(str(img), str(dest / img.name))用random_state固定隨機(jī)種子保證切分可復(fù)現(xiàn)用copy而不是move防止改主意后數(shù)據(jù)被搬走。有一個(gè)細(xì)節(jié)容易被忽略如果這張數(shù)據(jù)來(lái)自同一病人的多角度拍攝這個(gè)腳本是不安全的先按病人分組再切具體做法在2.3和避坑章展開(kāi)。測(cè)試集切出來(lái)之后只碰一次不要在它上面反復(fù)調(diào)參否則測(cè)試集就變成了第二個(gè)驗(yàn)證集失去了終極驗(yàn)證的意義。2.3 劃分合理性檢查同一個(gè)人可能出現(xiàn)在兩個(gè)集合里嗎眼睛疾病分類(lèi)數(shù)據(jù)集大多來(lái)自醫(yī)院采集同一個(gè)病人可能有兩眼甚至多張不同時(shí)間拍攝的眼底圖。如果切分按文件隨機(jī)打散同一病人的多張圖很可能同時(shí)出現(xiàn)在訓(xùn)練集和驗(yàn)證集。模型會(huì)把“這個(gè)病人的視盤(pán)形態(tài)”記下來(lái)而不是學(xué)習(xí)“這類(lèi)疾病的通用特征”驗(yàn)證集acc會(huì)虛高。檢查方式先找數(shù)據(jù)集自帶的元數(shù)據(jù)csv或DICOM頭看有沒(méi)有patient_id字段。沒(méi)有元數(shù)據(jù)時(shí)部分?jǐn)?shù)據(jù)集文件名會(huì)帶patient前綴。如果兩者都沒(méi)有可以用感知哈希做近似重復(fù)圖片檢測(cè)from PIL import Image import numpy as np def phash(path, size16): img Image.open(path).convert(L).resize((size, size)) pixels np.array(img, dtypenp.float32) avg pixels.mean() return .join(1 if p avg else 0 for p in pixels.flatten()) def hamming(a, b): return sum(c1 ! c2 for c1, c2 in zip(a, b))phash把圖像縮小成16x16的灰度指紋漢明距離小于等于4的兩張圖基本可以認(rèn)定是重復(fù)或近似重復(fù)。但這個(gè)方法只能找出“拷貝/裁剪”級(jí)別的重復(fù)同一個(gè)病人兩只眼的外觀差異明顯phash查不出來(lái)。最穩(wěn)妥還是靠patient_id切分先按病人分組再在所有病人上做train/val/test的分層切分。切完再回頭看一眼train和val的類(lèi)別分布確認(rèn)兩個(gè)集合里的病人集合沒(méi)有交集。3. 用 PyTorch 跑通眼睛疾病分類(lèi)的最小訓(xùn)練流程ResNet 路線3.1 數(shù)據(jù)讀取ImageFolder 的兩個(gè)注意點(diǎn)torchvision的ImageFolder天然適配第2章的目錄結(jié)構(gòu)不用寫(xiě)任何自定義Dataset。訓(xùn)練集和驗(yàn)證集分別掛不同的transform訓(xùn)練集做隨機(jī)增強(qiáng)驗(yàn)證集只做尺寸統(tǒng)一和標(biāo)準(zhǔn)化import torch import torch.nn as nn from torch.utils.data import DataLoader from torchvision import datasets, transforms, models train_tf transforms.Compose([ transforms.Resize((256, 256)), transforms.RandomResizedCrop(224, scale(0.7, 1.0)), transforms.RandomHorizontalFlip(p0.5), transforms.ColorJitter(brightness0.15, contrast0.15), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) ]) val_tf transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) ]) train_ds datasets.ImageFolder(eye_disease_dataset/train, transformtrain_tf) val_ds datasets.ImageFolder(eye_disease_dataset/val, transformval_tf) train_loader DataLoader(train_ds, batch_size32, shuffleTrue, num_workers4, pin_memoryTrue) val_loader DataLoader(val_ds, batch_size32, shuffleFalse, num_workers4, pin_memoryTrue)驗(yàn)證集不應(yīng)用RandomResizedCrop和Flip驗(yàn)證要的是確定性的結(jié)果訓(xùn)練集用RandomResizedCrop能模擬眼底相機(jī)拍攝角度和視場(chǎng)范圍的差異。Normalize沿用ImageNet的mean/std對(duì)眼底圖這種紅色調(diào)為主的圖像其實(shí)夠用。如果發(fā)現(xiàn)圖像分布差異很大可以從數(shù)據(jù)集中采樣幾千張算出自己的mean/std替換但多數(shù)場(chǎng)景沒(méi)必要。注意Windows上num_workers設(shè)為0最穩(wěn)Linux下再按CPU核數(shù)往上加。先跑通流程再優(yōu)化加載速度。3.2 訓(xùn)練腳本骨架損失函數(shù)、優(yōu)化器與驗(yàn)證時(shí)機(jī)用預(yù)訓(xùn)練ResNet50作為backbone是多數(shù)眼睛疾病分類(lèi)項(xiàng)目入門(mén)標(biāo)配。參數(shù)少、權(quán)重好找、微調(diào)穩(wěn)定。替換最后一層全連接損失函數(shù)先用最樸素的CrossEntropyLoss驗(yàn)證集每個(gè)epoch都算一次acc保存val acc最高的checkpointmodel models.resnet50(weightsmodels.ResNet50_Weights.IMAGENET1K_V1) num_classes len(train_ds.classes) model.fc nn.Linear(model.fc.in_features, num_classes) model model.cuda() criterion nn.CrossEntropyLoss() optimizer torch.optim.AdamW(model.parameters(), lr1e-4, weight_decay1e-4) scheduler torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, modemax, factor0.5, patience3) def validate(model, loader): model.eval() correct 0 total 0 all_preds, all_labels [], [] with torch.no_grad(): for images, labels in loader: images, labels images.cuda(), labels.cuda() outputs model(images) _, predicted torch.max(outputs, 1) correct (predicted labels).sum().item() total labels.size(0) all_preds.extend(predicted.cpu().tolist()) all_labels.extend(labels.cpu().tolist()) return correct / total, all_preds, all_labels best_acc 0 no_improve 0 early_stop_patience 5 for epoch in range(30): model.train() for images, labels in train_loader: images, labels images.cuda(), labels.cuda() optimizer.zero_grad() outputs model(images) loss criterion(outputs, labels) loss.backward() optimizer.step() acc, preds, labels validate(model, val_loader) scheduler.step(acc) print(fepoch {epoch1}: val_acc{acc:.4f} lr{optimizer.param_groups[0][lr]:.2e}) if acc best_acc: best_acc acc no_improve 0 torch.save(model.state_dict(), best_eye_cls.pth) else: no_improve 1 if no_improve early_stop_patience: print(f{early_stop_patience} 個(gè)epoch無(wú)提升早停) breaklr1e-4是微調(diào)全模型的安全起點(diǎn)如果只解凍最后一層fc訓(xùn)練可以用1e-3但全模型微調(diào)降到1e-4更穩(wěn)。weight_decay1e-4抑制醫(yī)學(xué)圖像上容易出現(xiàn)的過(guò)擬合。batch_size32搭配ResNet50在24G以下顯存基本舒適顯存受限改16時(shí)學(xué)習(xí)率相應(yīng)減半。早停條件用“val acc連續(xù)epoch無(wú)提升”而不是“val loss無(wú)下降”醫(yī)學(xué)圖像噪聲大loss和acc并非總是同步。一個(gè)常見(jiàn)的翻車(chē)點(diǎn)val acc已經(jīng)連續(xù)5個(gè)epoch沒(méi)漲但因沒(méi)保存最優(yōu)模型交付的是最后一個(gè)epoch的權(quán)重性能大幅回退。上面把早停和模型保存寫(xiě)在一起訓(xùn)完直接加載best_eye_cls.pth才是真正能用的模型。3.3 關(guān)鍵參數(shù)設(shè)置圖像尺寸、batch size 與學(xué)習(xí)率的搭配眼睛疾病分類(lèi)數(shù)據(jù)集里的圖像尺寸通常不統(tǒng)一。眼底相機(jī)常見(jiàn)2048x1536、1600x1200也有手機(jī)翻拍的病歷圖。Resize到256再中心裁剪到224是ImageNet時(shí)代的標(biāo)準(zhǔn)做法。想追求速度可以縮到192或160但代價(jià)是視網(wǎng)膜小血管、微動(dòng)脈瘤這類(lèi)細(xì)節(jié)可能被模糊掉建議先用224跑通再壓縮。batch和學(xué)習(xí)率的搭配遵循線性縮放原則batch32配lr1e-4batch16則lr減半到5e-5batch64可以嘗試2e-4。下表只適用于單卡小batch場(chǎng)景多卡時(shí)不這么算。batch size學(xué)習(xí)率起點(diǎn)典型場(chǎng)景165e-5顯存受限的舊卡321e-4最常見(jiàn)配置642e-412G以上顯存DataLoader里還有個(gè)容易被忽略的參數(shù)drop_last。醫(yī)學(xué)圖像數(shù)據(jù)集樣本數(shù)經(jīng)常不是batch_size的整數(shù)倍最后一個(gè)batch可能只有幾張圖BN層的統(tǒng)計(jì)會(huì)不穩(wěn)定。訓(xùn)練時(shí)建議設(shè)置drop_lastTrue驗(yàn)證時(shí)保持drop_lastFalse以便統(tǒng)計(jì)所有樣本。4. 驗(yàn)證集評(píng)估與精度調(diào)優(yōu)眼睛疾病分類(lèi)的 3 個(gè)必調(diào)參數(shù)4.1 用混淆矩陣看模型到底錯(cuò)在哪一類(lèi)總acc對(duì)醫(yī)學(xué)圖像分類(lèi)并不夠。類(lèi)別不平衡嚴(yán)重時(shí)正常眼占大頭acc會(huì)被正常類(lèi)拉高模型把所有病變都判成正常也能到60%以上。要在驗(yàn)證集上算per-class的recall和混淆矩陣from sklearn.metrics import classification_report, confusion_matrix import seaborn as sns import matplotlib.pyplot as plt classes val_ds.classes # 這兩個(gè)列表來(lái)自validate()函數(shù)返回的preds和labels report classification_report(labels, preds, target_namesclasses, digits3) print(report) cm confusion_matrix(labels, preds) cm_norm cm.astype(float) / cm.sum(axis1, keepdimsTrue) plt.figure(figsize(10, 8)) sns.heatmap(cm_norm, annotTrue, fmt.2f, cmapBlues, xticklabelsclasses, yticklabelsclasses) plt.xlabel(Predicted) plt.ylabel(True) plt.tight_layout() plt.savefig(eye_confusion_matrix.png, dpi150)混淆矩陣呈現(xiàn)的是“真實(shí)類(lèi)別vs預(yù)測(cè)類(lèi)別”。在醫(yī)學(xué)圖像場(chǎng)景里關(guān)注重點(diǎn)不是對(duì)角線多高而是哪些非對(duì)角線值得警惕。糖尿病視網(wǎng)膜病變和黃斑變性早期都表現(xiàn)為黃斑區(qū)異常模型容易把兩者搞混如果模型把青光眼判成正常這種錯(cuò)誤在臨床上屬于漏診。看矩陣時(shí)先圈出“正常眼那行”的false negative因?yàn)椴』悸┰\比誤診更危險(xiǎn)?,F(xiàn)實(shí)里還有一個(gè)常見(jiàn)現(xiàn)象模型對(duì)驗(yàn)證集里“背景亮度過(guò)高”的樣本常常成片判錯(cuò)。這類(lèi)樣本往往在混淆矩陣某一列扎堆先別急著加數(shù)據(jù)回去看那一類(lèi)圖像是不是存在設(shè)備差異。4.2 類(lèi)別不平衡損失函數(shù)替換與樣本權(quán)重用CrossEntropyLoss時(shí)class weight是最直接的平衡手段。先統(tǒng)計(jì)訓(xùn)練集的每類(lèi)樣本數(shù)再算權(quán)重注意歸一化import os from collections import Counter import torch split_path eye_disease_dataset/train class_counts Counter() for cls in sorted(os.listdir(split_path)): cls_path os.path.join(split_path, cls) if os.path.isdir(cls_path): class_counts[cls] len(os.listdir(cls_path)) counts_tensor torch.tensor([class_counts[c] for c in sorted(class_counts)]) weights 1.0 / counts_tensor.float() weights weights / weights.mean() # 歸一化讓權(quán)重均值保持在1附近 criterion nn.CrossEntropyLoss(weightweights.cuda())直接用1/count會(huì)出現(xiàn)極端類(lèi)權(quán)重過(guò)大的問(wèn)題比如某類(lèi)只有80張權(quán)重會(huì)變成正常眼的幾十倍訓(xùn)練反而震蕩。除以均值把正常類(lèi)壓回1附近正常眼權(quán)重小于1稀有類(lèi)權(quán)重大于1但不會(huì)離譜。如果加了class weight后召回率還是上不去可以換Focal Loss。它自動(dòng)降低易分樣本的loss貢獻(xiàn)讓模型把注意力放在難分的病變類(lèi)別上class FocalLoss(nn.Module): def __init__(self, gamma2.0, alphaNone): super().__init__() self.gamma gamma self.alpha alpha def forward(self, logits, targets): ce_loss nn.functional.cross_entropy(logits, targets, weightself.alpha, reductionnone) pt torch.exp(-ce_loss) focal_loss (1 - pt) ** self.gamma * ce_loss return focal_loss.mean()gamma2.0是常用起點(diǎn)。對(duì)眼睛疾病分類(lèi)我建議先從class weight入手因?yàn)樗桓囊粋€(gè)參數(shù)跑兩個(gè)epoch就能看出趨勢(shì)focal loss要調(diào)gammagamma太大模型會(huì)過(guò)度聚焦難分樣本出現(xiàn)驗(yàn)證集acc原地抖動(dòng)。見(jiàn)過(guò)有人把a(bǔ)lpha和class weight混著用結(jié)果正常眼權(quán)重被壓到0.1以下模型開(kāi)始大量誤報(bào)沒(méi)必要疊這么多。4.3 學(xué)習(xí)率策略從視頻動(dòng)作分類(lèi)實(shí)戰(zhàn)里常用的余弦退火說(shuō)起很多做視頻動(dòng)作分類(lèi)比如跑UCF101這類(lèi)基準(zhǔn)的團(tuán)隊(duì)長(zhǎng)訓(xùn)練時(shí)幾乎默認(rèn)用余弦退火。這不是眼睛疾病分類(lèi)里的新東西但確實(shí)好用。第3.2節(jié)用的ReduceLROnPlateau是驗(yàn)證集驅(qū)動(dòng)的適合訓(xùn)練中期如果數(shù)據(jù)集不大余弦退火的確定性調(diào)度往往更穩(wěn)scheduler torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max30, eta_min1e-6) for epoch in range(30): # 現(xiàn)有訓(xùn)練循環(huán) scheduler.step()T_max設(shè)為總epoch數(shù)eta_min設(shè)為初始學(xué)習(xí)率的百分之一從1e-4退到1e-6足夠。用它替代ReduceLROnPlateau時(shí)要注意余弦退火是“從當(dāng)前值一路往下”沒(méi)有回頭漲的機(jī)會(huì)所以初始lr寧可偏低。有人把初始lr設(shè)成1e-3跑余弦退火前幾個(gè)epoch loss直接炸穿。在眼睛疾病分類(lèi)這類(lèi)中小規(guī)模醫(yī)學(xué)圖像數(shù)據(jù)集上我的使用順序是先用ReduceLROnPlateau跑20個(gè)epoch看baseline如果尾部loss震蕩明顯再換余弦退火重跑一次驗(yàn)證集acc通常能再上1到2個(gè)點(diǎn)。先有baseline再調(diào)調(diào)度器比一上來(lái)就堆各種trick更省時(shí)間。5. 眼睛疾病分類(lèi)數(shù)據(jù)集落地避坑5 條真實(shí)的血淚經(jīng)驗(yàn)下面這幾條都是從實(shí)際訓(xùn)練過(guò)程中踩出來(lái)的按“現(xiàn)象、原因、解決”的順序?qū)懹龅筋?lèi)似問(wèn)題可以直接對(duì)號(hào)入座。5.1 驗(yàn)證集acc漂亮得可疑訓(xùn)練集里混進(jìn)了驗(yàn)證集圖像現(xiàn)象訓(xùn)練到一半驗(yàn)證集acc飆到99%但換一批新采集的圖acc直接掉到60%。原因數(shù)據(jù)清洗不徹底。很多公開(kāi)數(shù)據(jù)集的train和val是從原始資料里分出來(lái)的原始文件里有重復(fù)截圖、圖像拷貝同一個(gè)病例的不同版本文檔被誤放進(jìn)了兩個(gè)集合。解決用2.3節(jié)的phash全庫(kù)跑一遍去重漢明距離小于等于4的圖像對(duì)確認(rèn)后只保留一份。更穩(wěn)的是在訓(xùn)練前用文件名或元數(shù)據(jù)查一下“同一病人文件是否被分到兩個(gè)split”。5.2 灰度圖與RGB通道不一致現(xiàn)象訓(xùn)練到中途dataloader報(bào)錯(cuò)“Expected a 3-channel input”或者loss變成nan。原因眼底相機(jī)輸出一般是彩色JPEG但醫(yī)院導(dǎo)出的歷史數(shù)據(jù)里存在灰度PNG和帶透明通道的圖。ImageFolder遇到灰度圖時(shí)ToTensor會(huì)把它變成單通道和Normalize的三通道統(tǒng)計(jì)不匹配。解決在transform之前統(tǒng)一轉(zhuǎn)RGBdef load_as_rgb(path): img Image.open(path) if img.mode ! RGB: img img.convert(RGB) return img把load_as_rgb放進(jìn)自定義Dataset里?;叶葓D轉(zhuǎn)RGB是復(fù)制通道RGBA圖則丟棄Alpha。不要指望現(xiàn)成的ImageFolder幫你處理這些。5.3 驗(yàn)證集acc虛高的背后沒(méi)有按病人切分現(xiàn)象模型在驗(yàn)證集上對(duì)青光眼類(lèi)acc達(dá)到98%業(yè)務(wù)方拿新數(shù)據(jù)實(shí)測(cè)準(zhǔn)確率遠(yuǎn)低于預(yù)期。原因醫(yī)院采集中同一個(gè)病人可能提供兩只眼的圖片隨機(jī)劃分后同一病人的兩只眼一個(gè)在train一個(gè)在val模型學(xué)到的其實(shí)是病人特征。病人ID可能隱藏在文件名里比如patient_001_left.png和patient_001_right.png直接listdir根本看不出來(lái)。解決先抽出patient_id按病人劃分import pandas as pd from sklearn.model_selection import train_test_split df pd.read_csv(image_patient_labels.csv) patients df[patient_id].unique() train_patients, val_patients train_test_split(patients, test_size0.2, random_state42) train_df df[df[patient_id].isin(train_patients)] val_df df[df[patient_id].isin(val_patients)]注意分層如果病人總數(shù)少還要按主診斷做stratify否則可能出現(xiàn)某類(lèi)病人只進(jìn)val的情況。5.4 從 yolo 自定義數(shù)據(jù)集的習(xí)慣遷移過(guò)來(lái)的誤區(qū)現(xiàn)象做檢測(cè)的人第一次拿到分類(lèi)數(shù)據(jù)集時(shí)習(xí)慣性去找label文件、找標(biāo)注框txt發(fā)現(xiàn)沒(méi)有這些文件不知道該怎么訓(xùn)練。原因分類(lèi)數(shù)據(jù)集和yolov8、yolo26乃至deim這類(lèi)目標(biāo)檢測(cè)框架的數(shù)據(jù)約定不同。檢測(cè)用邊界框加txt標(biāo)簽分類(lèi)數(shù)據(jù)集的標(biāo)簽全部隱含在文件夾名里不需要再生成任何label文件。解決直接用ImageFolder按目錄讀。實(shí)在習(xí)慣用CSV就自己寫(xiě)一個(gè)映射文件import csv from pathlib import Path rows [] for split in [train, val]: root Path(feye_disease_dataset/{split}) for cls_dir in root.iterdir(): if not cls_dir.is_dir(): continue for img in cls_dir.glob(*): rows.append([str(img), cls_dir.name]) with open(eye_cls_labels.csv, w, newline) as f: writer csv.writer(f) writer.writerow([path, label]) writer.writerows(rows)CSV的作用是方便后續(xù)做病人級(jí)切分和臟樣本過(guò)濾而不是替代目錄結(jié)構(gòu)。5.5 早停判斷標(biāo)準(zhǔn)別只盯val loss現(xiàn)象訓(xùn)練時(shí)val loss一直在降但驗(yàn)證集acc紋絲不動(dòng)多跑幾個(gè)epoch后acc突然跳幾個(gè)點(diǎn)另一邊val loss止跌你以為可以停了結(jié)果再跑兩個(gè)epoch又漲一點(diǎn)。原因醫(yī)學(xué)圖像類(lèi)別特征差異大loss和acc并非同步變化。小類(lèi)別在loss里的貢獻(xiàn)占比低loss下降反映的只是大類(lèi)特征收斂小類(lèi)的acc沒(méi)有變化。解決以“驗(yàn)證集acc連續(xù)patience個(gè)epoch無(wú)提升”作為早停條件patience設(shè)5到8。如果用了class weight或focal loss同時(shí)盯per-class recall的調(diào)和平均不要只盯總acc因?yàn)榭俛cc會(huì)被正常眼主導(dǎo)。每個(gè)epoch都備份一次最優(yōu)checkpoint就算誤停也有后悔藥。6. 把驗(yàn)證集利用到極致錯(cuò)誤分析是醫(yī)學(xué)圖像分類(lèi)的最后一公里訓(xùn)練結(jié)束不等于交付。從驗(yàn)證集里篩出預(yù)測(cè)錯(cuò)誤的樣本一張一張看才是真正提升模型價(jià)值的部分。做法是保存驗(yàn)證集的softmax輸出抽最底部的錯(cuò)誤樣本probs torch.softmax(outputs, dim1) max_probs, preds torch.max(probs, dim1) filter_mask (preds ! labels) | (max_probs 0.6)把mask篩出來(lái)的圖像路徑和預(yù)測(cè)結(jié)果寫(xiě)成csv對(duì)照訓(xùn)練集里的人工復(fù)核清單再查一遍。這步常會(huì)發(fā)現(xiàn)“預(yù)測(cè)錯(cuò)誤”其實(shí)是標(biāo)注錯(cuò)誤比如早期白內(nèi)障被標(biāo)成正常眼。這類(lèi)臟樣本如果不清理會(huì)一直污染指標(biāo)。從val里剔除后重新評(píng)測(cè)模型能力才是真實(shí)的。我的習(xí)慣是每個(gè)epoch結(jié)束都保存val acc和混淆矩陣訓(xùn)練完成后用驗(yàn)證集里置信度低于0.6的樣本生成一份人工復(fù)核清單而不是把模型輸出當(dāng)裁決者。眼睛疾病分類(lèi)的落地價(jià)值不在acc多高而在于輔助醫(yī)生把漏診率降下來(lái)所以讓模型學(xué)會(huì)說(shuō)“我不確定”比強(qiáng)行輸出一個(gè)錯(cuò)誤類(lèi)別更安全。置信度閾值在驗(yàn)證集上掃描一遍再定0.6或0.7看不同閾值下被標(biāo)記為需復(fù)核的樣本數(shù)量、以及復(fù)核樣本里的誤檢率選一個(gè)業(yè)務(wù)能接受的操作點(diǎn)。我在設(shè)備色彩偏移的新數(shù)據(jù)集上翻過(guò)車(chē)教訓(xùn)是驗(yàn)證集只能證明模型在同類(lèi)數(shù)據(jù)上有效真要在新采集設(shè)備上跑還得單獨(dú)留一批數(shù)據(jù)做上線前驗(yàn)證。希望這些從數(shù)據(jù)集結(jié)構(gòu)到驗(yàn)證集用法的經(jīng)驗(yàn)?zāi)苷嬲龓偷侥?。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲最新Av| 精品女人999| 一区二区 韩日AV| 国产熟女| 免费成人在线观看91| 超碰在线人妻| 97久久久久久久久久| 亚洲欧美高清无码| 99久久无色码| 男女做爰猛烈动高潮A片免费应用| 成年女人18级毛片毛片免费观看| 欧美综合 站| 日本一区视频在线观看| 日本女厕偷拍| 日本无码1| 日本丝袜美腿人妻九九| 精品国产av一区二区三区四区入口| 99久久综合网| 99综合网| 91色插| 色色婷婷丁香| 国产91精品福利在线| 超碰538| 国产家庭乱伦表演| 国产少妇内射| 日本伦乱九九九综合| 亚洲欧洲无码一区夜| 亚洲熟女乱色| 蜜桃视频一区二区三区 | 国产欧美日韩臀| 99热这里只有精品99| 欧美成人一级免费电影| 最新中文字幕在线亚洲| 强奸乱伦Av网| 色欲日韩欧美在线一区| 激情啪啪拍91| 久久色情| 色呦呦、国产精品| 久久久久一本一区二区青青蜜月| 99热aaa| 亚洲淫乱骚妇AV| 97中文天堂| 亚洲欧洲偷拍一区| 天天综合,91综合永久| 黄片不用下载在线观看| 亚欧Av| 韩国午夜理伦三级好看| 色婷婷六月丁香七月婷婷| 精品午夜福利| 91bbb| 亚洲男人天堂av| 91丝袜在线播放| 天天干夜夜鈤| 亚洲国产精品成人综合| 天天天天天天天天天天干美女| 天天躁日日躁AAAAXXXX国产| 一道α片欧美| 自拍偷拍亚洲熟女妇人精品| 免费公开人人操| 日韩精品国产一区二区| 亚洲欧美国产其他二区| 男女啪啪啪18禁网站| 国产熟妇 码视频户外直播| 亚洲天堂男人| 成人av影院在线观看| 最新日本中文字幕| 秋霞成人做爱| 天天天天天天天天天天干美女| 国产精品无码久久久久2028| 日本三级黄页| 性欧美精| 中英熟女操女| 在线无码网站| 欧美亚洲国内自拍| 五月天久久婷婷亚洲 | 老鸭窝在线视频播放| 国产精品97超碰| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 欧美亚洲日本视频久久久 | 亚洲国产亚洲天堂| 欧美97爱| 三级三久久线久久99久目本WW| 天天爽天天| 嗯嗯啊啊操死我| 黄呦呦在线| 中文字幕精品专区搜索结果91| 色淫网站优优视频| 岛国在线免费视频| 久久久久免费少妇| 一区二区三区在线日韩影院观看| 91在线视频国产网站| 国产女同视频在线播放| 亚洲国产欧美中文永久| 久久超碰天天| 久久久九97| 国产亚州精品美女久久久免费| 久久神马| 亚洲美女精品九九视频| 加勒比aⅴ| 97精品97久久| 99re热| 狠狠夜色午夜久久综合在线| 少妇毛片久久| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 口爆吞精在线观看| 97人人夜夜精品视频| 中文字幕视频二区| 夫妻日逼| 亚洲中文字幕av| 超碰综合色| 亚洲一级黄色毛片| 麻豆一区二区三区在线看| 亚洲免费97免费| 成人久久无码www| 婷婷六月色| 四虎影院成年人片| 狠狠综合网| 亚洲va有码在线天堂| 日韩欧美福利视频看看| 中文字幕第9页萱萱影音先锋| 日逼视频日本| 久噜噜| 精品91日日夜夜超清资源| 蜜乳性色无码专日粉嫩骚逼AV| 99热99re超碰精品| 亚洲色宗合| 日本欧美一区二区三区视频麻豆| 五月综合激情网| 欧美大色交| 国产无马在线| 亚洲人妻熟妇三十三区| 日本人妻丰满熟妇久久久久久| 91久操| 毛片99-全集电影手机免费观看完整-B029AV| 欧美的精品的视频| 亚洲欧美天堂在线| 久操97| 另类小色呦| 欧亚久久偷拍视频| 国产一区二区精品久久99| 草b在线| 欧美激情综合网| 九九碰九九爱97| 97视频一区| 很很热性爱视频| 91男同| 一区操逼日比视频| 日日玩天天干| 国产大片精久久久久久| 激情 欧美 亚洲 小说| 麻豆天美国美国产| 九九综合九九综合| 51一区二区三区| 2024人人操人人摸| 97操| 亚洲综合贴图91| 亚洲AV操| 78m啪啪啪| 另类在线| 午夜激情成人在线观看| 欧美成人综合| 国产精品一区二区三区在线密挑| 91操操操操| 伊人操操| 1024人妻| 亚洲阿v天堂在线| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 亚洲宅男天堂| 91情色| 99国产精品久久久久久久成人热| 久久露脸国产老熟女| 91色射| 91啪啪| 乱抡国产91| 素颜老阿姨乱情色| 午夜免费视频1000| 欧美一区二区三区四区综合| 久久久久成人网| 中文字幕丝袜人妻| 最新日韩黄片| 国内偷自视频区视频综合| 欧美成人一区二区| 久久久999日本大片| 国产午夜精品理论片a大结局| 久久综合女优| 97超碰jingpin| 亚洲 欧美 制服 另类 自拍| 久久久少妇诱惑精品视频| 18一区二区三区| 韩国手机不卡无码三级视频| 久久区| 和协影院中文字幕三区| a久久| 中文字幕美女91| av 模特一区了| 青草视频在线看看看看看看看看看| 熟妇xxxxx性春色| 人妻出轨一区二区三区| 中文字幕一区二区在线日韩精品| 中文字幕在线观看网址| 亚洲97超碰| 9997se| 日韩情色AV| 欧美1727免费观看视频| 91超级碰碰碰| 激情五月天丁香| 色就色综合| 日韩欧视频| 青青草国产盗摄一二三区| 亚洲黑丝在线| 99精品网| 凹凸视频特色日本特黄| 婷婷亚洲五月***久久| 青春草莓视频在线观看网址| 超碰97国产欧美| 女上位精品在线| 九草在线大香蕉| 中文字幕少妇色 | 国产日本熟女顶级一区二区三区视频 | 超碰色图| 五月丁香激情四射| 97无码视频在线播放| 91久久国产精品| 99精品久久久久久| 加勒比综合在线| 呦女网站| 欧美亚洲韩国视频十五区| 涩涩久久精品| 91 亚欧| 激情文学小说一区二区| 亚洲好色人妻| 国产9熟妇视频网站| 亚洲色图欧美色图综合| 日韩精品影视| 色网亚洲人| 91色夜| 91久| 无码直播久久久| 一道α片欧美| 日韩福利电影网| 久久亚洲人妻| 亚洲性综合| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 久久精品72| AV一二区| 9997se| 国产无马在线| 久久怡红院| 四虎视频在线观看| 1024精品在线| 欧洲成人性爱视频| 欧美熟妇视频| 97国产精选| 影音先锋少妇| 国产精品女同| 欧美性爱一区二区三区| 亚洲精品无码成人久久久99| 久热免费视频| 日韩特一级久久| 中文字幕AV乱伦| 久久久99久9| 亚洲精品九九九| 啪啪一区| 欧美日韩222| 国产传媒1234区| 蜜臀av中文字幕| 亚洲成人免费电影| 91综合网| 很狠操| 久久久久婷婷| 吻戏激情性巴克| 久久久久久久少妇| 天堂网 主播 亚洲| 国产在线综合网| 人人操人人操草草| 97干在线看| 国产后入清纯| 欧美v亚洲v综合v国产v妖精| 国产成人+综合亚洲+天堂| 久久综合精品一区二区三区| 四虎av在线| 人人做,人人操,人人摸| 亚洲AV免费在线| 久干网| 嗯嗯啊啊好大好爽| 97在线视频观看| a级成人毛片免费视频高清| 日本三级久| 精品无码产区一区二| 91视频综合网| 粉嫩在线一区二区懂色| 久草精品热视| 精品国产Av无码久久久伦古装| 377p欧洲日本亚洲大胆| 青青草在线视频人人想人人上| 欧美激情精品久久久| 国产狂喷潮在线精品| 日韩精品一区二区三区四虎影视| 成年人免费观看网站| 麻豆国产视频精品观看| 91挑色欧美| 蜜臀久久99精品久久久久久-DVD原版全| 新婚人妻扶着粗大强行坐下| 日本中文字幕一区| av绯色| 欧美国产一区二区三区麻豆传媒| 麻豆国产视频精品观看| 青青青青草av在线观看| 免费公开人人操| 欧美永久激情一区二区| 搡老女人老熟女91| 欧美最婬乱婬爆婬性视频 | 天天做日日做| 东北女人操比视频| 亚洲AV无码国产成人| 欧美在线综合| 国产精品香蕉热久久新品| 色一区二区三区综合| 国产精品一区午夜福利| 5252色欧美在线男人的天堂| 色小视频蜜乳| 久久加勒比| 日韩欧美亚洲国产日韩| 91人妻少妇| 久久秀这里有精品| 日韩字幕一区| 蜜桃臀AV在线| 亚洲宅男天堂| 国产精品又黄又猛又粗| 亚洲永久永久永久永久一级一级一级精品 | 无码精品久久久天天影视| 亚洲色悠悠久久88| 中文字幕在线日亚洲9| 桑老女人九区| 国产熟女一区二区丰满| 性爱Av免费| 久久久久久免费电影| 91久久婷婷| 国产又黄又粗又猛大片| 俺也射| 嗯嗯嗯好爽| 欧洲亚洲国产综合在线| 女上位精品在线| 亚洲美乱| 亚洲午夜福利在线影院| 色综合国产在线观看| 久久久久网站-538在线视频-欧美永久乱码| 久草国产在线视频| 欧美18老人禁| 天天摸天天操视频| 欧美操逼视频二区| 色情五月婷婷| 东京热一区二区中文字幕| sss视频华人在线| 1禁看欧美黄片免费看| 成人无码欧美一级A片狼牙直播| 亚洲城人男人的天堂| 成人aⅴ一区二区三区| 超碰99在线| 老汉网| 婷婷爱五月| 美女操逼福利视频| www亚洲免费| 日韩欧美中文字幕搭讪巨乳美人妻视频| 一区黄二区黄| 97人人射| 美女尤物人人操| 欧美劲爆第一页| 天天澡天天爽日日av| 久久婷婷六月综合| 亚洲第一成人影院色播| 亚洲 自拍偷拍 欧美| 国产精品一区二区三区免费视频| 少妇内射视频| 极品后入免费视频| 欧美综合第一| 91视频国品一二三区| 色欲蜜臀AV| 亚洲成人激情小说视频| 超碰在线91| 五月天亚洲网| 蜜臀久久在线视频| 久久久久大香青草精品综合| 97 九色| 欧美最婬乱婬爆婬性视频| 久久久九九网站| 国产亚洲精品美女久久久m| 99久久国产精品免费高潮| 传媒在线观看一区二区三区| 人妻美腿丝袜日韩| 操淫穴亚洲五月丁香 | 91视频综合在线| 草伊人高潮喷水超碰| 97二区四区| 日韩中字av一区| 旡码电影特区| 欧美九九爱| 欧美淫穴| 欧美九九爱| 啪啪视频mP4| 97午夜剧场日韩| 激情深爱五月天| 丁香婷婷久久 | 天天性射网| 91男人综合| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 日本欧美韩国国产在线| 日日日日做夜夜夜夜无码| gogogo免费高清看中国国语| 又大又长又粗又爽又黄| 国模无码一区二区三区在线| 99热这里是精品| 99精品免费| 97天天爽| 18禁久极品美女久久哦哟呀!| 炮色五月| 欧美激情色婷婷花野真衣一区二区| 日韩中文字幕宗合在线| 久久风骚城市| 91亚洲电影| 啪啪视频免费在线观看| 天天操天天干一区二区| 日韩啪啪视频| 久久夜色一区二区| 91 综合 色| 久草成人影片| 91亚洲色图| 成人一级性爱| 亚洲高清在线| 国产AV天美| 九九九九九九免费视频| 亚洲精品九九九| 日韩国产不卡在线视频| 性爱av网站| 用力操死我| 欧美亚洲高清晰| 日韩大香蕉| 亚洲国产欧美另类自拍| 吻戏激情性巴克| 和协影院中文字幕三区| 超碰人妻久久| 亚洲精品啪视频| 色色色五月婷婷| 第一高清av中文字幕| 日本三级韩国三级99| 操逼精品视频| 色图四区| 亚洲暴力强奸AV| 95精品在线| 69丨亚洲丨精品丨入口免费播放| 性一级黄色录像片网站导航| 欧美日韩国产高清在线一二三区 | 搡老女人老91二区| 日韩av一级黄片| 青青草国产亚洲精品久久| 久久成人午夜狠狠| 欧美精品精品一区二区| 人妻22p| 二三四区精品| 91久久九九精品国产综合| 亚洲中文字幕精品久久久久久直播| 欧美精品成人亚洲| 日韩本不卡视频在线观看| 中文人妻av高清一区| 九九热最新| 综合色久欲| 国产黄色影片在线观看| 97色色色综合网站| 欧美综合自拍亚洲综合图| 好涩综合| 大香蕉av在线| 天天搞欧美| 亚洲毛片一级带毛片基地| 久久久久久性爱视频| 欧美在线电影| 91操碰| 精品少妇一区二区三区| 黄色AAAAA欧美| 色月天AV导航| 青娱乐二区免费| 五月激情天| 久草热制服丝袜在线观看 | 99色在线视频| 美女好片色日本| 欧美成人黄网色网站| 91亚洲欧美色图| 91狠狠综合网| 97视频观看| 婷婷午夜清品久久久久久久性色视频观| 久久激情亚洲精品无码?V| 久久久一区二区三区四曲免费听| 亚州高清AV| 久久亚洲精品成人av| 1204金沙人妻懂旧版免费| 精品国产乱码久久| 欧美.亚洲.另类.丝袜.制服.诱惑| 色香网| 亚洲精品日韩国产欧美| 亚州高清AV| 国产女人和拘做爰视频| 久妇网| 亚洲。天堂。日本在线观看| 丰满人妻被猛烈进入中| 少妇天堂网络| 亚洲国产另类在线中文| 欧美熟妇乱码在线一区| 久久精品店| 91爽啪| 激情小说在线视频| 97se综合网| 久久日韩精品一区二区| 亚洲青色欧美| 97超碰色屌| 亚欧免费| 中文字幕免费在线观看| 黄色网址久久精品欧美喷水| 日韩人妻一区二区| 操操操操网黑人| 国产一级作爱毛片| 日本媚薬中文字幕在线| 涩爱AV在线| 久久久久人妻二区精品叶可怜| 偷拍综合亚洲| 日本99视频| 视频国产欧美在线播放| 九九自拍伦理| 9九九九九视频在线观看| 狠狠色噜噜狠狠狠狠2018| 人妻五十路在线| 亚洲午夜免费狠狠干| 日韩簧片免费看| 97ai亚洲| 91草草草| 丰满人妻一区二区三区免费,| 性爱视频啪啪啪啪| 黄页av| 97在线青| 亚洲综合影视| 你操综合| 人人操人人大香蕉| 人人人摸人人| 91亚洲欧美激情| 97超碰中文| 黑丝少妇麻豆| www.久久| 999国产精品999| 久久精品欧美一区二区三区不卡| 超碰美女97| 亚州Av天美传媒| 青青草大香蕉在线视频| 毛片中心9视频99| 久久精品色欧美aⅴ一区二区| 在线人成亚洲视频免费观看| 91久久久久久久久18| 久久久久极品| 国产久久男人天堂| 男人久久精品| 天堂麻豆天美| 极品粉嫩一区二区| 91九久| 色情综合网| 香蕉人人操tv| 亚洲天堂情色| 青青草日本中文字幕| 一牛影视久久久一区二区三区| 色色激情五月天| 韩国黄色片精品久久久| 啪一啪免费视频| av日韩国产一区二区| 亚洲黄片免费在线播放| 亚洲麻豆av一区二区| 久久少妇| 999久久久| 欧在线一二区| 又大又大又大又粗爽高潮观看 | 播播亚洲小说亚洲| 午夜一级免费毛片| 尤物黄色在线观看网站| 91在线超高颜值国产| 成人97人人超碰人人| 亚洲欧美色图小说| 欧美偷拍区| 久久久亚洲高清不打码| 懂色AV蜜臀无码精品APP| 午夜福利精品| 亚欧性爱在线无码| 人妻AV 中文字幕的| 99精品视频在线观看| 一本一道人妻久久一区二区三区| 久都青青视频| 国产偷仑| 天天综合站| 久久久一区二区| 夜夜免费视频| 久久久久久久久久久久97| AV女优男人的天堂| 91在线免费精品视频| 中国一级αV| 岛国毛片在线观看免费| 入口操逼网站| 91久久精品国产| 少妇人妻精品| 久久久久96| 色爱亚洲| 操www| 五月婷婷丁香| 国产农村妇女精品1区二区| 操操操操操操| 久久久久久十| 国产日韩欧美操逼视频| 久久久久国产一区二| 亚洲人成网www| 青春草A| 玖玖资源视频一区二区三区| 色综合一区二区三区| 精品亚洲国产成人精品| 大香蕉宗合网在线| 超碰地址97| 天天肏天天干| 无色无码| 人人摸人人干| 日韩十八禁| 2019久久久久久久久福利| 日韩无码成人电影| 青青草成人视频在线观看二区| 97ai亚洲| 中国女人内射6XXXXX| 国产女人高潮视频| 夜夜骑天天燥| 97视频免费播放| 欧亚乱色熟女一区二区| 国产乱婷婷精品二区三区| 欧美大色交| 大香蕉中文| 日韩乱伦影音先锋| 91电影色诱| 热99这里有精品综合久久| 久久久久久久国产视频| 亚洲人在线| 欧美九九九九九| 国产无码一二三区| 中文字幕女同在线| 性无码专区2020| 久久天天性久久伊人| 精品丰满熟妇人妻一区 | 99re只有精品| 国产 日韩,欧美 自拍| 国产黄片在线免费观看| 99自拍B亚洲| 人妻丰满熟妇一区二区三| 五月丁香婷婷色| 老鸭窝日丰县女人| 精品九九国产无码| 色播五月丁香| 美女诱惑久久| 亚洲五月丁香花狠狠干一区二区三区| julia ann久久| 思思热久久成人| 青青草日本中文字幕| 男插女青青影院| 夜夜夜久久| 精品天堂| AV天天在线观看| 天天拍夜夜| 加勒比无码一区二区三区| 99热伊人| 一块操欧美性爱| 久久国产精品m码| 色五月综合| 视频二区美腿制服人妻欧美| 婷婷尹人大香蕉免费| 一区二区三区一亚洲中文字幕、综合区灬| 国产97色在线| 91精品久久久久| 人妻少妇久久久| 97天天日| 亚洲国产一级中文综合久久天堂在线免费观看 | 黄色av片三级三级三级免费看| 国产精品内射婷婷一级二| 天天欧美色| 男人的天堂 在线一区| AV天堂丝袜| 色视频蜜乳| 偷拍综合亚洲| www.久久久久| 国产一级舔足在线观看| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 91干熟女| 日本男人天堂| 夜夜操老骚逼视频网站| 欧美色视频在线| 性欧美第一页| 区一在线观看| 久久东京伊人一本到鬼色| Aa东京男人的天堂| 99色在线| 少妇啪啪自拍| 天堂在线一区二区| 亚洲天堂7777| 亚州男人天堂| 超碰97久久观看| 久草视频观看视频在线| 黄色成年| www.高清无码诱惑一区.com| 日本高清一区二区在线| 91情色| 九九九精品一区二区无码| 久色网| 高潮的A片激情扒开一区| 91视频女生| 激情四射五月天| 亚洲熟女性高潮久久久| 天天综合官网| 内射中国少妇高清视频免费视频| 91狠| 精品一区二区人妖| 亚洲天堂在线怕怕视频| www.人人摸在线视频| 午夜成人福利影视| 欧美婷婷| 永久免费发布性爱网| 另类图片天天影视| 亚洲欧美啪啪| 久久区| 日本五区不卡| 天天干天天日天天射黄色片| 日日干日日| 国产三区免费在线观看| 91被操| 91日韩国产欧美亚洲另类精盘州至城都| 青青草手机在线免费观看| av大香蕉| 国产av美女被艹的乱叫| 蜜乳AV.COM| 男女性无套 免费九一| 风间由美日韩欧美久久| 青青欧洲黑| 国产黄色动态精品| 99热在线播放| 国产精品亚洲免费| 成人aⅴ一区二区三区| 日韩欧美性吧婷婷乱伦大香蕉| 97色操| 加勒比久久av| 亚洲情色一区二区三区| 少妇500双飞99| 久久久久久久 九九九九九九九| 亚洲中文字幕精品久久久久久直播| 欧美,日韩综合久久| 91在线秘 男同| 欧美精品久久96人妻无码| 日韩欧美传媒一区国产| 九九热五区| 男人天堂站| 热天堂一区二区| 丝袜AV一二三区| 校园春色 男人天堂 | 97视频在线播放| 亚洲熟女人妻中文字幕一区二区 | 青娱乐休闲视频在线观看| 久久久女人| 国产精品对白自产拍| 欧美最大综合网| 天天射夜夜| 天美传媒av在线| 人妻熟女一区二区| 久欲AV| 亚洲人精品午夜不卡| 中文字幕精品亚洲熟女| 91天天爽| 91日韩国产欧美亚洲另类精盘州至城都 | 人妻乱仑一区二区三区| 一本一道vs波多野结衣| 日韩欧美亚洲一区二区三区影院| 波多野结衣之双飞调教在线播放| 人人操人人摸avav| 神马久久久久久伦理片| 国产男人又猛又粗又爽| 九九性爱网| 国内91熟女人妻丝袜天天精品视频在线| 伊人99热| 在线天堂999| 色超碰综合| 超碰综合97在线| 久久久久女教师免费一区 | 一二三四区电影| 91在线观看,天天综合| 蜜臀99久| 亚瑟国产精品久久无码| 国产美女mm131爽爽爽爽| 天天日B夜夜干B时时操B| 免费伦费视频在线观看| 在线播放成人网站| 丰满人妻一区二区三区四| 青久操| 男人的天堂三级| 久操电影| 国产一级作爱毛片| 啊啊啊啊嗯嗯嗯用力好爽 | 久久国产99精品72福利| 日韩精品人妻中文字有码在线 | 九色精品视频导航1| 中文字幕一区日韩精| 极品白嫩福利在线| 欧洲大香蕉| 精品女同一区二区三区| 伊人麻豆传媒| 色呦呦呦在线观看视频| 女优免费一区二区永久| 亚洲网污污污污| 久久αⅴ| 国产午夜无码片在线观看影视 | 91 丝袜在线播放| 亚洲中文字幕久久人妻| 亚洲精品 大香蕉| 欧洲自拍色图gif在线| 久久华人网| 无遮挡男女激烈动态图| 免费综合亚洲中文| 69人妻精品丰满熟女区| 亚洲一区二区av| 亚洲最大成人a毛毛片| 人妻熟女一区在| 国产诱惑| 成人五级久久| 亚码激情| 九七超碰人人乐| 日本性爰一道本| 少妇诱惑视频| 91蜜桃传媒精品久久久一区二区| 日韩一区二区高清在线观看的| 大香蕉AV丝袜| 麻豆av一区二区| 亚洲成a人在线观看久| 五月天色图| 天天综合欧美| 久热99| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 国产大学生口爆吞精合集| 国产suv精品一区二区四| 精品无码少妇| 欧美精品999| 熟女一区二区三区四区| 少妇人妻好深太紧了vr91| 91女神在线视频| 欧美日韩中文视频播放| 国产毛片精品一区二区色欲黄A片| 91影视亚洲| 一区操逼日比视频| 青青伊人久久| 久久国产免费激情视频| 97精品国产97久久久久久| 久久禁| 午夜一区| 欧美春色| 日本色色网| 婷婷激情四射| 九九色色| 日日摸天天爽夜夜欢| 一区二区三区四区色图| 少妇熟女一区二区三区| 婷色五月天| 9久久久久| 天天看综合网| …亚洲黄色厕厕女女在线播…| 日本有码影片下载| A级在线视频| 中文字幕亚洲欧美在线不卡| 香蕉国产精品麻豆亚洲欧美日韩| 91电影色诱| 久久久久久一日韩字幕无码| 亚洲男人天堂2016| 亚洲高清无码在线桃色| 三四中文字幕| 热久久91婷婷| 精品人妻1区| 亚洲丰满很很操| 99自拍视频| av影片在线观看不卡| 刺激性视频黄页| 99国产精品视频尤物| 999久久芭蕾| 久久,精品一二三| 欧美自拍偷拍综合图片| 亚洲日韩XXX| 国产成人+综合亚洲+天堂| 五十路熟女人妻一区二区三区四区五| 国产免费大片| av无码精品久久久久| 97久久超碰日韩精品| 亚洲精品久| 91av熟女人妻| 日韩在线观看AV| 99久久无色码| 久久精品中文字幕无码l| 午夜传煤十二区精品| 在线综合 亚洲 欧美中文字幕| 欧美成人A√在线一区二区| 亚洲日韩黑丝| 嗯嗯嗯啊啊啊在线免费观看| 日韩中文字幕国产| 精品国产乱码久久久久久久| 国产精品肉丝自拍| 免费中文在线| 人妻少妇精品视频一区二区三区| 亚洲91网站| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 日韩精品作爱导航| 婷婷99狠狠| 国产高清26uuu| 精品99999| 蜜臀久久久国产| 久久丁香| 久久久国产亚洲精品系列| 爱爱动态60秒| 校园春色家庭伦理欧美激情| 一区二区三区四区五区高清无码永久视频| 韩国成人精品久久久免费看| 在线观看中文字幕| 老司机福利社视频在线观看| 精品国产99| 色色亚洲| 亚洲天堂7777| 久久超碰日韩精品| 成人欧美日超碰| 亚欧美天堂在线| 97色色色| 亚洲综合中文字幕有码| 一区二区免费电影久久| 性色A∨91| 亚洲AV色图一区| 天综合网欧美| 躁躁日曰躁2020| 四虎影院成年人片| 操www| 日本淫乱女一区二区三区视频| 亚洲情色 自拍| 亚洲色图综合网| 大香蕉国产中文自拍| 欧美99| 欧美黄片视频在线观看免费 | 97碰碰色| 日韩成人小视频| 97超色| 粉嫩久久久久| 久久m| 另类av综合久久| 中文字幕久久精视频久久大全| 久久综合日韩亚洲欧美| 青青网三级视频| AV九九| 日日爽夜夜爽| 激情第四色| 91狠| 91老熟女逼| 亚洲成人一二三区| 日韩超碰精品综合| 国产成人AV麻豆| 亚洲图片 91| 丝袜性亚洲| 欧美专利1区2区3区4区5区免费| 美女刺激久久国产欧美| 欧美九9 9 9| 欧美亚洲国内自拍| Av色五月| 99国产天美| 日夜久久久九九九久| 97精品久久久久久久| 性欧美天天| 九九久久99| 素颜老阿姨乱情色| 制服诱惑亚洲一区二区三区在线观看| 校园春色宗合网| 女上位精品在线| 无码人妻毛片丰满熟妇精品区| 日韩91网| 亚洲精品97久久| 天天视频黄| 午夜亚洲国产理论秋霞| 欧美一区二区三区日韩| 亚洲精品男人的天堂| 国产自产91区13区| 动漫区日韩区欧美区| 啊啊啊啊啊好舒服视频| 日韩精品亚洲一二三| 五月天亚洲色图| 欧美日韩性爱电影在线| 伊人激情五月天一区二区| 久久久国产三级黄色片| 亚洲天堂综合AV| 亚洲国产第一页综合视频| 色噜噜人妻av 中文字幕| 日本99一区二区| 老司机午夜福利视频一区二区| 综合色久欲| 亚洲av青草久久一区二区| 日本精品网站在线中文| 隔壁邻居波多野结衣中文字幕| 五月丁香激情综合| 精品免费1| 亚洲日韩黑丝| 亚洲福利影院一区久久| 日韩无码黄色片| 天天弄天天操| 人妻黑丝袜电影| 男生通女生屁股| 秋霞成人一级在线观看| 日欧操屄视频| 亚洲综合影片| 婷婷8月天青娱乐| 被男人吃奶很爽的毛片| 无码自拍SM| 亚洲中文电影| 午夜毛片亚洲精品片国产久久久| 9久在线视频只有精品| 国产少妇内射| 欧美精品成人一区二区在线观看| 综合影视国产无码| 久久不卡一区二区| 久久成人精品| 亚洲精品乱码线路中文字幕| 色综合91| 久久精品成人| 日韩乱伦影音先锋| 97爱欧美| 97精品免费视频网站| 无码日韩人妻av一| 久久久av爱| 久操视频这里只有精品| 欧美性爱1080p| 成人综合色网| 伊人性在线视频| 啪啪资源网| 91亚洲影院综合| 试看60秒 爽| 婷婷午夜| 欧美综合网1| 亚州免费啪啪视频| 中文字幕88av在线| 91综合色噜噜| 久久草草欧美精品| 69久久| 欧美成人A√在线一区二区| 欧美超碰9798| 清纯唯美亚洲综合| 色五月婷婷麻豆在| 超碰4A| 亚洲综合中文字幕有码| 91色色综合| {男男暴菊gay无套网站| 久久伊人网视频一区二区三区| 国产精品国产精品国产| 超碰国产在线| 亚洲天堂电影网99999| 玖玖爱免费观看视频| 欧美玖玖爱免费玖玖| 密乳无码| 国产农村妇女精品1区二区| AⅤ片水多多| 密臀在线免费观看| 欧美性爽xyxOOOO| 日本一区二区三区精品| 九九九九国产| 婷婷久久综合久| 激情文学88| 四虎AV无码| 欧美熟妇成人一区二区| 亚洲 图片 欧美 色图| yaouchengrenav| 97久久精品国产| 一级AV性爱| 操淫穴亚洲五月丁香 | 欧美性爱一区二区三区| 五月激情小说| 俞拍久久国应视频| 欧美黄片视频在线观看免费| 99操逼| 青青草中文-久久青草精品一区二区三| 欧美色图91| 久久久久国产亚洲一区欧美色图日韩| 国产在线视频午夜精华在| 天天干美少妇一区| 欧美一区二区三区互相| 91欧美性| 久久艹逼视频| av影片在线观看不卡| 色av中文字幕| AV麻豆免费一区| 久久久久深夜无码| 精品人妻伦一二三区久久| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 91 偷| 亚洲中文制服诱惑| 377p欧洲日本亚洲大胆| 亚洲骚男同com| 精品区9| 91在线精品一区二区三区| 97国产伦理| 日韩人妻精品久久久久| 中英熟女操女| 2003天天干夜夜操| 天天干2区3区| 欧美v亚洲v综合v国产v妖精| 日韩青久久| 中文字幕 一区二区 亚洲无码| 狠狠中文字幕| 欧美天天综合在线| 亚洲精品美女操逼| 欧美色图天堂在线| a片偷拍视频| 91色色综合| 七久久久| 国产精品69人妻无码久久久| 人妻少妇精品视频一区二区三区| 午夜福利在线视频1000| 久久九九视频九九视频| 欧美成人免费在线观看| 久久9免费视频| 中文字幕亚洲欧美在线不卡| 亚洲国产一区二区三区四区国产| 狠狠久久手机视频精品| 久久9精品| 精品无码一区二区人妻久久蜜桃| 色蜜AV| 手机在线观看不卡无码av| 亚洲乱码精品一区二区| 国产精品午夜福利| 日韩av熟女一区二区三区成人| 中文字幕在线高清男人的天堂| 超碰免费人妻人人| 欧美偷拍| 玖玖爱伊人玖玖爱| 亚洲欧美另类少妇精品| 日韩av不卡在线观看| 中文字幕一区二区在线日韩精品| 亚洲97在线观看| 67914在线兔费成人视频| 99黄页网站| 久久精品亚洲东京热色播| 91成人久久| 中国国产精品一区视频| 人人干人人操人人爱| 亚洲男人天堂手机版| 国产精品白丝在线播放| 亚洲熟女综合一区二区| 死我十八禁| 国产欧美黑人丰满在线| 亚熟在线| 亚洲男人的天堂亚洲| 99精彩视频| 欧美一级色| 亚洲国产无码精品首页久久久| 精品亚洲黄色片 国产精品导航一区二区| 日本人妻中文字幕精品| 欧美爱三级日韩久久| 亚洲色图尤物视频| 午夜福利激情在线视频| 久久这里是精品| 91天堂色男人的天堂| 俺去俺来也在线www|