日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

PyTorch數(shù)據(jù)加載實(shí)戰(zhàn):torchvision數(shù)據(jù)集與DataLoader高效使用指南

PyTorch數(shù)據(jù)加載實(shí)戰(zhàn):torchvision數(shù)據(jù)集與DataLoader高效使用指南 1. 為什么值得把torchvision的數(shù)據(jù)集和DataLoader吃透剛接觸深度學(xué)習(xí)那會(huì)兒我最常干的事就是自己寫一個(gè)Dataset類然后手動(dòng)切batch、手動(dòng)打亂、手動(dòng)拼tensor代碼又長(zhǎng)又容易出錯(cuò)。后來(lái)被一位做視覺(jué)方向的朋友點(diǎn)醒torchvision里現(xiàn)成的數(shù)據(jù)集和DataLoader這套組合其實(shí)已經(jīng)把數(shù)據(jù)加載這條鏈路上80%的臟活累活都干完了你只需要搞清楚它怎么用、什么時(shí)候該改、改哪里。這句話我記到現(xiàn)在。torchvision數(shù)據(jù)集以及dataloader使用說(shuō)白了就是解決一個(gè)核心問(wèn)題如何把磁盤上的圖片、標(biāo)簽高效、穩(wěn)定、可復(fù)現(xiàn)地喂給模型訓(xùn)練循環(huán)。它適合所有用PyTorch做計(jì)算機(jī)視覺(jué)任務(wù)的人不管你是剛跑通第一個(gè)MNIST的新手還是已經(jīng)在做多機(jī)多卡訓(xùn)練的老手這套東西你每天都在碰。新手容易在num_workers、transform順序、collate_fn上翻車?yán)鲜謩t更關(guān)心采樣策略、內(nèi)存占用和跨進(jìn)程的坑。這篇文章我打算從設(shè)計(jì)思路講到實(shí)操細(xì)節(jié)把我在實(shí)際項(xiàng)目里踩過(guò)的坑和總結(jié)的技巧都攤開(kāi)說(shuō)盡量讓你看完就能直接抄作業(yè)。torchvision的數(shù)據(jù)集模塊本質(zhì)上提供了兩層?xùn)|西一層是現(xiàn)成的數(shù)據(jù)集類比如CIFAR10、ImageFolder、COCO幫你處理下載、解壓、路徑索引、標(biāo)簽映射這些瑣事另一層是通用的數(shù)據(jù)變換和加載基礎(chǔ)設(shè)施配合torch.utils.data.DataLoader完成批處理、打亂、并行加載。理解這兩層的分工是后面所有操作的前提。很多人一上來(lái)就急著改源碼其實(shí)大部分需求用現(xiàn)成的組合就能滿足改之前先想清楚是不是真的需要?jiǎng)拥讓印?. 整體設(shè)計(jì)思路拆解Dataset和DataLoader到底怎么分工2.1 一個(gè)負(fù)責(zé)“取一條”一個(gè)負(fù)責(zé)“湊一批”我習(xí)慣用餐廳點(diǎn)菜來(lái)類比。Dataset是后廚的備菜員你告訴它“我要第i道菜”它負(fù)責(zé)把這道菜一張圖一個(gè)標(biāo)簽準(zhǔn)備好遞給你至于這道菜怎么切、怎么擺盤transform它按你給的規(guī)矩來(lái)。DataLoader是傳菜的服務(wù)員它負(fù)責(zé)一次端走一桌的菜一個(gè)batch決定上菜順序shuffle、同時(shí)開(kāi)幾個(gè)窗口出菜num_workers、一桌坐幾個(gè)人batch_size。這個(gè)分工非常清晰Dataset只關(guān)心單條樣本的正確性DataLoader只關(guān)心批量組織的效率。這個(gè)設(shè)計(jì)帶來(lái)的直接好處是解耦。你想換數(shù)據(jù)集只需要換Dataset實(shí)現(xiàn)DataLoader那套參數(shù)原封不動(dòng)你想調(diào)batch策略只動(dòng)DataLoader數(shù)據(jù)集代碼一行不改。我在實(shí)際項(xiàng)目里經(jīng)常遇到這種情況同一個(gè)ImageFolder訓(xùn)練時(shí)用shuffleTrue、batch_size64驗(yàn)證時(shí)用shuffleFalse、batch_size128數(shù)據(jù)集對(duì)象復(fù)用只換DataLoader配置干凈利落。2.2 為什么要有__getitem__和__len__這兩個(gè)魔法方法自定義Dataset時(shí)你幾乎只需要實(shí)現(xiàn)兩個(gè)方法__len__返回樣本總數(shù)__getitem__根據(jù)索引返回一條樣本。PyTorch的采樣器Sampler依賴__len__來(lái)決定索引范圍DataLoader依賴__getitem__來(lái)真正取數(shù)據(jù)。這個(gè)約定看起來(lái)簡(jiǎn)單但它是整個(gè)并行加載機(jī)制的基礎(chǔ)——因?yàn)橛辛嗣鞔_的索引接口多個(gè)worker進(jìn)程才能各自獨(dú)立地按索引去取數(shù)據(jù)而不需要共享任何狀態(tài)。這里有個(gè)容易被忽略的點(diǎn)__getitem__里做的事情越少越好。我見(jiàn)過(guò)有人在里面做特別重的預(yù)處理比如整圖解碼加復(fù)雜增強(qiáng)結(jié)果num_workers開(kāi)大了反而更慢因?yàn)槊總€(gè)worker都在重復(fù)做重活。合理的做法是把輕量的索引、路徑拼接放在__getitem__把重的變換交給transform管道讓torchvision的變換在worker進(jìn)程里并行執(zhí)行。這個(gè)邊界劃清楚性能差別很明顯。2.3 采樣器、批處理、collate三件套的協(xié)作關(guān)系DataLoader內(nèi)部其實(shí)串了三個(gè)環(huán)節(jié)Sampler決定這一輪按什么順序取哪些索引BatchSampler把這些索引切成一個(gè)個(gè)batchcollate_fn把一個(gè)batch的樣本列表拼成一個(gè)tensor。默認(rèn)情況下shuffleTrue會(huì)用RandomSamplerbatch_size決定切分collate_fn用默認(rèn)的default_collate把list of tuple拼成tuple of tensor。理解這條鏈路你才知道該在哪個(gè)環(huán)節(jié)動(dòng)手。比如做目標(biāo)檢測(cè)時(shí)每張圖的標(biāo)注框數(shù)量不一樣默認(rèn)collate會(huì)報(bào)錯(cuò)因?yàn)閠ensor形狀對(duì)不齊。這時(shí)候你要么自定義collate_fn返回list而不是stack要么用torchvision檢測(cè)數(shù)據(jù)集自帶的collate。再比如做對(duì)比學(xué)習(xí)一個(gè)batch需要成對(duì)的樣本你就得自定義BatchSampler保證正負(fù)樣本配對(duì)出現(xiàn)。這些需求都不是改Dataset能解決的必須落到采樣或collate層。我一開(kāi)始總想在一個(gè)地方解決所有問(wèn)題后來(lái)發(fā)現(xiàn)按這條鏈路分層去改代碼清晰得多。3. 核心細(xì)節(jié)解析與實(shí)操要點(diǎn)從現(xiàn)成數(shù)據(jù)集到自定義Dataset3.1 用現(xiàn)成數(shù)據(jù)集快速起步以CIFAR10和ImageFolder為例torchvision內(nèi)置數(shù)據(jù)集最大的價(jià)值是開(kāi)箱即用且可復(fù)現(xiàn)。以CIFAR10為例你只需要指定root、train、download、transform四個(gè)參數(shù)它自動(dòng)幫你下載、校驗(yàn)、解壓、建立索引。第一次運(yùn)行會(huì)下載到本地之后直接讀緩存。這里的關(guān)鍵是transform參數(shù)它決定了每條樣本被取出來(lái)時(shí)做什么變換。我通常把訓(xùn)練和驗(yàn)證的transform分開(kāi)定義訓(xùn)練加隨機(jī)裁剪和翻轉(zhuǎn)驗(yàn)證只做resize和歸一化這是保證評(píng)估穩(wěn)定的基本操作。import torchvision from torchvision import transforms train_tf transforms.Compose([ transforms.RandomResizedCrop(224), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]), ]) val_tf transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]), ]) train_set torchvision.datasets.CIFAR10(root./data, trainTrue, downloadTrue, transformtrain_tf) val_set torchvision.datasets.CIFAR10(root./data, trainFalse, downloadTrue, transformval_tf)ImageFolder則是處理自有圖片數(shù)據(jù)的主力。它要求目錄結(jié)構(gòu)是root/類別名/圖片文件自動(dòng)把子目錄名映射成類別索引。這個(gè)約定非常省事你只要把數(shù)據(jù)按類別分好文件夾剩下的索引、標(biāo)簽映射它全包了。我實(shí)際項(xiàng)目里90%的分類任務(wù)都是先用ImageFolder跑通baseline再考慮要不要換更復(fù)雜的自定義數(shù)據(jù)集。注意ImageFolder默認(rèn)按文件夾名的字母序分配類別索引如果你對(duì)類別順序有要求得自己傳class_to_idx或者事后核對(duì)。3.2 transform管道的順序陷阱為什么ToTensor必須靠后這是新手最容易翻車的地方之一。transforms.Compose是按列表順序依次執(zhí)行的而很多變換對(duì)輸入類型有要求。ToTensor()把PIL Image或numpy數(shù)組轉(zhuǎn)成[0,1]范圍的float tensor并調(diào)整維度順序?yàn)镃,H,WNormalize()則要求輸入已經(jīng)是tensor。所以正確順序永遠(yuǎn)是幾何/顏色變換PIL階段→ ToTensor → Normalize。我見(jiàn)過(guò)有人把Normalize寫在ToTensor前面直接報(bào)類型錯(cuò)誤排查半天。還有一個(gè)隱蔽的坑RandomHorizontalFlip這類隨機(jī)變換在訓(xùn)練時(shí)每次__getitem__都會(huì)重新采樣這意味著同一個(gè)索引在不同epoch取到的樣本可能不同這正是數(shù)據(jù)增強(qiáng)想要的效果。但如果你在驗(yàn)證集上誤用了隨機(jī)變換評(píng)估結(jié)果就會(huì)抖動(dòng)看起來(lái)像模型不穩(wěn)定其實(shí)是數(shù)據(jù)在變。我的習(xí)慣是訓(xùn)練和驗(yàn)證的transform嚴(yán)格分開(kāi)定義驗(yàn)證集只用確定性的resize、crop、normalize絕不摻隨機(jī)操作。3.3 自定義Dataset的正確姿勢(shì)繼承、實(shí)現(xiàn)、別亂加狀態(tài)當(dāng)現(xiàn)成數(shù)據(jù)集不滿足需求時(shí)比如多模態(tài)輸入、特殊標(biāo)注格式就得自己寫Dataset。標(biāo)準(zhǔn)寫法是繼承torch.utils.data.Dataset在__init__里把樣本路徑列表、標(biāo)簽列表、transform都存成實(shí)例屬性__len__返回列表長(zhǎng)度__getitem__按索引取路徑、讀圖、應(yīng)用transform、返回樣本和標(biāo)簽。這里有個(gè)重要原則__init__里不要做重活比如不要在里面把所有圖片都讀進(jìn)內(nèi)存除非你確實(shí)需要且內(nèi)存扛得住。把讀圖放到__getitem__讓worker進(jìn)程并行去讀才是正確姿勢(shì)。from torch.utils.data import Dataset from PIL import Image class MyDataset(Dataset): def __init__(self, samples, transformNone): self.samples samples # [(img_path, label), ...] self.transform transform def __len__(self): return len(self.samples) def __getitem__(self, idx): path, label self.samples[idx] img Image.open(path).convert(RGB) if self.transform: img self.transform(img) return img, label注意Image.open是惰性的真正解碼發(fā)生在讀取像素時(shí)所以convert(RGB)這一步很重要能統(tǒng)一處理灰度圖、帶alpha通道的PNG避免后面transform報(bào)通道數(shù)不匹配。這個(gè)細(xì)節(jié)我在處理混合來(lái)源圖片時(shí)吃過(guò)虧加上convert之后世界清凈了。3.4 num_workers、pin_memory、persistent_workers這幾個(gè)參數(shù)怎么定DataLoader的參數(shù)里對(duì)性能影響最大的就是num_workers。它決定開(kāi)幾個(gè)子進(jìn)程并行取數(shù)據(jù)。設(shè)成0表示在主進(jìn)程里取簡(jiǎn)單但會(huì)阻塞訓(xùn)練設(shè)成正數(shù)則開(kāi)子進(jìn)程。經(jīng)驗(yàn)值是不超過(guò)CPU物理核心數(shù)一般從4或8起步邊跑邊看GPU利用率。如果GPU利用率上不去、經(jīng)常等數(shù)據(jù)就加worker如果CPU已經(jīng)打滿、內(nèi)存暴漲就減worker。盲目設(shè)很大反而會(huì)因?yàn)檫M(jìn)程調(diào)度和內(nèi)存拷貝拖慢整體。pin_memoryTrue會(huì)把batch數(shù)據(jù)放到鎖頁(yè)內(nèi)存加速?gòu)腃PU到GPU的拷貝用GPU訓(xùn)練時(shí)基本必開(kāi)。persistent_workersTrue讓worker進(jìn)程在epoch之間不銷毀重建減少反復(fù)啟動(dòng)的開(kāi)銷數(shù)據(jù)量大、epoch多的時(shí)候收益明顯。這幾個(gè)參數(shù)組合起來(lái)我常用的訓(xùn)練配置是num_workers8, pin_memoryTrue, persistent_workersTrue配合batch_size64左右在單卡上跑得比較順。注意Windows上num_workers0有時(shí)會(huì)遇到多進(jìn)程啟動(dòng)問(wèn)題如果報(bào)奇怪的pickle錯(cuò)誤先把num_workers設(shè)成0確認(rèn)邏輯沒(méi)問(wèn)題再逐步調(diào)大排查。4. 實(shí)操過(guò)程與核心環(huán)節(jié)實(shí)現(xiàn)搭一條能跑的訓(xùn)練數(shù)據(jù)流4.1 從零搭一條完整的數(shù)據(jù)管道我把完整流程拆成五步定義transform、構(gòu)建Dataset、包DataLoader、寫訓(xùn)練循環(huán)取batch、驗(yàn)證集單獨(dú)配置。下面這段是可以直接跑的骨架以ImageFolder為例。from torch.utils.data import DataLoader import torchvision train_set torchvision.datasets.ImageFolder(./data/train, transformtrain_tf) val_set torchvision.datasets.ImageFolder(./data/val, transformval_tf) train_loader DataLoader(train_set, batch_size64, shuffleTrue, num_workers8, pin_memoryTrue, persistent_workersTrue, drop_lastTrue) val_loader DataLoader(val_set, batch_size128, shuffleFalse, num_workers8, pin_memoryTrue) for epoch in range(num_epochs): for images, labels in train_loader: images images.cuda(non_blockingTrue) labels labels.cuda(non_blockingTrue) # 前向、反向、更新這里drop_lastTrue是為了保證每個(gè)batch大小一致避免最后一個(gè)不滿的batch影響B(tài)atchNorm的統(tǒng)計(jì)訓(xùn)練時(shí)我一般開(kāi)著驗(yàn)證集則保留全部樣本保證評(píng)估覆蓋完整。non_blockingTrue配合pin_memory能讓拷貝和計(jì)算重疊是個(gè)小但有效的優(yōu)化。4.2 batch_size和num_workers的聯(lián)合調(diào)參過(guò)程這兩個(gè)參數(shù)不是獨(dú)立的。我通常的做法是先固定num_workers4把batch_size從32往上試觀察顯存占用和單步耗時(shí)找到顯存放得下的最大值附近然后固定這個(gè)batch_size把num_workers從4加到8、16看GPU利用率和吞吐變化。如果加worker后吞吐不再提升甚至下降說(shuō)明數(shù)據(jù)加載已經(jīng)不是瓶頸停在這個(gè)值就好。舉個(gè)我實(shí)際調(diào)過(guò)的例子某次訓(xùn)練單步耗時(shí)約120msGPU利用率只有50%左右明顯在等數(shù)據(jù)。把num_workers從4提到8單步降到90ms利用率升到75%再提到16單步反而回到100ms因?yàn)檫M(jìn)程切換和內(nèi)存拷貝開(kāi)銷上來(lái)了。最后定在8。這個(gè)過(guò)程沒(méi)有公式只能實(shí)測(cè)但方向很明確看GPU是不是在等等就加worker加到頭就停。4.3 自定義collate_fn處理變長(zhǎng)樣本做檢測(cè)或序列任務(wù)時(shí)一個(gè)batch里樣本形狀不一致默認(rèn)collate會(huì)失敗。解決辦法是傳自定義collate_fn把樣本列表原樣打包成list返回讓模型內(nèi)部自己處理對(duì)齊。def my_collate(batch): images [item[0] for item in batch] targets [item[1] for item in batch] return images, targets loader DataLoader(dataset, batch_size8, collate_fnmy_collate)代價(jià)是batch不再是規(guī)整的tensor后續(xù)要自己stack或pad。我的經(jīng)驗(yàn)是能pad成統(tǒng)一形狀就盡量pad因?yàn)橐?guī)整tensor對(duì)GPU更友好實(shí)在不行再用list但要在模型里第一時(shí)間處理掉別讓不規(guī)則結(jié)構(gòu)在計(jì)算圖里傳太深。4.4 用Subset和ConcatDataset做數(shù)據(jù)集切分與合并實(shí)際項(xiàng)目里經(jīng)常需要從一個(gè)大訓(xùn)練集里切出小份做快速實(shí)驗(yàn)或者把多個(gè)來(lái)源的數(shù)據(jù)合并訓(xùn)練。torch.utils.data.Subset按索引列表取子集ConcatDataset把多個(gè)數(shù)據(jù)集首尾拼接。這兩個(gè)工具配合random_split能覆蓋大部分切分需求。from torch.utils.data import random_split, ConcatDataset train_part, val_part random_split(full_set, [0.9, 0.1], generatortorch.Generator().manual_seed(42)) combined ConcatDataset([set_a, set_b])random_split一定要傳固定種子的generator否則每次切分結(jié)果不同實(shí)驗(yàn)沒(méi)法復(fù)現(xiàn)。這個(gè)坑我踩過(guò)不止一次后來(lái)養(yǎng)成習(xí)慣凡是涉及隨機(jī)切分的地方都顯式給種子。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 常見(jiàn)報(bào)錯(cuò)速查表現(xiàn)象可能原因排查與解決TypeError: default_collate: batch must contain tensors樣本返回類型不統(tǒng)一或含非tensor檢查_(kāi)_getitem__返回值統(tǒng)一轉(zhuǎn)tensor或自定義collateRuntimeError: DataLoader worker exited unexpectedlyworker內(nèi)異常被吞、內(nèi)存不足先設(shè)num_workers0復(fù)現(xiàn)真實(shí)報(bào)錯(cuò)再查內(nèi)存訓(xùn)練loss劇烈抖動(dòng)驗(yàn)證集誤用隨機(jī)transform檢查val的transform是否含隨機(jī)操作GPU利用率低、訓(xùn)練慢數(shù)據(jù)加載成瓶頸增大num_workers、開(kāi)pin_memory顯存OOM但batch不大圖片分辨率過(guò)高或transform緩存降分辨率、檢查是否在__init__里緩存了整圖多進(jìn)程下卡死Windows多進(jìn)程或共享狀態(tài)問(wèn)題設(shè)num_workers0驗(yàn)證避免在Dataset里存不可pickle對(duì)象5.2 幾個(gè)我踩過(guò)的坑和獨(dú)家心得第一個(gè)坑是在Dataset里存了打開(kāi)的文件句柄或數(shù)據(jù)庫(kù)連接。這些對(duì)象不可picklenum_workers0時(shí)子進(jìn)程無(wú)法繼承直接報(bào)錯(cuò)。正確做法是在__getitem__里按需打開(kāi)、用完即關(guān)或者用worker_init_fn在每個(gè)worker里單獨(dú)初始化。第二個(gè)坑是transform里用了帶狀態(tài)的隨機(jī)數(shù)生成器。多worker下每個(gè)進(jìn)程的隨機(jī)種子默認(rèn)不同這本身沒(méi)問(wèn)題但如果你依賴某個(gè)全局隨機(jī)狀態(tài)做可復(fù)現(xiàn)增強(qiáng)就會(huì)亂。我的做法是增強(qiáng)全部用torchvision自帶的隨機(jī)變換它們內(nèi)部處理好了種子不自己造輪子。第三個(gè)心得是先用小數(shù)據(jù)跑通再上全量。我習(xí)慣先取100條樣本、num_workers0跑兩個(gè)epoch確認(rèn)數(shù)據(jù)流、transform、collate全對(duì)再切到全量和多worker。這樣出問(wèn)題時(shí)排查范圍小得多比一上來(lái)就全量多進(jìn)程調(diào)試省時(shí)間。第四個(gè)心得是驗(yàn)證集的DataLoader不要開(kāi)shuffle也不要drop_last。評(píng)估要覆蓋全部樣本且順序穩(wěn)定否則指標(biāo)沒(méi)法橫向比較。這個(gè)看似基礎(chǔ)但我在趕進(jìn)度時(shí)犯過(guò)導(dǎo)致兩次評(píng)估結(jié)果對(duì)不上白查了半天模型。5.3 內(nèi)存與性能的平衡技巧數(shù)據(jù)量大時(shí)num_workers開(kāi)大容易把內(nèi)存吃滿因?yàn)槊總€(gè)worker都會(huì)緩存一部分?jǐn)?shù)據(jù)。我的做法是監(jiān)控內(nèi)存占用找到吞吐和內(nèi)存的平衡點(diǎn)。另外如果圖片很大而模型輸入很小可以在__getitem__里先做一次快速降采樣再進(jìn)transform能顯著減少解碼和傳輸開(kāi)銷。還有個(gè)小技巧把常用的歸一化參數(shù)、均值方差提前算好寫死別在每次transform里現(xiàn)算雖然省得不多但積少成多。6. 采樣策略進(jìn)階讓DataLoader按你的意圖取數(shù)據(jù)6.1 WeightedRandomSampler解決類別不平衡分類任務(wù)里類別不平衡很常見(jiàn)少數(shù)類樣本少模型容易偏向多數(shù)類。WeightedRandomSampler給每個(gè)樣本一個(gè)采樣權(quán)重讓少數(shù)類被抽到的概率更高。權(quán)重通常設(shè)成類別頻率的倒數(shù)按樣本所屬類別賦權(quán)。from torch.utils.data import WeightedRandomSampler import numpy as np labels [label for _, label in train_set.samples] class_counts np.bincount(labels) class_weights 1.0 / class_counts sample_weights [class_weights[l] for l in labels] sampler WeightedRandomSampler(sample_weights, num_sampleslen(sample_weights), replacementTrue) loader DataLoader(train_set, batch_size64, samplersampler, num_workers8)注意用了sampler就不能再設(shè)shuffleTrue兩者沖突。replacementTrue表示有放回采樣這是加權(quán)采樣的常規(guī)做法。我實(shí)測(cè)下來(lái)這個(gè)改動(dòng)對(duì)少數(shù)類的召回提升很明顯代價(jià)是每個(gè)epoch看到的樣本組合不同訓(xùn)練曲線會(huì)稍微抖一點(diǎn)屬于正?,F(xiàn)象。6.2 自定義BatchSampler實(shí)現(xiàn)配對(duì)采樣做對(duì)比學(xué)習(xí)或?qū)\生網(wǎng)絡(luò)時(shí)一個(gè)batch需要成對(duì)的正負(fù)樣本。這時(shí)候自定義BatchSampler最直接它接收一個(gè)基礎(chǔ)sampler按你的規(guī)則把索引組織成batch列表。from torch.utils.data import Sampler class PairBatchSampler(Sampler): def __init__(self, labels, batch_size, seed42): self.labels labels self.batch_size batch_size self.rng np.random.default_rng(seed) def __iter__(self): # 簡(jiǎn)化示意按類別分組后配對(duì)取樣 ... def __len__(self): return len(self.labels) // self.batch_size這類自定義采樣器邏輯不復(fù)雜但要注意__len__返回的batch數(shù)量要和實(shí)際迭代次數(shù)一致否則訓(xùn)練循環(huán)的進(jìn)度估計(jì)會(huì)錯(cuò)。我一般寫完先用小數(shù)據(jù)打印幾個(gè)batch的索引確認(rèn)配對(duì)邏輯對(duì)再上全量。6.3 分布式訓(xùn)練下的DistributedSampler要點(diǎn)多卡訓(xùn)練時(shí)每個(gè)進(jìn)程要用DistributedSampler保證各卡看到不重疊的數(shù)據(jù)分片且每個(gè)epoch重新打亂。關(guān)鍵參數(shù)是num_replicas總進(jìn)程數(shù)和rank當(dāng)前進(jìn)程編號(hào)以及每個(gè)epoch開(kāi)始前調(diào)用sampler.set_epoch(epoch)否則各epoch的分片順序不變等于沒(méi)打亂。這個(gè)set_epoch我漏調(diào)過(guò)一次訓(xùn)練效果莫名變差查了很久才發(fā)現(xiàn)是分片沒(méi)刷新。7. 我個(gè)人的幾條實(shí)操建議數(shù)據(jù)加載這塊我的核心體會(huì)是先把單條樣本的正確性驗(yàn)證到位再談并行和性能。很多人一上來(lái)就調(diào)num_workers、追吞吐結(jié)果底層transform有bug多進(jìn)程下報(bào)錯(cuò)信息還被吞掉排查成本翻倍。我現(xiàn)在的固定流程是小樣本、單進(jìn)程、打印幾條樣本的形狀和標(biāo)簽確認(rèn)無(wú)誤后再逐步放大。另外別迷信默認(rèn)參數(shù)。DataLoader的默認(rèn)值是為了通用性不是為你的任務(wù)優(yōu)化過(guò)的。batch_size、num_workers、pin_memory、drop_last這幾個(gè)值得花半小時(shí)實(shí)測(cè)調(diào)一遍收益比調(diào)模型結(jié)構(gòu)來(lái)得快。最后再分享一個(gè)小習(xí)慣把數(shù)據(jù)管道的配置transform、batch、worker數(shù)和模型配置分開(kāi)寫實(shí)驗(yàn)記錄里單獨(dú)存一份復(fù)現(xiàn)的時(shí)候能省很多事。這套東西用熟了你會(huì)發(fā)現(xiàn)數(shù)據(jù)加載不再是訓(xùn)練的瓶頸而是你可以放心交給它的基礎(chǔ)設(shè)施。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
一区二区视频你懂的| 麻豆天美一区二区| 免费久久一级毛片大黄| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 男人的天堂2000| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 欧美大香蕉久| 国产天天骚| 亚洲无码电影久久久| 九九AV| 五毛骚逼极品美女怕怕| 秋霞网—男女啪啪亚洲免费体验区 | 色情乱伦AV| 黑丝日韩av丝袜av| 午夜激情成人在线观看| 亚洲中文字幕一区| 蜜色网色哟哟| 精品蜜乳AV免费观看| 超碰97爽| 青草成人免费视频一com| 色99在线| 欧美色狠| AV99热18这里只有精品| 人妻精品一区二区在线| 欧美亚洲韩国视频十五区| av日韩国产一区二区| 日韩欧美偷拍美女视频| 日本护士高潮| 夜夜爽夜夜操| 色妹子A V| 国产精品免费久久久久久久久久| juliaann精品熟女一区| 日韩性爱视频在线免费观看| 色色综合97| www..com操老师| 97超色| 操操碰| 欧美97爱| 久久↗↗| 天天干少妇| www国产无码| 91爰爱欧美| 国产综合网站在线播放 | 亚洲 中文 女同| 操人人| 后入式在线免费观看60秒| 乱伦AVxx| 欧美精品23| 久久精品日韩专区免费观看| 日本女厕偷拍| 亚洲AV无码乱码在线观看性色| 日本加勒比无码专区| 狠插 制服 自拍| 欧美久久伊人| 日韩特级毛片免费观看全集| 成人情色综合网| 天天日天天插| 91成人久久| 欧亚 另类 久| 少妇专区一二三四五| 日本中文字幕在线电影| 一级aaaaa欧美中文字幕录像片| 久久久精品中文字幕麻豆| 五月天伊人| 91P0RNY大屁股人妻| 久久久久久中文版| 久久天天摸| 性爱AV天堂| 色婷婷电影网| 全球成人中文在线| 日韩极品无码B| #NAME?| 蜜桃色院一区久久 | 久久无码成人| 神马午夜久久| 欧美97免费| 狠狠色一区二区中文字幕| 婷婷爱五月| 欧美性爱第一区| 久久久久久久精| 91精品国产长腿丝袜美女| 蜜臀久久99精品久久久久免费观| 亚洲精品成人激情在线| 亚洲色啪| 久久老子无码午夜伦不卡| 亚洲AV无码乱码| 亚洲 欧美综合| 亚州色图片在线色| 久久久久国产| 啊啊啊97视频| 歐美一級亂黃99在綫精品| 五月婷丁香| 国产强奸超碰AV| 秋霞一集毛片观看| jazzjazz国产精品麻豆| 97视频在线播放| 91中文字幕在线观看| 午夜天堂精品久久| 九九久久久九九| 91丨九色丨东北熟女| 日韩国产欧美伦理在线| 欧美成人四级在线播放| 欧美日韩电影成人在线| 日韩操p| 国产在线强奸视频| 最新日日夜夜天天干干| 欧美91视频| 色黄污美女啪啪啪免费网站| 26uuu国产亚洲综合| 午夜毛片亚洲精品片国产久久久| 96精品久久久久久久久| 超碰97网站| 国产一二三福利视频网| 精品人妻一区二区三区四区| 日韩欧美三级| 97天天| 亚洲精品99999| 中文字幕一二三| 97超碰中文在线| 91亚洲欧洲| 亚欧色图在线激情| 欧洲性爱无码区| 91福利网在线观看| 一起草欧美| 久久久久亚洲AV无码专区少妇| 免费自拍三级综合| 欧美日韩第一页| 中出91| 东北女人av| 秋霞男人网| 人人妻人人色| 啊啊啊操死我| 亚洲AV无码黄色强奸| 人妻精品一区二区在线| 激情深爱五月天| 国产伦精品免编号公布| 国产AV人人 夜夜人人澡| 啊嗯嗯啊好大好爽| 春色91| 天天综合91| 少妇高潮对白在线观看| 99精品在线观看| 欧美在线伊人色| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 亚洲欧美黄| 一区二区三区免费视频入口| 丰满少妇乱子伦精品无| 岛国AV一区二区电影| 久久神马影院| 99精品九九九九九九| TS人妖另类精品视频系列| 日本三级一区二区 在线| 天天日天天爽| 国产精品视频播放| 校园春色AV天堂| 性爱网站一区二区| 激情久久久| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 人妻献身系列第54部| 熟妇的味道HD中文字幕| 男人天堂资源| 免费观看性欧美一级| 欧美在线视频99| 亚洲熟女偷拍在线观看| 成人青青草原伊人| 狼狼色丁香久久婷婷综合五月| 九九九九97| 亚洲国产精品久久久久婷婷青年| 伦理弟一页| 国产黄色动态精品| 亚洲国产婷婷在线播放| 久久精品视频28| 中文字幕99999| 日韩操人| 亚洲激情视频| 九九热免费在线国产视频伊人五月| 日韩综合无码色欲vv| 丰满人妻一区二区中文| 亚洲熟女乱色一区二区三区久久久| 1二区9| 人妻第一页| 天堂男人网| 97草草| 久久久九九| 日韩97精| 五十路三区在线| 好看的久久不射无码影视影院| 91精品人妻偷情| 肉丝网站91| 欧美性色综合网| 黄久在线| 3P乱轮视频| www.91理论| 久久精品国产Aⅴ| 中文字幕日韩精品久久| 久久久久久网址| 国产精品久久久亚洲第一牛牛_在线观看 | 看看日B真人视频| 亚洲三级网址久久最新| 中文字幕精品久久久久人妻红杏ⅰ| 射丝袜高跟鞋99| 六月婷婷综合| 九九热精品| 91综合站| 人妻 丝袜美腿 中文字幕| 女人双腿搬开让男人桶| 大香蕉97久久| 91模特在线观看| 日韩99神马视频播放| 一级@啪啪视频| 亚洲AV永久无码一区仙野| 91久久久久免| 日韩91网| 国产高清成人传媒影视| 3028国产精品| 99国产精品| 色欲久久99国产精品久久久久久| 激情丁香五月婷婷| 91久久久老司机| 日韩电影天堂视频一区二区| 偷窥自拍亚洲| 国产精品一区二区久久精品| 日韩99999| 欧美激色| 国产超碰| 91性感在线| 欧美日韩国产高清在线一二三区 | 久久激情四射婷婷丁香五月天| 97综合国产精品高潮久久| AV中文字幕三四五| 精品亚洲国产成人AV制服丝袜| 狠狠激情综合狠狠操中文字幕| 午夜视频久久久| 成人短视频在线观看| 精品176精品2| 日韩亚洲欧美中文字幕| 麻豆久久精品亚洲精品88 | a在线视频免费观看| 超碰97资源大奶| 久久精品区| 精品国产乱码| 婷婷午夜成人色中色| 亚洲欧美天| 国产三级在线现体验区| 久久人人爽av亚洲精品天堂桃色 | 国产精品美女久久久久久网站| www..com操老师| 夜精品久无码| 久久久久亚洲三级电影| 免费久久9999| 美女超碰978| 国产精品视频| 丁香六月啪啪| 制服诱惑亚洲一区二区三区在线观看| 国产丸一视频| 大香蕉婷婷| 久操凹凸视频| 91精品少妇搡搡搡| 欧美黄片视频在线观看免费| 夜夜夜爽www精品视频| 丝袜美腿91| 一二三四日本视频高清| 国产精品一区二区麻豆| 91精品国产乱码| 日韩三级一区 | 精品国产乱码久久| 亚洲蜜臀精品视频久久| 一区二区三区机械有限公司| 天天色欧美| 中文字幕一区av| 日韩亚洲国产视频| 亚洲日韩av专区无码| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 久久久久网站-538在线视频-欧美永久乱码 | 欧美综合天堂| 91国产美女丝袜足交精品视频| 人人操人人93| site:sinbotex.com| 亚洲另类春色| 90后后入| 黑丝日韩av丝袜av| 美女极品一区二区三区| www.acm成人黄色毛片| 99热在线观看| 久久男人的天堂| 97热视频在线观看| 91久久午夜无码鲁丝片久久人妻| 麻豆久久久一区二区| 91成人亚洲色图| 日韩免费性爱视频在线观看| 97免费在线视频在线观看| 午夜理论片在线观看免费| 国产精品com| 91熟女视频网| 色哟哟511老熟女| 成人精品久久久午夜福利| 91 国产丝袜在线放观看| 天天综合91| 日本熟妇浓毛hdsex| 精品久久97观看在线视频| 99只有精品| 天堂九九九九九九九九九| 亚洲AV不卡在线观看| 精品人妻视频一区二区在线播放 | 日本久久99| 在线99热| 亚洲欧洲网站免费观看| 强奸乱伦亚洲第一页| 丁香7月婷婷| 91N综合网在线| 欧美中字不卡| 亚洲97超碰| 九九九九精品九九九九| 伊人网免费视频| 操www| 少妇无码av专区线| 操逼操操操91| 国产免费一区二区三区最新不卡| 很黄很污的免费网站| 欧美香蕉视xxx| 91视频成人福利网站在线一区| 青青操少妇| 亚州欧美总和| 蜜臀网 一区| 久久专区| 国产精品女久久久久av爽| 五月天玖玖资源站| 人人人人人人少妇| 欧亚第一综合网| 日本九九久久99| 超碰97人人乐| 欧美成人性爱视频在线播放| 啪啪视频亚洲第一| 色婷婷激情| 九九九久千久久激情蜜桃在线看 | 久久性爱大全| 黄色乱论网站| 亚洲极品| 自拍内地三级在线观看| 天天干夜夜操网| 超AV色女| 2017天天插| 日韩欧洲操屄视频| 婷婷亚洲天堂| 亚洲老司机123专区| 青青草影视蜜久久| 九九热久久99精品re| 欧美三级中文字幕hd| 亚洲天堂综合AV| 操亚州| 97久久国产| 天天操天天干一区二区| 青青草视频久久久久| 少妇熟女视频一区二区三区| 精品国模无码| 天天操综合网| 无码精品啪啪啪一区二区三区三州| 亚洲精品97| 女同性恋久久| 天天天天做夜夜夜夜做| 精品国产乱码久久| 中文字幕在线24| 97欧美久久久久久久| 日本淫乱女一区二区三区视频| 五月天丁香婷婷综合网站| 精品射1999| 97久久超碰亚洲| 欧美日韩国产另类综合| 久草资源在线视频官方总站日韩丝袜美腿| 蜜臀久久99精品久久久久久成人小说| 九月丁香综合网| 色色99| 97精品免费| 日本女人操逼| 男人天堂导航| 婷婷五月天色| 欧美丝袜中文字幕07在线| 中文字幕123| 91AV天堂| 粉嫩粉嫩一区性色AV片| 99爱爱| 污污汅18禁网站在线永久免费观看| 国产怡红院| 国产熟妇 码视频户外直播| 天天插天天射| 春色91| 丁香久久| 女性91网站| 午夜免费视频1000| 熟妇色99| 色999人与兽| 亚洲欧美电影| 人妻夜夜爽天天爽麻豆三区网站| 亚洲国产精品久久AV| 天堂岛av| 中文操逼字幕| 麻豆伊人网| 色黄污美女啪啪啪免费网站| 97超碰巨乳| 免费无码国产精品v片在线观看| 九九英色视频| 中国女人内射6XXXXX| 精品一区二区久久| 噜噜噜无码AV一级一级久久影院| 久久久天堂| 在线不卡视频| 大JI巴好深好爽又大又粗视频| 在线观看一卡二卡| 亚洲āv网址在线观看| 天天摸夜夜摸| 亚洲导航深夜福利| 婷婷10月天青娱乐| 97综合在线观看| 国产极品粉嫩馒头一线天av| 亚洲综合一| 99精品网| 欧美一级AAAAAAA| 亚洲综合骚逼| 亚洲综合在线视频| 91被操| 学生妹天天看| 亚洲激情网一二三四区| 精品人妻1区| 中文字幕免费看| 亚洲宅男天堂| 精品人妻1区| 精品人妻一区二区三区蜜桃视频| 欧美精品另类人妖xxxx| 午夜激情成人在线观看| 97在线免费看视频| 99www.bibizy香蕉资源国产一区二区三区高清| 18禁网站在线播放| 欧美91精品国产自产| 国产中文福利| 狠狠久久亚洲欧美专区| 逼逼逼逼操操操操操操操操操午夜剧场| 精品人妻一区二区三区蜜桃视频| 97硬碰| 久久男女激情视频网站| 伊人天天久久动态图| 99久热精品99re6热| 色激情五月天| caoni国产亚洲av| 97在线看| 九九九国产精品| 美女在线H91| 国产粉嫩出水在线播放| 不卡中文字幕aⅴ在线| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 97操97干| 天天综合网1| 99re9在线| 丁香五月综合| 三级AV入口| 99热这里只有精品18| 色天堂在线观看| 国产精品久久发布| 91欧美| 青青操狠狠撩| 天堂俺去俺来也www久久婷婷| 91综合中文字幕| 中文字幕午夜精品久久久| 劲爆欧美人妖三区91| 日韩在线国产字幕| 91爱做| 用力操死我| 操操AV电影| av天堂5| 日本性爰一道本| 老司机福利青青草| 97超碰超碰| 精品夜夜澡人妻无码AV| 国产嫩草精品A88AV| 91艹| 亚洲涩图欧美| 在线情色电影 91大| 91美女在线视频| 久久欧美1卡2卡3| 日韩啪啪啪啪啪| 色情五月综合婷婷| 日本久久网| 久久九色| 六月丁香五月婷婷| 亚洲人成网www| 五月天色图影视| 91丨九色丨东北熟女| 亚洲色综合| 久久丁香五月天| 亚洲国产激情国产av| 探花激情视频| 亚洲精品男人的天堂| 色色色网站| 日产狠狠干| 中文字幕第页| 日欧美色| 自拍欧美| 久久华人网| 高颜值美女口爆高潮浪叫| 日本大香蕉综合网红本杳社区| 99久久免费看精品国产一区| 久久久91| 天天看天天日| 色欲三区| 探花一区在线| 狠狠操狠狠爱| 强奸少妇AV导航网| 天天摸夜夜操视频| 亚洲性综合11| 久久狠狠色噜噜狠狠狠狠97| 欧美午夜视频免费观看| 黄片无码在线制服| 丰满人妻-区二区三区免费| 韩国一区二区精品亚洲| 怡春苑东京热| 色欧美色交综合| 99人妻| 国产女人和拘做爰视频| 国产免费久久久久| 国产四虎在线| julia ann久久| 精品人妻av区天天看片| 久久无码一区二区二三区性色| 性爱免费视频成人| 丝袜美腿诱惑亚洲欧美视频在线观看 | 一本色道综合久久欧美| 综合影视国产无码| 蜜臀久久一区二区| 少妇色综合| 日本二三四区| 日本激情免费大片| AV天堂丝袜| 青青欧洲黑| 欧美性91| 日本www操操操| www鬼畜国产男人的天堂| 香港日本韩国人妇99www.wccm20| 美女91网址| 一级做a爰片性色毛片久久| 日韩人妻免费精品| 中文有码第五页| 日本五区不卡| 精品国产乱码| 久久婷婷国产一区二区色| 日本天天干天天搞一区| 亚洲精品99999| AA特级绝黄| 毛片17S| 大香蕉99re| 欧美黑人精品在线播放| 久久久久久久久久久人妻| 精品超碰色| 亚川综合视频| 成人AV素股で擦久久| 人妻夜爽夜夜爽| 人妻 中文 日韩| 久久99国产综合精品女同| 久久风骚城市| 乱欲一区二区| 久久超碰大香蕉| 91久久久亚洲| 成年女人一区| 久久婷婷成人综合色怡春院| 国产三区免费在线观看| 日日夜夜草草草| 无遮挡又黄又刺激的视频| 欧美九9 9 9| 日韩天天综合| 麻豆这里只有精品| 国产美女91| 留下AⅤ黄色片| 91AV天美在线视频| 亚洲啪啪视频一区二区| 性爱AV天堂| 亚洲色图尤物视频| 午夜精品久久久久久久99热影院| 国产偷拍网站| 久久一留热品黄| 免费成人自拍视频在线| 青青草日本无码| 青青在线视频日韩欧美| 男人的天堂啪啪啪啪啪蜜桃不卡| 亚洲欧洲日韩中文字幕一区| 婷婷色导航| 啪啪啪男女亚洲中文字幕99| 91色久| 91美| 欧洲无码一区二区| 天天看精品动漫视频一区| 中文字幕一二三区| 亚洲色图尤物视频| 麻豆国产成人精品| 亚洲乱码尤物193YW| 性色高清..……| 91黑人无码激情在线| 亚洲天堂一二| 久久久久久亚洲精品不卡人乳| 亚洲精品97久久| 欧美在线官网| 日韩成人精品| 国产吹潮女在线观看| 秋霞曰韩R级| 97视频播放| 美日韩一卡二卡三卡免费人妻精品| 999久久久免费精品国产牛牛| 久久超碰亚洲人| 国产专区第一页| 久久噜噜噜精品国产亚洲综合| 日本黄 R色 成 人网站| 亚洲色阁| 久久久∴| 亚洲夜夜欢无码一区二区| 九九草| 夜夜狠狠躁日日躁色视频| 日本国产高清色www视频在线| 久久大香蕉97| 欧美18禁91| 手机在线观看不卡无码av| 92久久| 日韩欧美偷拍美女视频| 九九AV| 人人操人人摸人人看人人插| 夜夜国自区| 久久人妻97久久久久久久| 成人a大片在线观看| 亚洲欧美国产精品久久久久久久| 97色插| 1769一区二区| 牛牛AV人人夜夜澡人人爽| 学生妹天天看| 按摩中文字幕| 亚洲欧美国产其他二区| 新亚洲无码| 不卡六六在线91| 国产久久久9999| 激情啪啪拍91| 999精品国产高清一区二区| 国产美女91| 中国小夫妻勾搭露脸淫荡对白 | 国产乱色国产精品免费视| 中文字幕第7页| 天天综合欧美综合| 久久久久免费少妇| 日韩性爱电影一区| 国产精品黑人一区二区三区| 97操碰| 亚州综合图片| 91九色丨国产丨爆乳| 丁香九月激情啪| 高潮的A片激情扒开一区| 超碰九7| 91久热| 91男人天堂网| 91网18| 欧美精品在线观看| 防屏蔽在线视频| 免费操逼视频下载| 亚洲精品天堂久久A∨51成人漫| 97aiaiai| 快灬快灬 一下爽蜜桃在线观看| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 色香天天| 欧美肥臀在线| 好爽要喷了| 成人欧美日超碰| 91热爆在线| 少妇综合| 蜜臀Av一区二区三区| 欧美色图天堂网m| 怡红院成人av| 性爱视频免费网址| 人妻酒店出差被中出免费在线播放| 激情小说五月天| 国产在线精品偷| 婷婷中文网| 国产 无码 一区二区| 精品人体无圣光凹凸| 日韩欧美午夜一区二区| 青娱乐老司机视频| 日本韩国国产精品一区| 亚洲欧洲av影音| 2017av无码免费无线播| 操国产高清| 国产成年女黄特黄| 日韩免费福利在线观看| 人人做,人人操,人人摸| 国产欧美日本亚洲精品| 色色网91| 一区二区影院| 国产又粗又长又爽又色| 亚洲第一在线视频| 996热| 亚洲麻豆精品二区三区| 日韩pv中文| 97激情97激情| 色老牛| 加勒比色综合| 999久久久久久久久| 超碰吊日色| 夜色91| 超清福利精品视频在线| 无码精品久久久天天影视| 一区二区影院| 亚洲丁香花色| 高清不卡一二三区视频......| 91夜色chaopeng| 亚洲www91| 免看60秒涩涩视频| 诱惑网综合| 一级片视频啪啪| 国产Aα| 99精品在线播放| 美女人妻色网站| 91美女色视频亚洲| 欧美中日韩XXXX| 张柏芝国产一区在线观看| 操逼大黄片| 日韩成人网址| 少妇与黑人高潮在线| 操老熟女AV| 黑人综合网| 国产精品麻豆视频网站| 色99在线| 日韩图区| 天天亚洲| 不卡一区二区日本视频| 99色综合| 欧美激情色婷婷花野真衣一区二区| 国产蜜臀在线| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 综合激情一一91| 国产精品久久久亚洲第一牛牛_在线观看 | 亚洲日韩久久精品一区| 屁股久久久久久| 国产精品探花视频| 九一屌逼| 中国91AV| 日韩一级特黄av毛片| 人妻啊啊人妻啊啊| 伊人在线大香蕉视频久久| 国产精品免费久久久久久久久久 | 美女被啪到深处抽搐视频| 国语av最新自产拍在线观看| 日韩在线视频1234| 人人摸人人舔一区二区| 9色国产精品一区粉嫩| 久久久久久久久国产| 99热这里只有精| 97爱综合| 国产91av在线播放| 日韩AV熟女乱伦| 97超碰国产亚洲精品| 欧美性爱伊人| 日韩有码中文字幕女同性恋 | 亚洲图片欧美色| 久久直播国产| 亚洲Av诱惑| 熟妇女人妻呻吟久久AV| 强奸乱伦Av网| 久久线上视频免费看| 亚洲、日韩、综合、另类| 亚洲精品aa久久伊人| 五月天精品| 97国产色综合| 久久婷婷一区| 91社操逼| 国产成人主播| 午夜福利1区2区3区| 96AV精品| 久草午夜| 国产av尤物| 欧美另类丝袜熟女| 亚洲各类熟们中文字幕| 中文字幕久久亚州无码| 日日操免费视频| www.操| 不卡日本一区二区| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 日本国产欧美高清在线| 夜夜青青无码影院| 永久免费发布性爱网| 人妻少妇精品久久久| 天天操夜夜操狠很操| 日韩av色图综合| 第四色奇米影视777| 亚洲天堂自拍| www亚洲免费| 97超碰亚洲| 91精品女厕偷拍视频| 91日产欧美| 人人人人插| 国产1727欧美| 视频分类 国内精品| 东京热伊久| 性爱综合网| 9Ⅰ老熟女| 色 婷97| 久久黄色视频一区二区三区| 干B| 成人福利视频网| 色九九久九九| 精品少妇一区二区三区免费观看| 亚欧成人一级片在线播放| 亚洲欧洲美腿丝袜| 日韩欧美午夜一区二区| 97一区二区三区视频| 在线精品福利免费播放| 性欧美999| 曰韩欧美国产传媒麻豆第一区| 日韩成人高清一区二区| 97视频620| 91小视频| 亚洲成人贴图| 天天看高清麻豆| 99碰碰| 久96热在线观看视频| 亚洲一二三| www99热| 亚洲国产成人7777| 在线色资源| 亚洲AV无码天美传媒一区| 伊人一区二区在线播放| 蜜臀在线网站| 福利风月五月天影院| 欧美人与性动交a美精品| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 懂色AV一区二区三区| 乱伦一二三区| 干美女人妻| 欧美人妻精品| 欧美十八禁网站| 97国产人人| 91视频综合在线| 97青青操视频| 美女被艹尤物视频| 亚洲麻豆av一区二区| 国产欧洲精品亚洲午夜拍精品| 日韩精品99999| 亚洲最新av无码成人精品区| 亚洲97超碰| 亚洲啪啪啪啪视香蕉| 超碰超碰95| 乱伦系列一区二区| 自拍偷拍第26| 欧美精品黑人猛交高潮| 欧美影音在线| 亚洲。日韩。欧美| 啊v视频在线观看| 欧美一级特黄淫片在线观看| 天天看片青娱乐| 视频二区熟女人妻| 黄色高清久久无码依人| 99无码视频| 国产亚洲色婷婷久久99精品91葵花宝典| 男女啪啪网站免费视频| 日1区2区3区2020| 亚洲熟女乱综合一区二区三区| 欧美不卡在线美女| 九九综合色| 天天干天天操天天干天天操| 免费日韩黄片| 久久精品国产亚洲AV清纯| 一本色道人妻久久| 国产丝袜一区二区三区| 动漫av中文| 97久久免费| 久久e6只有精品| 天综合网| 志村玲子视频一区二区| 国产农村一一级特黄毛片| 在线看片国产精品每日更新| 免费1级a做爰片观看| 蜜臀无码视频在线观看 | 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 91 手机在线播放 绯色| 五月天成人综合| 久久美女福利是上海美女| 性色av蜜臀av色欲aV| 国产91av在线播放| 极品销魂美女一区二区| 屁股久久久久久久| 黄骗免费网站| 蜜臀中文字幕| 91这里只有精品| 97超碰超碰| 狠狠超| 欧美亚洲激情| 日韩国产精品人妻无码久久久| 久久 精品| 国产女人视频三四五区| 精品黄色电影| 高清国产精品福利网站| 17c嫩草51久久91嫩草| 天天看天天日天天操| 青娱乐国产剧情av一区| 欧美成年人性爱视频免费观看| 91春色| a片 xxxx受爽视频| 婷婷av在线中文字幕| 99久久精品无码一区二区毛片免费| 日韩一级性爱无码| 一区不卡在线观看av| 国产女同视频在线播放| 蜜乳AV一区| 一级啊性爱在线视频| 十八禁视频网站| AA丁香综合激情| 午夜精品一区二区三区三上悠亚| 婷婷香蕉欧美在线一区二区三区| 欧美在线官网| 国产又大又粗又长视频在线| 日欧毛片久久| 久久精品国产97欧美精品亚洲| 亚洲色图欧美色18直播在线| 久九色| 久久欲| 在线无码操| 五月婷婷五月天| 美日韩一卡二卡三卡免费人妻精品| 99久久综合| 欧美 亚洲 91| 国产91 丝袜在线播放| 亚洲国产丝袜熟女av| 色综合久久av| 91GD.COM| 亚洲一区二区三区麻豆传媒| 久草精品一区 | 一区二区免费电影久久| 极品尤物女神在线观看| 啊…啊…操我用力操我| 欧美页片| 99久久99九九99九九九| 中英熟女操女| 九九探花视频在线观看| 91蜜臀熟女| 久久伦理视频久久大香蕉视频| 亚洲综合有码| 操www| 五月天综合在线| 日韩9999| 91天堂| 日韩精品碰碰| 亚洲丝袜二区| 亚洲综合射| 一起草高清无码| 欧美日韩性爱操大逼| 日韩精品三区四区| 夜夜春夜夜操| 国产精品蜜臀久久久久无码AV| 欧美丰满熟妇XXXX性ppX人交| 丝袜狠狠草尤物人妻av91| WWW美腿丝袜香蕉中文| 秋霞怕怕片| 无码自拍SM| 国产十八禁视频| 极品白嫩美少妇在地板上位骑射淫水泛滥| 国产日韩欧美亚洲精品95| 超AV色女| 青青草综合在线| 园内精品自拍视频在线播放| 午夜精品一区二区三区三上悠亚| 秋霞鲁丝午夜无码一区二区三| 在线观看中文字幕| 亚洲成av人片色午夜乱码| 麻豆伊人网| 久久大| 国产亚洲一黄| 97网站在线观看| 国产精品欧美日韩久久| 一区二区三区日韩欧美| 亚洲色宗合| 九九色精品| 亚洲加勒比色图| 国产精品呦一区二区三区| wwe 天天干.com| 亚洲综合首页| 伊人色综合网| 极品人妻少妇综合| 日韩av在线免费网站| 国厂麻豆77q4| 91伊人久| 69精品人人人人| 波多野结衣之双飞调教在线播放 | av72网| 在线综合 亚洲 欧美中文字幕| 青青国产精品在线| 亚洲天堂男| 久久99久久99久久99人受| 97在线观看免费| 十八禁成人网站在线观看| 国产乱人妻精品入口| 岛国在线免费视频| 久久九七| 嫩呦国产一区二区三区AV| 中文97国产| 丁香九月 婷婷| 撸撸成人在线视频| 91精品久久久久五月天精品| 青青草啪啪网| 亚洲成人性| 欧美综合 站| 强奸乱伦日韩AV| 午夜操操操| 婷婷六月色| …亚洲黄色厕厕女女在线播…| 六月婷婷综合| 成人怡红院| 天天摸天天插天天日| 天堂无码| 色色99| 国产理论视频在线播放| 日韩高清一二三| 美女自卫慰黄网站免费| 91美| 大香蕉在线视频15| 亚洲熟女乱色一区二区三区| 美国久久一二三四| 久久精品国产亚洲AV嘿嘿| 日韩丨制服丨中文|在线| www.色综合| 亚洲欧美色图片| 亚洲综合影片| 亚洲一卡2卡3卡4卡乱码网站 | 日韩操p| 97久久国产亚洲精品超碰热| 亚洲激情网| 沈阳熟女高潮对白视频| 国产十八禁视频| 日韩性爱网址| 九九九久久久| 97bbn| 久久婷婷伊人| 三级日韩一区二区三区| 久久99深爱久久99精品| 亚洲欧美精品91| 一区操逼| 综合网少妇| 成人网欧美风情| 8050午夜少妇无码| 中文字幕一区二区视频在线观看| 91久久堂| 色婷婷五月天| 久久青青草原免费视频| 日本道人妻久久久在线不卡色视频| 淮穴色AV| 精品偷拍13p欧美dodk视频| 日逼97| 亚洲色资源| 天天摸,夜夜摸| 国产自产自拍| 狠狠干91| 久久精品99| 国产农村妇女精品一二区| 国产成人www免费人成看片| 国产60页| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 日韩中文字幕精品一二三事国产精品| 乱精品一区字幕二区| 一区二区三区黄片免费观看| 果冻传媒A片麻豆熟妇人妻| 欧美亚洲美少妇一区二区| 伊人AAA| 夜夜影视四色| 高清有码一区二区| 情色图区| 69久久久久久久久久久久久| 小草三级久久观看| 十八禁视频网站| 国产操伦| 张柏芝国产一区在线观看| 五月天精品| 啊啊啊啊啊啊啊啊啊啊在线观看| 天天欧美欧美亚洲网| 亚洲超碰AV| 国产精品久久久久久久AV大片| 色色九区| 色97国产69香蕉| 精品国产国产AV| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 26uuu国产| 亚洲黄网在哪免费看| 日韩性爱1级片视频| 免费操逼91| 国产精品欧美在线观看| 午夜久久久| 亚av顶级裸体一区二区三区四区五区 | 精彩国产视频播放1区2区| 男人天堂2019亚洲| 超碰精品在线| 天天草天天干天天日| 伦伦成年午夜免费视频| 黄视频免费| 亚洲码在线中文在线观看| 色综合一区二区三区| 伊人九九九| 97伊人| 欧美熟妇色| 99热这里都是精品| 欧美丝袜亚洲| 51一区二区三区| 亚洲 无码 有码 中文字幕| 久草草一二三四区久久| 中文字幕超碰CAO| 日韩精品99久久久久久中文字幕| av操操不卡| 自拍盗摄一区| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 天天视频黄| 成人一二| 免费看黄片现成| 欧美一级美片在线观看免费| 国产91av在线播放| 无码精品久久| 中文字幕一区二区免费在线| 国产v片在线免费观看| 亚洲电影中字一区二区| 97久久久| 久久久久久久久久8888| 99色在线视频| 欧美精品四区| 毛片视频白嫩| 人人综合| 69久久久久久久久久久久久| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 在线精品福利免费播放| 亚洲中文日韩精品| 亚洲综合九九| 天堂蜜桃无码视频一区二区| 九九无码久久精品视频| 性色高清在线| 久久夜夜夜| 少妇熟女视频一区二区三区 | 亚洲综合性网址| 2020中文字幕在线| 中国少妇啪啪视频| 精品乱码久久久久| 青娱乐 成人娱乐在线| 密臀在线免费观看| 亚洲激情色片 | 久久久久921| 91N综合网| 草草电影院| 天天看天天在线精品| 国产原创剧情在线丝袜| 韩国三级一线观看久| 蜜桃色色网站视频三区| 亚洲第一无码播放立川理惠| 亚州欧美色图| 日本成人A片免费看| 少妇滛荡视频| 久九九九九九九热| 长久操视频| 天天看片青娱乐| 欧 美 自 拍 偷 拍| 2024人人操人人摸| 另类亚洲图色| 老色鬼成人精品视频下载大在线观看| 亚洲图片 欧美电影| 2024年最新色情网站在线观看| 国产极品粉嫩馒头一线天av| 性欧美|