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

ARTICLE DETAIL

資訊詳情

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

PyTorch多類別語義分割實戰(zhàn):Unet從數(shù)據(jù)預處理到mIoU評估全鏈路排雷

PyTorch多類別語義分割實戰(zhàn):Unet從數(shù)據(jù)預處理到mIoU評估全鏈路排雷 簡介本資源是面向深度學習初學者與計算機視覺實踐者的PyTorch多類別語義分割實戰(zhàn)項目聚焦Unet模型在自定義數(shù)據(jù)集上的完整實現(xiàn)適用于醫(yī)學影像、遙感解譯等需精細像素級分類的場景。壓縮包共46個文件含19個核心Python源碼如unet.py、train.py、datasets/模塊、24個編譯緩存pyc文件、2個配置說明txt及1個info.json元信息文件結構清晰體現(xiàn)數(shù)據(jù)加載、模型構建、損失計算、訓練調度與評估全流程整體僅69KB輕量易部署。已有15279人學習下載反映出其在入門級語義分割實踐中的高復用價值。讀者可直接復用該工程框架快速替換自有數(shù)據(jù)集路徑、調整類別數(shù)與標簽映射、調用預置的數(shù)據(jù)增強與權重計算邏輯并通過demo.py可視化預測結果目錄中custom_transforms、mypath、metrics等模塊封裝規(guī)范便于理解Unet各組件協(xié)作機制與PyTorch工程化組織方式。1. Pytorch下實現(xiàn)Unet對自己多類別數(shù)據(jù)集的語義分割不是調個庫就能跑通而是從標簽映射錯位、通道數(shù)爆炸到loss不降的完整排雷實錄你手頭有一批自己拍的工業(yè)零件圖像帶像素級標注——不是PASCAL VOC那種“背景人車”的三分類而是“螺栓A/螺栓B/墊片C/銹蝕區(qū)/劃痕D/正?;住惫?類你想用Unet做端到端語義分割但pip install torch torchvision后第一行model UNet(n_classes6)就報錯RuntimeError: Expected input batch_size (4) to match target batch_size (1)或者訓練100輪loss紋絲不動驗證mIoU卡在0.03。這不是模型不行是PyTorch下Unet落地多類別分割的真實水位線它要求你親手把label.png里的灰度值0,1,2,3,4,5對齊到one-hot的第0~5維手動處理mask通道順序硬編碼ignore_index甚至重寫DiceLoss的smooth項防除零。本文不講Unet結構圖只拆解某實驗室在產線缺陷檢測項目中用PyTorch 1.13CuDNN 8.6實打實跑通6類Unet的全流程——從原始label.png的灰度值校驗到DataLoader里transforms.Compose的順序陷阱再到驗證階段逐類計算IoU的腳本每一步都附可直接粘貼運行的代碼塊和血淚參數(shù)說明。2. 多類別語義分割的數(shù)據(jù)準備label.png灰度值必須嚴格映射為0~N-1且不可跳號2.1 標簽圖像的格式陷阱為什么你的label.png打開是彩色但PyTorch讀出來全是0很多新手用LabelMe或CVAT導出標注時誤選了“colormap PNG”而非“grayscale PNG”。結果label.png在Windows畫圖里顯示五顏六色但用cv2.imread()讀取后實際像素值是[0, 127, 255]這種非連續(xù)整數(shù)——PyTorch的CrossEntropyLoss會直接報錯Target size must be the same as input size。正確做法是強制轉為單通道灰度圖并重映射為連續(xù)整數(shù)。import cv2 import numpy as np from pathlib import Path def convert_label_to_continuous(label_path: Path, class_map: dict): class_map: {background:0, bolt_A:1, bolt_B:2, washer_C:3, rust:4, scratch:5} 將label.png中原始RGB值或離散灰度值統(tǒng)一映射為0~len(class_map)-1的連續(xù)整數(shù) label cv2.imread(str(label_path), cv2.IMREAD_UNCHANGED) # 若是3通道彩色圖先轉灰度注意不能用cv2.COLOR_BGR2GRAY因LabelMe colormap非標準 if len(label.shape) 3: # LabelMe colormap固定映射(0,0,0)-0, (128,0,0)-1, (0,128,0)-2, (128,128,0)-3, (0,0,128)-4, (128,0,128)-5 # 手動查表轉換避免顏色抖動 label_gray np.zeros(label.shape[:2], dtypenp.uint8) for name, idx in class_map.items(): # 定義該類別的RGB閾值根據(jù)你實際導出的colormap調整 if name background: mask (label[:,:,0] 0) (label[:,:,1] 0) (label[:,:,2] 0) elif name bolt_A: mask (label[:,:,0] 128) (label[:,:,1] 0) (label[:,:,2] 0) elif name bolt_B: mask (label[:,:,0] 0) (label[:,:,1] 128) (label[:,:,2] 0) elif name washer_C: mask (label[:,:,0] 128) (label[:,:,1] 128) (label[:,:,2] 0) elif name rust: mask (label[:,:,0] 0) (label[:,:,1] 0) (label[:,:,2] 128) elif name scratch: mask (label[:,:,0] 128) (label[:,:,1] 0) (label[:,:,2] 128) else: continue label_gray[mask] idx label label_gray else: # 已是單通道但可能含非連續(xù)值如[0,2,4,6]需重映射 unique_vals np.unique(label) mapping {v: i for i, v in enumerate(sorted(unique_vals))} label np.vectorize(mapping.get)(label) # 強制保存為單通道uint8灰度圖 cv2.imwrite(str(label_path).replace(.png, _clean.png), label) print(f? {label_path.name} - clean: unique values {np.unique(label)}) # 使用示例定義你的6類映射 class_map { background: 0, bolt_A: 1, bolt_B: 2, washer_C: 3, rust: 4, scratch: 5 } for p in Path(data/labels).glob(*.png): convert_label_to_continuous(p, class_map)提示這段代碼的核心邏輯是——不依賴任何第三方標注工具的“導出設置”而是用OpenCV原生操作把label.png的物理像素值無論RGB還是灰度硬解為邏輯類別ID。class_map字典必須與你后續(xù)模型輸出的n_classes完全一致且鍵名順序無關值必須為0~N-1連續(xù)整數(shù)。執(zhí)行后檢查_clean.png的unique值必須是[0 1 2 3 4 5]缺一不可。2.2 圖像與標簽尺寸必須嚴格一致resize時的雙三次插值陷阱Unet對輸入尺寸敏感但更致命的是image和label的H×W不一致。常見錯誤用PIL.Image.open().resize()處理image卻用cv2.resize()處理label導致插值方式不同PIL默認LANCZOScv2默認INTER_LINEAR同一縮放比例下像素偏移1~2像素。解決方案統(tǒng)一用torchvision.transforms.functional且對image和label使用完全相同的transform對象。import torch from torchvision import transforms from torchvision.transforms import functional as F from PIL import Image class SegmentationTransform: def __init__(self, size(512, 512)): self.size size def __call__(self, image: Image.Image, target: Image.Image): # 統(tǒng)一使用F.resize且interpolation參數(shù)必須相同 # image用BILINEAR保留紋理細節(jié)target用NEAREST保持label整數(shù)性 image F.resize(image, self.size, interpolationF.InterpolationMode.BILINEAR) target F.resize(target, self.size, interpolationF.InterpolationMode.NEAREST) # 轉tensor前確保target是單通道 if target.mode ! L: target target.convert(L) image F.to_tensor(image) # 歸一化到[0,1]shape [3,H,W] target torch.as_tensor(np.array(target), dtypetorch.long) # 不歸一化shape [H,W] return image, target # 在Dataset.__getitem__中使用 transform SegmentationTransform(size(512, 512)) image Image.open(data/images/001.jpg) label Image.open(data/labels/001_clean.png) # 注意必須是_convert_label_to_continuous生成的_clean.png image_t, label_t transform(image, label) print(f? image shape: {image_t.shape}, label shape: {label_t.shape}, label unique: {torch.unique(label_t)}) # 輸出應為image shape: torch.Size([3, 512, 512]), label shape: torch.Size([512, 512]), label unique: tensor([0, 1, 2, 3, 4, 5])參數(shù)說明F.InterpolationMode.BILINEAR用于圖像保證邊緣平滑F(xiàn).InterpolationMode.NEAREST用于label這是鐵律——任何其他插值BILINEAR/AREA都會把整數(shù)label變成浮點導致CrossEntropyLoss崩潰。torch.as_tensor(..., dtypetorch.long)顯式指定dtype避免默認float32引發(fā)的loss計算錯誤。2.3 DataLoader的batch維度對齊為什么target的shape是[4,512,512]而input是[4,3,512,512]PyTorch的CrossEntropyLoss要求target的shape為[N, H, W]N為batch size而input為[N, C, H, W]。若你在Dataset中返回了[H, W, 1]的label常見于cv2.imread讀取后未squeezeDataLoader會自動堆疊為[N, H, W, 1]觸發(fā)Target size must be the same as input size。必須在__getitem__末尾確保label是二維張量。class CustomSegmentationDataset(torch.utils.data.Dataset): def __init__(self, image_dir, label_dir, transformNone): self.image_paths sorted(list(Path(image_dir).glob(*.jpg))) self.label_paths sorted(list(Path(label_dir).glob(*_clean.png))) # 關鍵只認_clean.png self.transform transform def __getitem__(self, idx): image Image.open(self.image_paths[idx]).convert(RGB) label Image.open(self.label_paths[idx]).convert(L) # 強制單通道 if self.transform: image, label self.transform(image, label) # ?? 死亡陷阱確保label是二維 if label.ndim 3 and label.shape[0] 1: label label.squeeze(0) # [1,H,W] - [H,W] elif label.ndim 3 and label.shape[2] 1: label label.squeeze(2) # [H,W,1] - [H,W] # 再次校驗label必須是long型二維張量 assert label.ndim 2, flabel must be 2D, got {label.ndim}D assert label.dtype torch.long, flabel dtype must be torch.long, got {label.dtype} return image, label def __len__(self): return len(self.image_paths) # 實例化DataLoader dataset CustomSegmentationDataset( image_dirdata/images, label_dirdata/labels, transformSegmentationTransform(size(512, 512)) ) dataloader torch.utils.data.DataLoader( dataset, batch_size4, shuffleTrue, num_workers4, pin_memoryTrue # 關鍵加速GPU傳輸 )邏輯說明squeeze()操作是防御性編程。即使transform已保證label為二維但在某些PIL版本或異常圖像下仍可能殘留單通道維度。assert語句在debug階段必加上線后可注釋。pin_memoryTrue能將CPU tensor預加載到page-locked memory使GPU數(shù)據(jù)搬運提速20%以上尤其在batch_size2時效果顯著。3. Unet模型構建與PyTorch適配通道數(shù)、初始化、輸出頭必須與多類別嚴格匹配3.1 自定義Unet為什么不能直接用timm或segmentation_models_pytorch的預訓練Unettimm.unet默認輸出通道數(shù)為1二值分割segmentation_models_pytorch.Unet雖支持classesn但其decoder最后一層是Conv2d(64, n, 1)而你的6類分割需要輸出[N,6,H,W]且loss函數(shù)要求logits未softmax。更重要的是這些庫的預訓練權重如encoder部分來自ImageNet在工業(yè)小樣本場景下易過擬合某實驗室實測直接加載imagenet權重的Unet在6類產線數(shù)據(jù)上val loss震蕩劇烈而從零初始化encoderdecoder配合強augmentation收斂更穩(wěn)。因此我們手寫輕量Unet控制總參數(shù)3M。import torch import torch.nn as nn import torch.nn.functional as F class DoubleConv(nn.Module): (conv BN ReLU) * 2 def __init__(self, in_ch, out_ch): super().__init__() self.conv nn.Sequential( nn.Conv2d(in_ch, out_ch, 3, padding1, biasFalse), nn.BatchNorm2d(out_ch), nn.ReLU(inplaceTrue), nn.Conv2d(out_ch, out_ch, 3, padding1, biasFalse), nn.BatchNorm2d(out_ch), nn.ReLU(inplaceTrue) ) def forward(self, x): return self.conv(x) class Down(nn.Module): def __init__(self, in_ch, out_ch): super().__init__() self.mpconv nn.Sequential( nn.MaxPool2d(2), DoubleConv(in_ch, out_ch) ) def forward(self, x): return self.mpconv(x) class Up(nn.Module): def __init__(self, in_ch, out_ch, bilinearTrue): super().__init__() if bilinear: self.up nn.Upsample(scale_factor2, modebilinear, align_cornersTrue) else: self.up nn.ConvTranspose2d(in_ch // 2, in_ch // 2, 2, stride2) self.conv DoubleConv(in_ch, out_ch) def forward(self, x1, x2): x1 self.up(x1) # input is CHW diffY x2.size()[2] - x1.size()[2] diffX x2.size()[3] - x1.size()[3] x1 F.pad(x1, [diffX // 2, diffX - diffX // 2, diffY // 2, diffY - diffY // 2]) x torch.cat([x2, x1], dim1) return self.conv(x) class OutConv(nn.Module): def __init__(self, in_ch, out_ch): super().__init__() self.conv nn.Conv2d(in_ch, out_ch, 1) # 關鍵out_ch n_classes def forward(self, x): return self.conv(x) class UNet(nn.Module): def __init__(self, n_channels3, n_classes6, bilinearTrue): super().__init__() self.n_channels n_channels self.n_classes n_classes self.bilinear bilinear self.inc DoubleConv(n_channels, 64) self.down1 Down(64, 128) self.down2 Down(128, 256) self.down3 Down(256, 512) self.down4 Down(512, 512) self.up1 Up(1024, 256, bilinear) self.up2 Up(512, 128, bilinear) self.up3 Up(256, 64, bilinear) self.up4 Up(128, 64, bilinear) self.outc OutConv(64, n_classes) # ?? 這里必須是n_classes不是1 def forward(self, x): x1 self.inc(x) x2 self.down1(x1) x3 self.down2(x2) x4 self.down3(x3) x5 self.down4(x4) x self.up1(x5, x4) x self.up2(x, x3) x self.up3(x, x2) x self.up4(x, x1) logits self.outc(x) # shape: [N, n_classes, H, W] return logits # 初始化模型并校驗輸出 model UNet(n_channels3, n_classes6, bilinearTrue).cuda() dummy_input torch.randn(2, 3, 512, 512).cuda() output model(dummy_input) print(f? Model output shape: {output.shape}) # 應為 torch.Size([2, 6, 512, 512]) print(f? Output min/max: {output.min().item():.3f}, {output.max().item():.3f})參數(shù)說明n_classes6直接決定OutConv的輸出通道數(shù)這是整個流程的錨點。bilinearTrue啟用雙線性上采樣比轉置卷積更穩(wěn)定align_cornersTrue解決PyTorch 1.13中upsample的坐標對齊bug避免分割邊界偏移。dummy_input測試必須在GPU上運行因為后續(xù)loss計算依賴CUDA kernel。3.2 權重初始化策略為什么He初始化比Xavier更適合Unet的ReLUUnet大量使用ReLU激活其輸出存在“死亡神經(jīng)元”風險。Xavier初始化適用于tanh/sigmoid會使ReLU前向傳播方差衰減而He初始化專為ReLU設計能保持各層輸出方差穩(wěn)定。我們在__init__后立即調用init_weights()。def init_weights(m): if isinstance(m, nn.Conv2d) or isinstance(m, nn.ConvTranspose2d): # He初始化std sqrt(2 / fan_in) nn.init.kaiming_normal_(m.weight, modefan_in, nonlinearityrelu) if m.bias is not None: nn.init.constant_(m.bias, 0) elif isinstance(m, nn.BatchNorm2d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0) # 應用初始化 model UNet(n_channels3, n_classes6).cuda() model.apply(init_weights) # 驗證檢查第一層卷積權重標準差 print(f? conv1 weight std: {model.inc.conv[0].weight.std().item():.4f}) # 應接近0.05邏輯說明nn.init.kaiming_normal_的modefan_in表示以輸入通道數(shù)fan_in為歸一化基準這符合Unet encoder中特征圖通道數(shù)遞增、空間尺寸遞減的特點。nonlinearityrelu告知初始化器激活函數(shù)類型自動計算最優(yōu)std。若跳過此步某實驗室實測未初始化的Unet在epoch5前l(fā)oss下降極慢且梯度norm波動劇烈。3.3 輸出頭與loss的耦合logits必須直接喂給CrossEntropyLoss禁止softmaxCrossEntropyLoss LogSoftmax NLLLoss它內部已包含softmax若你手動F.softmax(logits, dim1)再傳入會導致雙重softmax輸出概率全趨近于1loss爆炸。這是新手最高頻翻車點。# ? 錯誤示范手動softmax logits model(image_batch) # shape [N,6,H,W] pred_prob F.softmax(logits, dim1) # 錯dim1是channel維度 loss criterion(pred_prob, target_batch) # 報錯或lossnan # ? 正確示范logits直連 logits model(image_batch) # shape [N,6,H,W] loss criterion(logits, target_batch) # target_batch shape [N,H,W]dtype long關鍵參數(shù)criterion nn.CrossEntropyLoss(ignore_index255)。ignore_index用于跳過無效像素如標注中的ignore區(qū)域但你的數(shù)據(jù)若無ignore區(qū)域必須設為-100PyTorch默認值不可設為0背景類會被忽略。若你強行設ignore_index0則背景類像素不參與loss計算模型永遠學不會區(qū)分背景和其他類。4. 多類別分割的損失函數(shù)與評估DiceLossCE混合、逐類IoU計算不可少4.1 混合損失函數(shù)為什么單用CrossEntropyLoss在類別不平衡時失效你的6類數(shù)據(jù)中“background”占85%像素“rust”僅占0.3%。單用CrossEntropyLoss會導致模型偏向預測background驗證集上rust類IoU恒為0。解決方案DiceLoss懲罰前景類召回率CE Loss保證全局分類能力按0.5:0.5加權。class DiceLoss(nn.Module): def __init__(self, smooth1.0, ignore_index-100): super().__init__() self.smooth smooth self.ignore_index ignore_index def forward(self, logits, target): # logits: [N,C,H,W], target: [N,H,W] probs F.softmax(logits, dim1) # [N,C,H,W] # 將target轉為one-hot: [N,H,W] - [N,C,H,W] target_one_hot F.one_hot(target, num_classeslogits.shape[1]).permute(0,3,1,2).float() # 忽略ignore_index位置 if self.ignore_index 0: valid_mask (target ! self.ignore_index).unsqueeze(1).float() # [N,1,H,W] probs probs * valid_mask target_one_hot target_one_hot * valid_mask intersection (probs * target_one_hot).sum(dim(2,3)) # [N,C] cardinality (probs target_one_hot).sum(dim(2,3)) # [N,C] dice_coeff (2. * intersection self.smooth) / (cardinality self.smooth 1e-8) # 對每個類別求平均再對batch求平均 dice_loss 1 - dice_coeff.mean() return dice_loss class CombinedLoss(nn.Module): def __init__(self, ce_weight0.5, dice_weight0.5, ignore_index-100): super().__init__() self.ce_weight ce_weight self.dice_weight dice_weight self.ce_loss nn.CrossEntropyLoss(ignore_indexignore_index) self.dice_loss DiceLoss(ignore_indexignore_index) def forward(self, logits, target): ce self.ce_loss(logits, target) dice self.dice_loss(logits, target) return self.ce_weight * ce self.dice_weight * dice # 實例化損失函數(shù) criterion CombinedLoss(ce_weight0.5, dice_weight0.5, ignore_index-100).cuda() # 測試構造模擬數(shù)據(jù) logits_test torch.randn(2, 6, 128, 128).cuda() target_test torch.randint(0, 6, (2, 128, 128)).cuda() loss_test criterion(logits_test, target_test) print(f? Combined loss: {loss_test.item():.4f})參數(shù)說明smooth1.0防止分母為01e-8是額外保險ignore_index-100與CrossEntropyLoss默認值對齊確保一致性。ce_weight和dice_weight需根據(jù)數(shù)據(jù)平衡性調整若前景類極少1%可提高dice_weight至0.7若各類均衡0.5:0.5即可。F.one_hot是PyTorch 1.8特性低于此版本需用torch.eye手動構造。4.2 逐類IoU計算mIoU不是唯一指標必須看每一類的召回與精確率CrossEntropyLoss優(yōu)化的是像素級分類準確率但語義分割核心指標是IoU交并比。mIoU是各類IoU的平均值但若某類IoU0.95另一類0.01mIoU0.48看似尚可實則模型完全失效。必須輸出每類IoU表格。def compute_iou_per_class(pred_mask, target_mask, num_classes6, ignore_index-100): pred_mask: [N,H,W] int64, 每個像素的預測類別ID target_mask: [N,H,W] int64, 真實類別ID 返回: list of IoU per class, lengthnum_classes ious [] for cls in range(num_classes): # 獲取該類別的預測和真實mask pred_cls (pred_mask cls) target_cls (target_mask cls) # 忽略ignore_index位置 if ignore_index 0: valid (target_mask ! ignore_index) pred_cls pred_cls valid target_cls target_cls valid intersection (pred_cls target_cls).sum().item() union (pred_cls | target_cls).sum().item() if union 0: ious.append(float(nan)) # 該類無真值IoU無定義 else: ious.append(intersection / union) return ious # 在驗證循環(huán)中調用 model.eval() all_ious [] with torch.no_grad(): for images, targets in val_dataloader: images, targets images.cuda(), targets.cuda() logits model(images) preds logits.argmax(dim1) # [N,H,W] ious compute_iou_per_class(preds, targets, num_classes6) all_ious.append(ious) # 匯總對所有batch取平均忽略nan ious_array np.array(all_ious) # shape [num_batches, 6] mean_ious np.nanmean(ious_array, axis0) class_names [background, bolt_A, bolt_B, washer_C, rust, scratch] print(\n Per-class IoU:) for name, iou in zip(class_names, mean_ious): print(f{name:12s}: {iou:.4f}) print(fmIoU: {np.nanmean(mean_ious):.4f})邏輯說明preds logits.argmax(dim1)是獲取預測類別ID的標準操作dim1對應channel維度。compute_iou_per_class中union 0的判斷至關重要——當某類在當前batch中完全未出現(xiàn)如rust類樣本極少union為0此時IoU無意義返回nan最終np.nanmean會自動忽略。這樣得到的mIoU才真實反映模型能力。4.3 避坑多類別分割的5個高頻翻車現(xiàn)場與血淚解法現(xiàn)象1訓練loss下降但驗證mIoU始終為0且所有預測都是background原因label.png的灰度值未重映射為0~5而是[0,10,20,30,40,50]導致CrossEntropyLoss將所有非0像素視為ignore_index默認-100只學習background。解決嚴格執(zhí)行2.1節(jié)的convert_label_to_continuous()并用np.unique()打印clean label的值確認為[0 1 2 3 4 5]。現(xiàn)象2loss在0.3附近震蕩不下降梯度norm極小1e-5原因模型權重未初始化或init_weights()未應用到所有子模塊如忘記model.apply()。解決在模型實例化后立即調用model.apply(init_weights)并用print(model.inc.conv[0].weight.std())驗證首層權重標準差是否≈0.05?,F(xiàn)象3驗證時preds logits.argmax(dim1)報錯RuntimeError: argmax(): Expected dtype int64 or fp32原因logits是fp16混合精度訓練argmax不支持fp16輸入。解決preds logits.float().argmax(dim1)或在AMP上下文中用with torch.cuda.amp.autocast(enabledFalse):包裹預測代碼。現(xiàn)象4mIoU計算中某類IoU為nan且該類在驗證集出現(xiàn)頻率高原因ignore_index設為0而0是background類導致background被忽略union恒為0。解決ignore_index必須設為-100PyTorch默認或一個不在類別ID中的值如255絕不可設為任一有效類別ID。現(xiàn)象5訓練時GPU顯存爆滿batch_size1就OOM原因Unet的skip connection中torch.cat([x2, x1], dim1)將encoder特征與upsampled特征拼接若encoder輸出通道為512upsampled為256則拼接后為768通道顯存激增。解決在Up模塊中將self.up nn.ConvTranspose2d(in_ch // 2, in_ch // 2, 2, stride2)改為self.up nn.Upsample(scale_factor2, modebilinear, align_cornersTrue)并確保bilinearTrue可減少30%顯存占用。5. 訓練循環(huán)與早停策略動態(tài)學習率、梯度裁剪、模型保存的工業(yè)級實踐5.1 帶warmup的余弦退火學習率為什么固定lr1e-3在第10輪就過擬合Unet對學習率敏感。某實驗室對比實驗顯示固定lr1e-3時loss在epoch5驟降但val mIoU在epoch8達峰后持續(xù)下跌而采用warmupcosinelr從1e-5線性升至1e-3warmup 5 epoch再余弦退火至1e-6val mIoU穩(wěn)定提升至epoch30。代碼實現(xiàn)如下from torch.optim.lr_scheduler import CosineAnnealingLR, LinearLR, SequentialLR def get_scheduler(optimizer, warmup_epochs5, total_epochs50, min_lr1e-6): warmup_scheduler LinearLR( optimizer, start_factor1e-3, # 從lr*1e-3開始 end_factor1.0, # 到lr*1.0結束 total_iterswarmup_epochs ) cosine_scheduler CosineAnnealingLR( optimizer, T_maxtotal_epochs - warmup_epochs, eta_minmin_lr ) scheduler SequentialLR( optimizer, schedulers[warmup_scheduler, cosine_scheduler], milestones[warmup_epochs] ) return scheduler # 使用示例 optimizer torch.optim.AdamW(model.parameters(), lr1e-3, weight_decay1e-4) scheduler get_scheduler(optimizer, warmup_epochs5, total_epochs50) # 在訓練循環(huán)中 for epoch in range(50): model.train() for images, targets in train_dataloader: images, targets images.cuda(), targets.cuda() optimizer.zero_grad() logits model(images) loss criterion(logits, targets) loss.backward() torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm1.0) # 梯度裁剪 optimizer.step() scheduler.step() # 更新學習率 print(fEpoch {epoch1}, LR: {scheduler.get_last_lr()[0]:.2e})參數(shù)說明LinearLR的start_factor1e-3表示warmup起始lr為1e-3 * 1e-3 1e-6end_factor1.0表示結束lr為1e-3 * 1.0 1e-3CosineAnnealingLR的eta_min1e-6是最終最小lr。torch.nn.utils.clip_grad_norm_將梯度norm限制在1.0內防止梯度爆炸這是訓練穩(wěn)定性的后悔藥。5.2 早停與最佳模型保存監(jiān)控val mIoU而非lossloss下降不代表分割質量提升必須以val mIoU為早停依據(jù)。保存最佳模型時不僅存state_dict還要存optimizer和scheduler狀態(tài)便于斷點續(xù)訓。class EarlyStopping: def __init__(self, patience7, delta0.001, save_pathbest_model.pth): self.patience patience self.delta delta self.save_path save_path self.best_score None self.epochs_no_improve 0 self.improved False def __call__(self, val_iou, model, optimizer, scheduler): score val_iou if self.best_score is None: self.best_score score self.save_checkpoint(model, optimizer, scheduler) self.improved True elif score self.best_score self.delta: self.epochs_no_improve 1 self.improved False if self.epochs_no_improve self.patience: return True # 觸發(fā)早停 else: self.best_score score self.epochs_no_improve 0 self.save_checkpoint(model, optimizer, scheduler) self.improved True return False def save_checkpoint(self, model, optimizer, scheduler): torch.save({ epoch: epoch, model_state_dict: model.state_dict(), optimizer_state_dict: optimizer.state_dict(), scheduler_state_dict: scheduler.state_dict(), best_val_iou: self.best_score, }, self.save_path) print(f? Saved best model to {self.save_path}) # 在驗證循環(huán)后調用 early_stopping EarlyStopping(patience10, delta0.002, save_pathunet_best.pth) for epoch in range(50): # ... 訓 p a hrefhttps://download.csdn.net/download/brf_UCAS/14109453 stylecolor:#ec7500;font-size:14px; 本文還有配套的精品資源點擊獲取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久中文字幕人妻熟av女蜜柚| 一区不卡在线观看av| 99色视频| 国产树林里野战在线看| 国产强奸乱伦无码视频| 久久中文字幕女同性恋一区| 免费人人搞97| 久久人妻办公室视频| 草草草视频在线免费看| 美女网站91| 91少妇香蕉久久精品| 蜜桃臀av在线观看| 自慰白浆在线观看| 色综合久久88色综合久久天天| 欧美啪啪色吧在线| 欧美97av| 91精品国产长腿丝袜美女| 欧美性,色九九| 亚洲 欧美 天天| 亚洲成人无码影院| 日韩中文字幕人妻视频| 中文字幕蜜乳av| 91久久精品美女高潮喷水| 青青草自拍视频在线播放| 国产亚洲精品第一最新| av网页一区二区三区| 少妇久久久久| 成人久久久| 青青草依人大香蕉| 96精品久久久久久久久久| 日韩15p| 亚码人妻| 人妻五十路在线| 日韩三级在线观看mp4| 亚洲成人av色网| 曰韩av中文字幕专区| 亚洲无无码αⅴ每日更新| 中文字幕后石码四区五区| 久久九九精品一区二区 | 欧美综合1性辶| 亚洲人综合| 四虎影视 亚洲无码| 操逼内射干逼白丝91| 97人妻色| 亚洲色图加勒比| 国产夜夜艹| 亚洲日本男人天堂网| 亚洲熟妇极品| av婷婷色网| 97操97色| 制服丝袜第二页| 国产成人啪一区二区| 内射卯月麻衣| 97色亚洲| 吖在线不卡一区二区国产剧情 | 亚洲第一页欧美| 95精品在线| 无码人妻一区二区一牛影视| 骚乳在线| 亚洲丝袜99| 夜夜做夜夜爽精品视频| 69麻豆天美| 久久大黄片| 中国操逼无码| 国产高清成人mv在线观看| 免费啪啪一级视频| 亚洲中文人妻色| 九九英色视频| 久热最新在线杭州| 精品在线观看视频在线| 嗯阿好爽好紧| 中文字幕第23区| 人妻久久| 中文字幕一区二区在线日韩精品| 18禁超污无遮挡无码免费网| 亚洲 欧美 另类 综合 偷拍| 热的中文 热的有码 热的国产| 亚洲国产亚洲天堂| 日韩免费a级毛片无码a∨ | 久久国产精品熟女人妻| 欧美96交| 国产丝袜欧美在线视频| 超碰人人色| 欧美少妇一区二区三区| 蜜桃网熟妇| 国产二区三区免费视频| 人妻av在线| 精品人妻一区二区三区-国产| 91久久久视| 99精品无码| A片大香蕉在线| 五月天婷婷小说| 伊人aaa| 起碰97| 国产精品秘 福利姬在线观看| 欧洲乱码视频| 亚洲春色一区二区三区| 九九热最新| 久久香蕉超碰97国产精品| 国产精品96久久久久久| 综合色图亚洲欧美| 大香交| 日本操逼视频不卡直接放| 激情婷婷丁香| 综合熟妇一区二区三区| 日韩成人性爱AV| 久草男人天堂| 国产精品人人爽人人做可爱福利| 99色视频| 婷婷色综合欧美日韩| 超碰人人干| 97视频www| 秋霞网—男女啪啪亚洲免费体验区| 99在线观看| julia ann久久| 国产亚洲性生活视频播放| 超碰久久性爱| 亚洲色图91| 大香蕉操久久| 少妇久久久久久| 淫妻综合网| 91网站18| 宗合情欲网| 免费中文综合精品| 九九热超碰97亚洲最新香蕉| 亚洲 欧美 精品专区 极品| 志村玲子视频一区二区| 妇女性内射冈站HDWWWCOM| 欧美久久婷| 色妇综合网| 97人肏| 中文字幕国产在线天堂| 五月婷婷hd| 日本高清免费一本视频在线观看| 亚91亚洲网| 亚洲一区日韩精品中文字幕| AV高清一区| 久久免费99精品久久久久久| 麻豆一区二区三区精品| 上海一级黄片| 天美传媒婬乱在| 久久本道| 国产亚洲性生活视频播放| 欧美人妻色| 插日本熟女视频| 伊人网在线点播| 丝袜熟女2P| 亚洲欧美日韩制服另类| 夜夜操夜夜高潮夜夜爽国产精品区| www.激情| 国产精品网址| 超碰97国产欧美| 久久久9视频| 日本韩国国产精品一区| 色五月激情AV在线| 一区二区三区网站日日骚| 欧美高清18A片| 亚洲欧洲日产国产综合网| 国产成人免费观看在线视频| 99re9| 五十路熟女工口 | 曰韩av中文字幕专区| 国产福利合集| 爱妻综合网| 五月天综合| 日本性爰一道本| 欧美综合1性辶| 精品999日本| 伊人色综合网| 国产区性爱在线视频秋霞豆| 91AV入口| 亚洲欧美校园| 俞拍自拍| 99热导航| http://qxhbdz.com| 婷婷丁香九月| 国产精品一区二区a| A一级色女| 国产人妻精品久久久一区二区三区 | 亚洲欧美第一页| 少妇内射www在线观看视频 | 超碰97人妻免费在线| 伊人欧美大香蕉视频| 欧美亚洲丝袜美女电影| 久久婷婷精品| 欧美特大黄一级片片免费| 97在线视频观看| 老司机福利社视频在线观看| 中出20p| 国产天天看| 校园春色制服丝袜中文字亚洲| 欧美十八禁网站| 欧美不卡在线一区二区| 看日韩黄片| 男女国产精品| 91熟女丨老女人| 视频在线观看青青99国产| 大香蕉在线视频重口味毛片在线| 91在线|亚| 2011国产精品| 偷窥自拍亚洲色图| 9久综合网| 人妻熟女字幕一区二区| 日本色婷婷| 最近的最新的中文字幕视频| 日本操逼视频导航| 囯产操逼片| 中文字幕一区电影在线观看| 免费精品人妻一区二区三| 日韩无码一级黄色av片| 成人无码在线视频网站| 亚洲男人久久综合天堂| 人人玩人人添人人澡免费| 激情小说图片亚洲首页| 一级性爱视频免费在线| 午夜a成v人电影| 午夜a成v人电影| 肏逼福利网站| 在线观看无码三级少妇| 亚洲一级性爱视频免费看| 国产精品免费1区2区视频| www.99色| 乱伦图一区| 操逼网免费无码视频| www色色com| 伊人AAA| 猛交交| 午夜欧美J进J出白浆流出久久久| 欧美日韩天堂| 欧美色图亚洲色,麻豆| 97操碰| 国产三级片在线观看| 久草加勒比一区在线| 快灬快灬 一下爽蜜桃在线观看| 国产 日韩,欧美 自拍| 男人的天堂啪啪啪啪啪蜜桃不卡| 超碰午夜| 亚洲狠狠入| 中文字幕欧美丝袜07资源| 日韩三级在线观看网站| 日韩欧美国产一区二区三区四区| 秋霞久久亚洲精品成人| 国产一区二区啪啪视频| av操操不卡| 最新AVzaixian| 激情亚洲天堂| 一区二区三区麻豆| 草草影院最新网址| 熟女丰满人妻一区| 国产精品乱码久久久久久| 九九热av| 黄色网址在线免费观看| 日韩成人色图| 综合熟妇一区二区三区| 性爱免费视频成人| 99久久综合| 男人天堂2019| 333kkkk·亚洲com久久| 人妻少妇一区二区| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 草伊人高潮喷水超碰| 欧美91久久久久| 久久精品国产Aⅴ| 日人妻视频91| 在线五区| 爽极品影院| 人人妻人人操人人乐| 美女91网址| 不卡中文字幕aⅴ在线| 啪啪综合网| 超碰伊人在线| 国产剧情AV不卡在线观看| 亚洲有码 视频一区| 人妻丝袜肏逼| 成人八戒网站| 麻豆精品天美| 亚洲AV无码黄色强奸| 91在线色| 国产精品探花色| 黄色污污污污污污网站| 亚洲天天操| 亚欧精品久久久久久久久久久| 天天拍天| 色婷婷综合网站| 欧美丰满少妇交换91欧美精品| 激情五月天插| av东京热男人的天堂| 牛牛AV人人夜夜澡人人爽| 九九九九九九九精品视频| 亚洲91射| 伊人久久大香大香线蕉中文| 视频在线97| 91精品啪在线观看国产城中村| 日产中文字幕2020| 狠狠操官网| 国精综合一二三区影视| 草草影院最新网址| 久久美国毛片| 乱伦系列一区二区| 玖玖爱视频网站| 亚洲操逼网| 一区二区影视| 色一射色一射| 免费观看欧美日韩操逼视频| 亚洲欧美色图片| 偷拍伦理视频| 人人干人人操人人爱| 日本999精品视频| 大香蕉一区二区在线观看.| 热久久99999| 手机在线播放国产福利| 欧美一区二区三区成人性生活| 国产男人又猛又粗又爽| 亚洲精品国产拍免费91在线| 天天欧美色| 亚洲av噜噜噜噜噜噜| 综合网~91综合网| 亚洲欧美日韩精品久| 色原狠狠天天天| 欧美有码激情视频一区二区三区| 天天躁日日躁xxxxx| 尤物视频网 刘玥| 色99视频| 高潮毛片无遮挡高清免费| 国产风韵犹存熟妇三区| 色欧美天天| 亚洲无线码欧洲精品区别| 亚洲色图综合网| 日本高清久久| 日韩性爱视频在线免费观看| 骚货操死你| 日本裸体久久色噜噜| 免费的很黄很污的全部视频| 日本布卡一区二三区| 欧洲免费一区二| 肉嘟嘟www视频在线观看高清| 久热精品在线| 好舒服视频| 超碰免费在线| 久久一区二区高清免费| 久久 精品| 色拍偷亚洲| 激情自拍 校园春色| 久久久久久人妻一区精品色欧美| 亚洲欧美97√| 欧美成人国产精品| 99热精品青草在线 | 熟女一区二区三区| 中文高清一区二区的| 国产精品一区二区校花| 色姑娘综合网| 青草精品视频一日本久久久久网站| 亚洲aw毛茸茸在线| 日韩人妻资源在线看| 日韩亚洲中文有码视频| 久操精品| 嗯嗯啊啊啊好爽| 男人的天堂2000| 999日韩中文精品观看视频。| 国产91久久九九免费精品无码| 欧美一级A一级a爱片久久| 久久黄黄黄| 成 人 A V免费视频在线观看| 国产精品69久久久久久久| 精品176精品2| 超碰碰97| 亚洲 欧美 小说| 久久色激情一区二区三区| 婷婷丁香六月| 五月丁香色婷婷| 丰满的三级少妇欧美久久久| 国产亚州高清国产拍精| 男女激情黄色网址| 欧美日韩香蕉| 午夜福利视频在线一区| 丁香五月天激情网站| 久久人人爽爽人人爽人人片αV| 亚洲中文字幕熟女| 国产粉嫩蜜臀av一区二区三区| 欧美人妻少妇| 国产日韩精品suv| 91美女视频在线观看| 啊啊啊啊免费视频| 亚洲天堂男人天堂网| 久久岛国| 麻豆久久精品亚洲精品88| 亚洲情色综合| 欧美性爱日韩性爱| jizzjizz欧美| 人、人、摸,人、人、草| 久久久精品无码亚免费| 97香蕉碰碰人妻国产欧美| 日韩人妻无码专区| 啊啊啊操一区| 99999精品成人| 欧美成人亚洲精品| 97就爱干| 色约约一区=区三区| 天天综合~91| 在线观看高清AV| 国产AV激情无码久久无码| 久久精品国产亚洲AV嘿嘿| 人妻系列无码专区中文有码| 国产99 中文字幕日韩小视频| 99免费在线视频| 麻豆天美久久91| yazhousetuoumei| 日韩美女高潮喷水视频| 欧美日韩小说| 日韩性爱视频在线免费观看 | 日韩一级二级三级免费看完整版国语版 | 97一区二区三区视频| 夜夜 中文视频rt| 天天在线91| 中文字幕熟女人妻丝袜| 1人人看人人摸人人操| 午夜理论片在线观看免费| 婷婷六月色| 日韩99神马视频片| 97chaopengongkai| 亚洲国产婷婷在线播放| 亚洲男人天堂Av| 成人熟女区| 大香网站| 国产精品经典一卡久久久 | 国产精品亚洲一级av第二区| 污啪啪啪视频| 91强在线播放| 3PAV乱伦视频| 偷窥自拍亚洲天堂网爆| 中文久久一区| 综合 亚洲 欧美| 伊人网综合在线视频| 色嘟嘟人妻天堂网| 久久精品一区二区三区蜜桃臀| 无码人妻精品酒店| 中日韩欧美精品无码AⅤ一区二区| 青青草中文-久久青草精品一区二区三 | 亚洲少妇综合| 风流老熟女一区二区三区l| 一区二区激情国产熟女| 国产精品动态一区二区三区四四| 性爱网站一区二区| 国产乱码久久| 97久久久网站| 偷窥自拍A片| 精品乱码久久久久| 内射小黄片| 夜夜中出国产| 天天色欧美| 激情五月天丁香社区| 91总综合网| 91精品人| 91亚洲精品青草| 99国产女人| 大香蕉久| 一级AAA片一区二区三区| 久久毛卡| 十八禁一区二区无码观看| 欧美爆乳精品一区二区| 麻豆区99999| 三上悠亚在线毛片91| 午夜天堂精品久久久久91| 国产精品夜夜夜| 国产成人bd在线观看| 很很很很操| 69少妇一区二区| 蜜臀99999| A片A5445444| 色综合加勒比四四季| av黄图片在线观看| 97人人爱人人做人人乐| 国产亚洲精品激情| 亚洲天堂日本| 国产精品久久久久久片| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 艹少妇网站| AV男人天堂网| 色婷婷99| 亚洲综合91| 亚洲一二三四区机械| 超碰日韩人妻| 少妇内射视频| 岛国精品视频在线观看| 91天天综合日韩欧美| 97网址www| 一本色道久久天天射天天干| 自拍亚洲综合| 综合啪啪| 黄色操人| 亚洲 欧美 日本 国内 首页| 一区黄二区黄| 国产性爱在线视频一区二区| 中文字幕午夜精品久久久| 超碰人人干| 97在线看| 色阁阁AV综合网| 婷婷五月综合在线| 91精品人妻偷情| 欧洲精品一二三在线| 国产树林里野战在线看| 久久69| 中文久久96| 五月综合色| 麻豆视频国产一区二区| 高潮9999外国| 亚州 综合 色图| 日本中文字幕在线视频| 精品免费视频国产一区| 97在线资源| 国产后入精品| 激情五月天丁香社区| 中国人高清www色视频免费| 色阁阁AV综合网| 97超级久久强资源| 国产成人无码高清| 丰满人妻一区二区三区性色| 96久久久久久久| 动漫av中文| 国产女上位好爽在线| 欧美三级中文字幕hd| 日本精品五区| 97操B| 中文一区在线日| 97中文天堂| 人人操人人大香蕉| 亚洲精品尤物yw在线影院| 欧综合网| 欧美啪啪啪91| 久久精品电影| 骚女高跟AV在线| 国产有码一区| 日韩在线AB| 99热综合| 久操热线| 国产高清成人传媒影视| 最新中文字幕精品在线| 一级特黄aaa大片在线观看成人一级片在线观看 | 亚洲一区中文精品| 国产精品久久| 日日骚中文字幕| 青青五月天| 好爽要喷了| 人妻素股| 天天爱综合网| 超碰一区二区| 狠狠操狠狠燥| 一区超碰一区| 人妻天天爽夜夜爽2| 天综合网欧美| 亚洲国产亚洲天堂| 好爽要喷了| 蜜桃臀一区二区三区久久| 久久一本大香蕉| 国产精品久久久九九九| 91殴美大片| av亚洲天堂资源网站| 九九久久久久久爱| 色情亚洲日本成人| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 男人综合网| JuliaAnn丝袜熟女系列| 超碰在线91| 国产传媒av天美传媒在线| 人人妻人人玩人人澡人人爽| 日日超碰亚洲| 亚洲日韩视频二区| 国产精品呦一区二区三区| 一线黄色免费性爱片| 中日韩熟女| 黄片www.| 大香蕉色十月| 操逼精品视频| 日本 情色 1区2区3区| 久久熟女嫩草成人片免费| 91中文字幕在线观看| 欧美日韩亚洲天堂| 青娱乐淫乱1314| 欧亚性爱在线视频| 手机看片1025| 91在线美女| 久久久久9| 99热精品在线观看| 在线αⅴ| HEYZO高无码国产精品227| 99热欧美| 西西美女视频网| 天天搞欧美| 国产成人久久精品蜜臀| 亚洲自拍天堂| 天天干天天做| 欧美成人综合| 亚洲交性| 久久九九视频九九视频| 婷婷综合五月天| 女人一区| 久久精品28| 丰满人妻无码一区二区三区| 六月婷婷综合| 香蕉av一区二区三区| 亚洲在饯| 亚洲精品人妻吞精av| 婷婷三区| 四虎av在线| 澳门黄片一香蕉视频| 五月婷婷丁香| 97在线观视频免费观看| 97超碰超碰| 中国探花熟女| 九九自拍伦理| 精品无码久久久久久久杏吧| 夜夜草网站| 欧美日动态视频| 97在线观看| 欧美在线播放aaaa| 国产久久日| 日本色色色网站免费看不卡| 色优久久| 色69大色97香蕉| 黄色AAAAA欧美| 67194无码不卡| 久久二| 黄片不用下载在线观看| 欧美成人一区二区| AV一起草在线| 欧美激情 日韩精品| 99re6在线视频播放免费精品| 无码 黑人一区二区三区| 少妇免费视频| 啊啊啊想要| 免费观看欧美日韩操逼视频| 神马久久免费电影观看| 亚洲αv一区二区三区| 精品一久久久| 日韩欧美午夜一区二区| 久久超碰、| 2023天天操夜夜操| 亚洲精品丝袜| 日B操| 午夜欧美J进J出白浆流出久久久 | 香蕉婷婷| 大逼色网站| 久久婷婷五月天| 97ai亚洲| 男人天堂一区二区| 亚洲精品少妇| 五月久久HDAV| 国产亚洲日韩欧| 一区 欧美 日韩 麻豆| 青娱乐福利99| 97 九色| 亚洲最新av无码成人精品区| 色爽——AV| 国产女性无套 免费观看| 国产九九九九九九| 91久久久久久| 婷婷丁香激情| 久久久久久久久九九久孕交| 免费人成在线观看网站品爱网| 青青草色情网站视频| 亚洲国产尤物yw在线观看| 亚州男人的天堂| 久久精品色欧美aⅴ一区二区| 四虎影视国产精品| 97人肏| 性暴力欧美猛交在线直播| m欧洲一级午老| 色一色综合网| 日本不卡五区| 超碰这里只有精品| 国产精品亚洲免费| 欧美天天综合| 少妇内射www在线观看视频 | 天天狂操夜夜狂日| 亚洲熟妇无码一区二区三区| 浪人综合网| 97在线观| 97碰碰日本乱偷人妻中文的| 亚洲国产无码精品首页久久久| 青草精品视频日本久久久久网站在线| 夜夜操老骚逼视频网站| 国产传媒操逼视频| 91中文字幕制服丝袜免费视频| 美腿色图| 欧美综合区| 欧美人与动性人交a| 国产第11页| 国产精品老熟女一区二区| 国内偷自视频区视频综合 | 中国亚洲呦女专区| 狠狠久久手机视频精品| 欧美成人精品一区二区男人蜜臀| 中文字幕日产av人| 亚洲精品中文字幕一区在线视频| 国产色图乱伦| 久久久久久久久女黄| 亚洲精品欧美专业| 婷婷五月色| 青娱乐国产盛宴视频| 国产美女高潮| 国产精品禁久久久精品| 超碰97最新人妻| 午夜精品一区二区三区三上悠亚| 岛国视频免费在线观看| 久9re热视频这里只有精品| 人妻激情视频| 秋霞福利网| 男人干美女| 久久久久久亚洲精品不卡人乳| 亚洲色悠悠久久88| 欧美性少妇| 精品无码久久久久| 日韩人妻操B| 日韩精品免费高清视频在线| 变态综合色| 麻豆成人av| 有码人妻系列| AV中文在线可看| 日本福利二区视频| 欧美性爱中文字幕无线码| 欧美性xxxxx狂欢| 97在线播放 | 日韩美女操b| 中日韩一区二区三区欧美| 大逼色网站| 亚洲色欧| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 中国探花熟女| 在线中文字幕极品av| 少妇一级婬片免费放一级a性色.| 超碰78| 中国少妇啪啪视频| 东京男人天堂| 亚州五月| 久久久啊啊啊| 国产精品欧美在线观看| 欧美热图99| 日韩三级av片| 精品999一区二区| 超碰人妻97| 丰满熟女一区二区三区在线播放| 超碰色老头| 五十路三区在线| 天天综合网网欲色| 日韩av无码网站| 操操操五月天婷婷丁香影院| 亚洲黄色视频在线观看视频| 中文字幕精品一区二| 久久久久久久伊人精品| 911av网站免费观看| 国产精品视频一区二区三区八戒| 午夜电影在线观看无码专区| 亚洲精品中文字幕一区在线视频 | 大香蕉中文aV在线| 啊啊啊啊操死我了| 中文熟女五十乱码在线| 亚洲玖玖爱| 97爱亚洲| 精品人妻1区| 精品性爱一二三区| 五月婷婷六月丁香| 欧美日韩理论一区| 嗯嗯啊啊好大好爽| 精品一区二区三区蜜桃| 久久久久久久强迫| 性在久久久久久| 欧美黄色大香蕉一区二区| 口爆综合网| 精品美女少妇一区二区三区| 国产AV天美传媒一区二区三区| 欧美色综合网| 日本伦乱九九九综合| 国产免a费看黄片在线| 丁香九月激情啪| 99999精品视频| 久久精品99久久久久久| 97超碰9| 黄色电影在线播放综合网站 | 男人的天堂视频精品乱在线| 亚洲阿v天堂在线| 99性爱在线观看| renqi久久久久久久久久久久| 亚洲熟女综合| 少妇高潮一区二区三区在线| 久久久久久网址| 亚洲黄网在哪免费看| 亚洲男人的天堂V| 九九九国产精品| 极品综合| 青青操青娱乐| 精久久久| 少妇一级婬片免费放一级a性色.| 久久激情网| 色九九九综合| 精品人妻一区二区三区四区不卡在| www.大香| 自拍盗摄一区| 日逼97| 乱伦av麻豆| 国产精品经典一卡久久久| 新91视频.cmp| 国产一级操B视频| 爱欲AV| 亚洲欧美不卡线| 精品少妇一区二区三区在线视频| 青青操在线亚洲视频观看欧美在线 | 精品视频一二三中文| hd成人一区二区在线| 91新在线欧美| 久久久久夜夜夜夜| 五月丁香综合网| Julia Annxxxxx| 影音先锋少妇| 亚洲成人精品久久久| 久久久蜜桃臀无码视频| 日韩午夜啪啪视频| 欧美日韩国产色五月综合在线| 国产成年女人免费视频播放a| 志村玲子视频一区二区| 在线观看啊啊啊啊啊| 欧美专区日本专区| 国产性爱欧美性爱在线| 成人av影院在线观看| 欧美日韩免费专区在线| 后入式免费视频| 91校园春色长篇| 99热伊人| www.狠狠干.coom| 国产97亚洲| 亚洲成人碰碰| 97综合久久| 青娱乐 成人娱乐在线| 97精品在线视频| 91久久精品蜜臀| 欧美综合第一页| 九九热精品免费视频| 97精品网| 亚洲一二三精品久久网 | 美日韩在线不卡人妻| 国产v片在线免费观看| 色噜噜人妻丝袜AV资源| 午夜福利无毒不卡| 亚洲综合性网址| 伊人五月天激情| 四季av一区二区凹凸精品小说| 新版天堂中文资源8在线| 亚洲欧美天| 99视频内射三四| 青青草久草| 欧美在线伊人色| 天天艹天天日| 蜜臀网址在线| 六六久久日韩不卡| 亚洲人妻中文在线视频| 国产二区三区粉嫩在线| 综合久久六月久久婷婷| 夜夜夜爽www精品视频| 亚洲五月丁香花狠狠干一区二区三区 | 久操电影| 最新精品久久蜜桃| 欧美在线观看综合国产| 97伦综合| 精品人妻一区二区三区-国产精品| 一区二区三区美女超清| 我中文字幕6区| 免费观看啪视频| 国产精品免费久久久久久久久久| 2019AV天堂| 亚洲高清无码AAA久久久精品| 成人青青草原伊人| 少妇六月天| 日韩精品亚洲专区在线影视| 九九九九九九九九九国产精品 | 男人天堂网站| 亚洲精品白丝| 青青网三级视频| 亚洲一区二区三区播放在线| 91操熟女视频| 久草婷婷| 五月天婷婷基地| 思思热免费在线视频| 亚洲高潮影院| 欧美日韩亚洲天堂网| 人妻中文在线| 国产精品一区二区校花| 好涩综合| Aa东京男人的天堂| 九九久久首页| 91GD.COM| 日本欧美一区二区三区免费| 久久春色| 我爱操| 国产白丝在线| 日韩人妻操B| 日本在线播放不卡一区| 国产福利电影| 欧美 亚洲| 91女优在线观看 | 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 色青青久久影视| AV麻豆免费一区| 蜜臀久久久99久久久久 | 久久尹人大香焦视| 狠狠爱夜夜干| 怡春苑东京热| 天天综和| 91亚州日韩高清| 色婷婷五月综合激情中文字幕| 国产Av超碰| 日韩欧美性爱电影在线观看| 欧美97网| 欧美线天码中字| 操淫穴亚洲五月丁香| 日本97久久久精品| 人妻精品综合中文字幕在线| 99re视频在线观看这里只有精品| 天天干人妇| 手机在线人成免费视频| 精品欧美А∨无码黑人大荫蒂| 日韩精品在线视频,日韩精品……| 日本一二三免费久久| 丁香7月婷婷| 国产久久久久影院老熟女| 超碰精品| 欧美日韩一干二干| 99xav| 欧美性爱一区| 亚洲吊色| 国产久久男人天堂| 中文字幕一区二区三四五区日日骚| 国产熟妇一区二区| 青青草男人天堂| 97色涩| 中文字幕女同在线| 91路www| 美女91色黄18| 九久久精品| 日日97| 亚洲交性| 色图综合网| 欧美日韩插逼视频| 青草草免费网站av| 麻花豆传媒剧国产MV出差| 国产Aα| 午夜精品五区| 欧美性爱精品一区二区| 99爱爱| 97久久精品亚洲| 亚洲情色1区| 青青国产在线拍揄自揄拍| 亚洲永久永久永久永久一级一级一级精品| 欧美色997| 91国内外在线| 日1区2区3区2020| 天天综合网在线91| 日本人妻丰满熟妇久久久久久| 亚洲无码国产探花在线观看| 人人贴人人摸| 性色av网站| 丁香激情五月天| 熟女一区二区| 日韩中文9| 伊香蕉综合久久久久久久噜噜噜| 美女黄网| 视频黄色国产一级| 99久久九九| 亚洲中文字幕乱码无码一区二区| 九九九九九九成人| 曰本特级特黄特色黄色A级网站高清在线免费看| 美女天天干| 亚州欧美色图| 黄色AAAAAAAAAAA大片| 久久久中文| 亚洲天堂第一页| 99色在线| a片偷拍视频| 99日精品欧美国产| 岛国AV一区二区电影| 欧美丝袜美女电影一二三四区| 亚洲丝袜少妇在线| 亚洲蜜乳av| 亚洲日本韩国极品一区二区| 大香蕉之青青草原| AV中亚| 人人摸人人叼| 色综合加勒比四四季| 白嫩妹子国产骚| 天堂69亚洲精品中文字| 亚洲中文字幕av| 热久久99999| 男人的天堂va在线| 做爱A级亚欧| 蜜臀AV一区二区三区激情综合| 加勒比av网| 啪啪啪东京| 欧美综合骚| 999久久久久久久久| 国产在线视频二区| 欧美激情总合网| 欧美淫乱视频| 久久亚洲AV无码专区首页| 91女人的网站| 97伦综合| 国产精品探花视频| 亚洲天堂自拍| 麻豆三极片| www.夜夜| 精品人妻一区二区蜜桃视频| 婷婷丁香九月| 欧美熟妇精品黑人巨大一二三区| 久久精品操| 91小视频| 国产熟女精品区| 9色国产精品一区粉嫩| 最新欧洲欧美日本激情网站| 九久久精品| 男人a天堂手机在线版| 屌妞视频久久久久久久久久久久| 中文字幕在线观看网址| 婷婷亚洲色| 久久国产精品视频| 美国日韩黄色片| 啊啊啊啊好大好硬啊啊啊啊啊| 看免费的黄片| 国产女同性恋视频| 人妻偷拍一区二区三区| 大香蕉伊人一区在线观看| 97超碰久久| 97舔舔| 欧美一级在线观看成人| 久久精品欧美一区蜜桃| 97亚洲在线| 久久色人体 | 欧美色偷拍| 国产农村妇女精品| 亚洲色人妻综合| 好色综合| 久久一二区四| 久久精品午夜国产亚洲AV无码| 有码免费观看| 九九视频黄色片| 亚洲区限制级| 黑丝自慰喷水网站| 成年人免费观看网站| 久久性爱免费送| 超碰97人妻自拍| 色99色| 日本操逼无码| 久婷婷一区| 欧美性爱1080p| 蜜桃臀AV在线| 色色五月天婷婷| 97国产超碰| 求求你操操我| 色婷婷视频| 亚洲天在线| 欧美色三级片91| 五月丁香六月综合缴清无码| AV99热18这里只有精品| 婷婷中文网| 国产白丝AV| 久久精品亚洲东京热色播| 国产精品久久久久久久AV大片| 久久久久9999精品九九九| 五月天玖玖资源站| 97亚洲中文| 午夜精品久久久久久久99热影院| 看黄片视频免费| 亚洲欧美清纯| 超碰97网址| 一区二区三区精品视频| 97超碰色色| 内射卯月麻衣| 天天射影院| 国内偷自视频区视频综合| 国产精品电| www四虎| 免费伦费视频在线观看| 大香蕉伊人75| 一牛一区二区三区久久| 一级A啪啪啪啪| 久久亚洲中文字幕视频| 97超色| 超碰激情808| 无码抄逼网| 91看黄片| 91宗合网| 久久久久久久六六| 亚洲国产欧美日韩人妻日中文| 久久直播国产| 乱欲视频| 欧美成人贴图| 天天α片| 无码免费一区二区三区啪啪| 久久国产乱子伦精品免费女人| 天啪| 97热视频在线观看| 宅男91视频在线播放| 日韩人妻无码专区| 中文字幕一二区二三区人妻专区| 少妇无码999| 色97综合中文字幕| 天天综合网在线| 啊啊啊好爽快点啊啊啊嗯嗯| 狠狠色噜噜狠狠狠狠狠色综合久久| 97香蕉网| 欧美在线电影| 九一国产精品| 91美女在线视频| 人人手机欧洲亚洲国产人妻| 五月色网| 国模少妇一区二区三区| 欧美 日韩 亚洲 春色| 超碰97久久| 97免费视频在线| 日日躁狠狠躁天天躁精品| 久久综合av| 亚洲情色在线| 欧美性后入| 欧美淫穴| 日本 欧美 亚中文字幕| 久久久久国产无av| 国产亚洲精品玖玖玖在线观看| av在线播放国产一区| 1769成人国产精品视频| 综合久久9| 爱逼综合| 久久国产乱子伦精品免费女,网站| 色悠悠伊人网五月天| 国产中文字幕在线观看| 久欲AV| 久久视频,这里只有精品| 亚洲性少妇| 久草精品一区 | 99视频自拍区| 一本大道久| 夜夜黄| 97中文热色| 久久系列| 欧美天天弄| 国产成人在线观看网址| 精品少妇999| 黄色无码高清黄色无码网站| 欧美精品三级黄片| 亚洲伊人久久综合97| 国产超碰AV在线精品| 国产一区自拍欧美日韩| 熟女乱伦A| 人人操人人大香蕉| 欧美一级黄片免费播放| 中文字幕在线观看视频www| 五月丁香色综合| 日韩素人无码一区二区三区三州| 丝袜夫妻自拍| 男人的天堂欧美| a片亚洲一本通视频| 国产AV线| 久久色精品视频在线| 免费观看成人www精品视频| 日韩人妻一区二区|