国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

9個(gè)讓PyTorch模型訓(xùn)練提速的技巧!

共 6021字,需瀏覽 13分鐘

 ·

2020-12-11 12:14

↑↑↑關(guān)注后"星標(biāo)"Datawhale
每日干貨?&?每月組隊(duì)學(xué)習(xí),不錯(cuò)過
?Datawhale干貨?
來源:AI公園,譯者:ronghuaiyang

作者:William Falcon

編譯:ronghuaiyang

導(dǎo)讀

一個(gè)step by step的指南,非常的實(shí)用。

不要讓你的神經(jīng)網(wǎng)絡(luò)變成這樣

讓我們面對現(xiàn)實(shí)吧,你的模型可能還停留在石器時(shí)代。我敢打賭你仍然使用32位精度或GASP甚至只在一個(gè)GPU上訓(xùn)練。

我明白,網(wǎng)上都是各種神經(jīng)網(wǎng)絡(luò)加速指南,但是一個(gè)checklist都沒有(現(xiàn)在有了),使用這個(gè)清單,一步一步確保你能榨干你模型的所有性能。

本指南從最簡單的結(jié)構(gòu)到最復(fù)雜的改動(dòng)都有,可以使你的網(wǎng)絡(luò)得到最大的好處。我會(huì)給你展示示例Pytorch代碼以及可以在Pytorch- lightning Trainer中使用的相關(guān)flags,這樣你可以不用自己編寫這些代碼!

**這本指南是為誰準(zhǔn)備的?**任何使用Pytorch進(jìn)行深度學(xué)習(xí)模型研究的人,如研究人員、博士生、學(xué)者等,我們在這里談?wù)摰哪P涂赡苄枰慊ㄙM(fèi)幾天的訓(xùn)練,甚至是幾周或幾個(gè)月。

我們會(huì)講到:

  1. 使用DataLoaders
  2. DataLoader中的workers數(shù)量
  3. Batch size
  4. 梯度累計(jì)
  5. 保留的計(jì)算圖
  6. 移動(dòng)到單個(gè)
  7. 16-bit 混合精度訓(xùn)練
  8. 移動(dòng)到多個(gè)GPUs中(模型復(fù)制)
  9. 移動(dòng)到多個(gè)GPU-nodes中 (8+GPUs)
  10. 思考模型加速的技巧

Pytorch-Lightning

你可以在Pytorch的庫Pytorch- lightning中找到我在這里討論的每一個(gè)優(yōu)化。Lightning是在Pytorch之上的一個(gè)封裝,它可以自動(dòng)訓(xùn)練,同時(shí)讓研究人員完全控制關(guān)鍵的模型組件。Lightning 使用最新的最佳實(shí)踐,并將你可能出錯(cuò)的地方最小化。

我們?yōu)镸NIST定義LightningModel并使用Trainer來訓(xùn)練模型。

from?pytorch_lightning?import?Trainer
model?=?LightningModule(…)
trainer?=?Trainer()
trainer.fit(model)

1. DataLoaders

這可能是最容易獲得速度增益的地方。保存h5py或numpy文件以加速數(shù)據(jù)加載的時(shí)代已經(jīng)一去不復(fù)返了,使用Pytorch dataloader加載圖像數(shù)據(jù)很簡單(對于NLP數(shù)據(jù),請查看TorchText)。

在lightning中,你不需要指定訓(xùn)練循環(huán),只需要定義dataLoaders和Trainer就會(huì)在需要的時(shí)候調(diào)用它們

dataset?=?MNIST(root=self.hparams.data_root,?train=train,?download=True)
loader?=?DataLoader(dataset,?batch_size=32,?shuffle=True)
for?batch?in?loader:
??x,?y?=?batch
??model.training_step(x,?y)
??...

2. DataLoaders 中的 workers 的數(shù)量

另一個(gè)加速的神奇之處是允許批量并行加載。因此,您可以一次裝載nb_workers個(gè)batch,而不是一次裝載一個(gè)batch。

#?slow
loader?=?DataLoader(dataset,?batch_size=32,?shuffle=True)
#?fast?(use?10?workers)
loader?=?DataLoader(dataset,?batch_size=32,?shuffle=True,?num_workers=10)

3. Batch size

在開始下一個(gè)優(yōu)化步驟之前,將batch size增大到CPU-RAM或GPU-RAM所允許的最大范圍。

下一節(jié)將重點(diǎn)介紹如何幫助減少內(nèi)存占用,以便你可以繼續(xù)增加batch size。

記住,你可能需要再次更新你的學(xué)習(xí)率。一個(gè)好的經(jīng)驗(yàn)法則是,如果batch size加倍,那么學(xué)習(xí)率就加倍。

4. 梯度累加

在你已經(jīng)達(dá)到計(jì)算資源上限的情況下,你的batch size仍然太小(比如8),然后我們需要模擬一個(gè)更大的batch size來進(jìn)行梯度下降,以提供一個(gè)良好的估計(jì)。

假設(shè)我們想要達(dá)到128的batch size大小。我們需要以batch size為8執(zhí)行16個(gè)前向傳播和向后傳播,然后再執(zhí)行一次優(yōu)化步驟。

#?clear?last?step
optimizer.zero_grad()

#?16?accumulated?gradient?steps
scaled_loss?=?0
for?accumulated_step_i?in?range(16):
?????out?=?model.forward()
?????loss?=?some_loss(out,y)????
?????loss.backward()
??????scaled_loss?+=?loss.item()
??????
#?update?weights?after?8?steps.?effective?batch?=?8*16
optimizer.step()

#?loss?is?now?scaled?up?by?the?number?of?accumulated?batches
actual_loss?=?scaled_loss?/?16

在lightning中,全部都給你做好了,只需要設(shè)置accumulate_grad_batches=16

trainer?=?Trainer(accumulate_grad_batches=16)
trainer.fit(model)

5. 保留的計(jì)算圖

一個(gè)最簡單撐爆你的內(nèi)存的方法是為了記錄日志存儲(chǔ)你的loss。

losses?=?[]
...
losses.append(loss)

print(f'current?loss:?{torch.mean(losses)'})

上面的問題是,loss仍然包含有整個(gè)圖的副本。在這種情況下,調(diào)用.item()來釋放它。

![1_CER3v8cok2UOBNsmnBrzPQ](9?Tips?For?Training?Lightning-Fast?Neural?Networks?In?Pytorch.assets/1_CER3v8cok2UOBNsmnBrzPQ.gif)#?bad
losses.append(loss)

#?good
losses.append(loss.item())

Lightning會(huì)非常小心,確保不會(huì)保留計(jì)算圖的副本。

6. 單個(gè)GPU訓(xùn)練

一旦你已經(jīng)完成了前面的步驟,是時(shí)候進(jìn)入GPU訓(xùn)練了。在GPU上的訓(xùn)練將使多個(gè)GPU cores之間的數(shù)學(xué)計(jì)算并行化。你得到的加速取決于你所使用的GPU類型。我推薦個(gè)人用2080Ti,公司用V100。

乍一看,這可能會(huì)讓你不知所措,但你真的只需要做兩件事:1)移動(dòng)你的模型到GPU, 2)每當(dāng)你運(yùn)行數(shù)據(jù)通過它,把數(shù)據(jù)放到GPU上。

#?put?model?on?GPU
model.cuda(0)

#?put?data?on?gpu?(cuda?on?a?variable?returns?a?cuda?copy)
x?=?x.cuda(0)

#?runs?on?GPU?now
model(x)

如果你使用Lightning,你什么都不用做,只需要設(shè)置Trainer(gpus=1)。

#?ask?lightning?to?use?gpu?0?for?training
trainer?=?Trainer(gpus=[0])
trainer.fit(model)

在GPU上進(jìn)行訓(xùn)練時(shí),要注意的主要事情是限制CPU和GPU之間的傳輸次數(shù)。

#?expensive
x?=?x.cuda(0)#?very?expensive
x?=?x.cpu()
x?=?x.cuda(0)

如果內(nèi)存耗盡,不要將數(shù)據(jù)移回CPU以節(jié)省內(nèi)存。在求助于GPU之前,嘗試以其他方式優(yōu)化你的代碼或GPU之間的內(nèi)存分布。

另一件需要注意的事情是調(diào)用強(qiáng)制GPU同步的操作。清除內(nèi)存緩存就是一個(gè)例子。

#?really?bad?idea.?Stops?all?the?GPUs?until?they?all?catch?up
torch.cuda.empty_cache()

但是,如果使用Lightning,惟一可能出現(xiàn)問題的地方是在定義Lightning Module時(shí)。Lightning會(huì)特別注意不去犯這類錯(cuò)誤。

7. 16-bit 精度

16bit精度是將內(nèi)存占用減半的驚人技術(shù)。大多數(shù)模型使用32bit精度數(shù)字進(jìn)行訓(xùn)練。然而,最近的研究發(fā)現(xiàn),16bit模型也可以工作得很好?;旌暇纫馕吨鴮δ承﹥?nèi)容使用16bit,但將權(quán)重等內(nèi)容保持在32bit。

要在Pytorch中使用16bit精度,請安裝NVIDIA的apex庫,并對你的模型進(jìn)行這些更改。

#?enable?16-bit?on?the?model?and?the?optimizer
model,?optimizers?=?amp.initialize(model,?optimizers,?opt_level='O2')

#?when?doing?.backward,?let?amp?do?it?so?it?can?scale?the?loss
with?amp.scale_loss(loss,?optimizer)?as?scaled_loss:??????????????????????
????scaled_loss.backward()

amp包會(huì)處理好大部分事情。如果梯度爆炸或趨向于0,它甚至?xí)s放loss。

在lightning中,啟用16bit并不需要修改模型中的任何內(nèi)容,也不需要執(zhí)行我上面所寫的操作。設(shè)置Trainer(precision=16)就可以了。

trainer?=?Trainer(amp_level='O2',?use_amp=False)
trainer.fit(model)

8. 移動(dòng)到多個(gè)GPUs中

現(xiàn)在,事情變得非常有趣了。有3種(也許更多?)方法來進(jìn)行多GPU訓(xùn)練。

分batch訓(xùn)練

A) 拷貝模型到每個(gè)GPU中,B) 給每個(gè)GPU一部分batch

第一種方法被稱為“分batch訓(xùn)練”。該策略將模型復(fù)制到每個(gè)GPU上,每個(gè)GPU獲得batch的一部分。

#?copy?model?on?each?GPU?and?give?a?fourth?of?the?batch?to?each
model?=?DataParallel(model,?devices=[0,?1,?2?,3])

#?out?has?4?outputs?(one?for?each?gpu)
out?=?model(x.cuda(0))

在lightning中,你只需要增加GPUs的數(shù)量,然后告訴trainer,其他什么都不用做。

#?ask?lightning?to?use?4?GPUs?for?training
trainer?=?Trainer(gpus=[0,?1,?2,?3])
trainer.fit(model)

模型分布訓(xùn)練

將模型的不同部分放在不同的GPU上,batch按順序移動(dòng)

有時(shí)你的模型可能太大不能完全放到內(nèi)存中。例如,帶有編碼器和解碼器的序列到序列模型在生成輸出時(shí)可能會(huì)占用20GB RAM。在本例中,我們希望將編碼器和解碼器放在獨(dú)立的GPU上。

#?each?model?is?sooo?big?we?can't?fit?both?in?memory
encoder_rnn.cuda(0)
decoder_rnn.cuda(1)

#?run?input?through?encoder?on?GPU?0
encoder_out?=?encoder_rnn(x.cuda(0))

#?run?output?through?decoder?on?the?next?GPU
out?=?decoder_rnn(encoder_out.cuda(1))

#?normally?we?want?to?bring?all?outputs?back?to?GPU?0
out?=?out.cuda(0)

對于這種類型的訓(xùn)練,在Lightning中不需要指定任何GPU,你應(yīng)該把LightningModule中的模塊放到正確的GPU上。

class?MyModule(LightningModule):
????def?__init__():
????????self.encoder?=?RNN(...)
????????self.decoder?=?RNN(...)
????def?forward(x):
????????#?models?won't?be?moved?after?the?first?forward?because?
????????#?they?are?already?on?the?correct?GPUs
????????self.encoder.cuda(0)
????????self.decoder.cuda(1)
????????out?=?self.encoder(x)
????????out?=?self.decoder(out.cuda(1))
????????
#?don't?pass?GPUs?to?trainer
model?=?MyModule()
trainer?=?Trainer()
trainer.fit(model)

兩者混合

在上面的情況下,編碼器和解碼器仍然可以從并行化操作中獲益。

#?change?these?lines
self.encoder?=?RNN(...)
self.decoder?=?RNN(...)

#?to?these
#?now?each?RNN?is?based?on?a?different?gpu?set
self.encoder?=?DataParallel(self.encoder,?devices=[0,?1,?2,?3])
self.decoder?=?DataParallel(self.encoder,?devices=[4,?5,?6,?7])

#?in?forward...
out?=?self.encoder(x.cuda(0))

#?notice?inputs?on?first?gpu?in?device
sout?=?self.decoder(out.cuda(4))??#?<---?the?4?here

使用多個(gè)GPU時(shí)要考慮的注意事項(xiàng):

  • 如果模型已經(jīng)在GPU上了,model.cuda()不會(huì)做任何事情。
  • 總是把輸入放在設(shè)備列表中的第一個(gè)設(shè)備上。
  • 在設(shè)備之間傳輸數(shù)據(jù)是昂貴的,把它作為最后的手段。
  • 優(yōu)化器和梯度會(huì)被保存在GPU 0上,因此,GPU 0上使用的內(nèi)存可能會(huì)比其他GPU大得多。

9. 多節(jié)點(diǎn)GPU訓(xùn)練

每臺(tái)機(jī)器上的每個(gè)GPU都有一個(gè)模型的副本。每臺(tái)機(jī)器獲得數(shù)據(jù)的一部分,并且只在那部分上訓(xùn)練。每臺(tái)機(jī)器都能同步梯度。

如果你已經(jīng)做到了這一步,那么你現(xiàn)在可以在幾分鐘內(nèi)訓(xùn)練Imagenet了!這并沒有你想象的那么難,但是它可能需要你對計(jì)算集群的更多知識。這些說明假設(shè)你正在集群上使用SLURM。

Pytorch允許多節(jié)點(diǎn)訓(xùn)練,通過在每個(gè)節(jié)點(diǎn)上復(fù)制每個(gè)GPU上的模型并同步梯度。所以,每個(gè)模型都是在每個(gè)GPU上獨(dú)立初始化的,本質(zhì)上獨(dú)立地在數(shù)據(jù)的一個(gè)分區(qū)上訓(xùn)練,除了它們都從所有模型接收梯度更新。

在高層次上:

  1. 在每個(gè)GPU上初始化一個(gè)模型的副本(確保設(shè)置種子,讓每個(gè)模型初始化到相同的權(quán)重,否則它會(huì)失敗)。
  2. 將數(shù)據(jù)集分割成子集(使用DistributedSampler)。每個(gè)GPU只在它自己的小子集上訓(xùn)練。
  3. 在.backward()上,所有副本都接收到所有模型的梯度副本。這是模型之間唯一一次的通信。

Pytorch有一個(gè)很好的抽象,叫做DistributedDataParallel,它可以幫你實(shí)現(xiàn)這個(gè)功能。要使用DDP,你需要做4的事情:

def?tng_dataloader():
?????d?=?MNIST()
?????
?????#?4:?Add?distributed?sampler
?????#?sampler?sends?a?portion?of?tng?data?to?each?machine
?????dist_sampler?=?DistributedSampler(dataset)
?????dataloader?=?DataLoader(d,?shuffle=False,?sampler=dist_sampler)
?????
def?main_process_entrypoint(gpu_nb):
?????#?2:?set?up?connections??between?all?gpus?across?all?machines
?????#?all?gpus?connect?to?a?single?GPU?"root"
?????#?the?default?uses?env://
?????world?=?nb_gpus?*?nb_nodes
?????dist.init_process_group("nccl",?rank=gpu_nb,?world_size=world)
?????
?????#?3:?wrap?model?in?DPP
?????torch.cuda.set_device(gpu_nb)
?????model.cuda(gpu_nb)
?????model?=?DistributedDataParallel(model,?device_ids=[gpu_nb])
?????
?????#?train?your?model?now...
?????
if??__name__?==?'__main__':
?????#?1:?spawn?number?of?processes
?????#?your?cluster?will?call?main?for?each?machine
?????mp.spawn(main_process_entrypoint,?nprocs=8)

然而,在Lightning中,只需設(shè)置節(jié)點(diǎn)數(shù)量,它就會(huì)為你處理其余的事情。

#?train?on?1024?gpus?across?128?nodes
trainer?=?Trainer(nb_gpu_nodes=128,?gpus=[0,?1,?2,?3,?4,?5,?6,?7])

Lightning還附帶了一個(gè)SlurmCluster管理器,可以方便地幫助你提交SLURM作業(yè)的正確詳細(xì)信息。

10. 福利!在單個(gè)節(jié)點(diǎn)上多GPU更快的訓(xùn)練

事實(shí)證明,distributedDataParallel比DataParallel快得多,因?yàn)樗粓?zhí)行梯度同步的通信。所以,一個(gè)好的hack是使用distributedDataParallel替換DataParallel,即使是在單機(jī)上進(jìn)行訓(xùn)練。

在Lightning中,這很容易通過將distributed_backend設(shè)置為ddp和設(shè)置GPUs的數(shù)量來實(shí)現(xiàn)。

#?train?on?4?gpus?on?the?same?machine?MUCH?faster?than?DataParallel
trainer?=?Trainer(distributed_backend='ddp',?gpus=[0,?1,?2,?3])

對模型加速的思考

盡管本指南將為你提供了一系列提高網(wǎng)絡(luò)速度的技巧,但我還是要給你解釋一下如何通過查找瓶頸來思考問題。

我將模型分成幾個(gè)部分:

首先,我要確保在數(shù)據(jù)加載中沒有瓶頸。為此,我使用了我所描述的現(xiàn)有數(shù)據(jù)加載解決方案,但是如果沒有一種解決方案滿足你的需要,請考慮離線處理和緩存到高性能數(shù)據(jù)存儲(chǔ)中,比如h5py。

接下來看看你在訓(xùn)練步驟中要做什么。確保你的前向傳播速度快,避免過多的計(jì)算以及最小化CPU和GPU之間的數(shù)據(jù)傳輸。最后,避免做一些會(huì)降低GPU速度的事情(本指南中有介紹)。

接下來,我試圖最大化我的batch size,這通常是受GPU內(nèi)存大小的限制?,F(xiàn)在,需要關(guān)注在使用大的batch size的時(shí)候如何在多個(gè)GPUs上分布并最小化延遲(比如,我可能會(huì)嘗試著在多個(gè)gpu上使用8000 +的有效batch size)。

然而,你需要小心大的batch size。針對你的具體問題,請查閱相關(guān)文獻(xiàn),看看人們都忽略了什么!


END

英文原文:https://towardsdatascience.com/9-tips-for-training-lightning-fast-neural-networks-in-pytorch-8e63a502f565

“干貨學(xué)習(xí),點(diǎn)贊三連
瀏覽 54
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 蜜臀AV一区二区三区免费看| 上床视频网站| 九七AV| 91视频免费在线看| 5252a我爱haose01我愿| 在线观看国产欧美| 青草伊人网| 中文在线视频| 精品偷拍| 日韩综合精品中文字幕66| 精品国产一区二区三区久久久蜜月 | 99热碰碰热| 操逼片| 国产黄色在线| 精品在线免费观看| 亚洲第一天堂| 91狠狠| 天天色情| 国产午夜无码视频在线观看| 国产棈品久久久久久久久久九秃| 人妻黄色视频| www.日本黄色视频| 视频一区二区三| 中文字幕在线视频第一页| 国产中文字幕第一页| 欧美成人免费观看| 三级视频国产| 欧美性xxxxx| 久久九九视频| 精品无码一区二区三区四区五区| 性欧美XXXX| 亚洲高清无码免费在线观看| 亚洲色在线播放| 亚洲韩国中文字幕| 国产免费黄色视频| 91成人做爰A片| 奇米色色| 成人自拍偷拍视频| 色五月激情五月| 亚洲AV成人片无码网站网蜜柚| 熟女人妻人妻HD| 九九性爱视频| 亚洲性爱网址| 亚洲精品一区二区三| 免费无码一区| 久久噜噜噜精品国产亚洲综合| 99热这里有精品| 五月在线视频| 黄色AV免费在线观看| 精品欧美视频| 久久狼友| 欧美性猛交XXXX乱大交| 成人动漫一区二区| 欧美一区不卡| 亚洲国产精品成人久久蜜臀| 国产真实露脸乱子伦对白高清视频| 国产欧美日韩一区二区三区| 五月天AV在线| 日韩乱伦AV| 91在线成人| 一级二级三级无码| 北条麻妃在线一区| 亚洲中文字幕在线看| 91成人无码看片在线观看网址 | 日韩视频免费看| 欧美区在线观看| 丁香婷婷久久久综合精品国产| 成人h网站在线观看| 免费成人在线网站| av天天av无码av天天爽| 一级a黄色片| 91日韩视频在线| 内射一区二区| www.97cao| 草逼123| 翔田千里中文字幕无码| 日本一级片| 国产探花在线观看| 欧美a区| 国产精品三级视频| 老太色HD色老太HD| 2018天天干天天操| 国产欧美精品一区二区| 91亚洲电影| 影音先锋aV成人无码电影| 日韩人妻精品中文字幕免费| 99re99| 亚洲天堂无码| 国家一级A片| 国产玖玖爱| 欧美爱爱视屏| 中文字幕无码一区二区三区一本久 | 中文字幕在线免费观看视频| 怡红院成人网| 国产欧美一区二区三区视频| 黑人干亚洲人| 丁香五月婷婷综合网| 日韩无码黄色电影| 大肉大捧一进一出免费阅读| 韩国无码高清视频| 久久国产一区二区三区| 亚洲无码一二区| 日本内射网站| 亚洲视频综合| 九色在线视频| 性感欧美美女| 日韩va亚洲va欧美va高清| 日韩最新高清无码| 久久久久亚洲精品| 亚韩av| 北条麻妃性爱视频| 人人操人人摸人人爱| 天天日天天干天天干| 日韩黄色一级视频| AV资源在线| 国产精品天天AVJ精麻传媒| 国产精品91久久久| 91老熟| 黑人在线视频| 欧美成年人网站| 亚洲乱码在线观看| 操婊网| 97在线超碰| 99精品视频在线| 久久毛久久久j| 大香蕉在线视频75| 久久毛片基地| 久久夜色精品国产噜噜亚洲AV| 人人插人人爽| 亚洲精品国产av| 国产精品性爱| 日韩黄片| 中文成人在线| 欧美老熟妇BBBBB搡BBB| 无码AV网| 能看的AV网站| 91无码电影| 在线观看高清无码| 国产香蕉视频免费| 久久伊人亚洲| www高清无码| 天堂在线www| AV无码网站| 操操操操操操| 佐山爱人妻无码蜜桃| 久热网站| 国产毛片精品一区二区色欲黄A片| 97在线精品| 免费看v片| 91工厂露脸熟女| 中文字幕浅井香舞被黑人俘虏| 精国产品一区二区三区A片| 少妇人妻在线| 久久永久免费视频| 欧美一区二区三曲的| 加勒比精品| 日韩无码人妻久久一区二区三区 | 毛片操逼视频| 日韩极品视频| 五月婷婷丁香| 日韩中文字幕成人| 狠狠插网站| 久久一| 九九九成人网| 午夜操一操| 小早川怜子精品一区二区| 波多野结衣无码一区| 中国免费XXXX18| 亚洲色婷婷综合| 国产黄色免费| 一二三区| 国产中文字幕第一页| 国产传媒精品| 午夜成人毛片| 操逼片| 国产精品精品| 成人精品秘免费波多野结衣| www.91在线| 国产精品秘久久久久久免费播放| 91av电影网| av不卡在线观看| 日韩成人视频在线| 日日碰狠狠添| 亚洲高清无码免费在线观看| 亚洲欧美日韩中文字幕在线观看| 超碰成人网| 无码人妻一区| 欧美精品成人免费片| 亚洲成人动漫免费| 一区二区三区四区在线看| 五月婷婷基地| 天天干夜夜操| 蜜臀无码在线| 国产操逼电影| 久久精品视频在线| 99热日| 天堂va欧美ⅴa亚洲va一夜| 中文字幕在线免费看线人| 青青草精品| 亚洲第一在线| av在线无码| 欧美日韩精品久久久免费观看| 狠狠干亚洲视频| 欧美三级欧美一级| 久久99精品久久久久| 国产中文字字幕乱码无限| 中文字幕一区二区三区日本在线| 亚洲成人在线网站| 中文字幕日日| 国产九九九视频| 欧美精品日韩在线观看| 免费一级黄色电影| 国产乱码一区二区三区| 在线视频一区二区三区四区| 操逼视频免费在线观看| 成人123区| 欧美成人免费在线| 91草视频| 夜夜撸视频| 热re99久久精品国产99热| 乱子伦国产精品www| 插菊综合网| 黄色的视频网站| 草逼动态图| 一区亚洲| 亚洲va综合va国产va中文| 蜜臀AV在线观看| 日韩成人黄色电影| 亚洲免费在线视频| 精品成人在线观看| 欧美超碰在线| AV天堂免费播放| 91大神网址| 中文有码在线| 江苏妇搡BBBB搡BBBB-百度| 豆花成人网站在线看| 亚洲视频一区二区三区四区娇小视频在线观看视频 | 午夜福利1000| 亚洲成人一区二区三区| 人妻久操| 先锋影音中文字幕| 99久久九九| 久久国产高清视频| 怡春院亚洲| 水蜜桃在线视频| 精品久久久久久亚洲| 国产乱子伦-区二区三区四区| 一区二区三区免费观看| av播播| 日韩久久电影| 亚洲性爱AV网站| 爆操欧美| av无码网站| 国产精品扒开腿| 色资源站| 久久婷婷五月综合| 另类TS人妖一区二区三区| 国产精品视频福利| A片久久久| 精品人妻一区二区三区阅读全文| 黄色午夜福利| 港澳日韩黄片| 国产一级A片免费视频| 超碰自拍私拍二区三区区| 99免费热视频在线| 国产又粗又长的视频| 噜噜噜噜射| 强伦轩人妻一区二区三区四区| 色男人的天堂| 大香蕉亚洲在线| www.五月婷婷| 欧美成人乱码一区二区三区| 亚洲中文字幕在线看| 91在线视频| 91污视频在线观看| 婷婷日韩一区二区三区| 黄色片网站视频| 日韩v在线| 99久久99久久99久久久99国产| 日韩免费中文字幕A片| 99热这里只有精品9| 亚洲熟妇在线观看一区二区| 97一区二区三区| 亚洲视频1区| 97日日| 女人18特级毛片。| 亚洲尤物在线| 成人自拍偷拍| 国产精品国产三级国产AⅤ中文 | 欧美性爱XXXX| 久久久久久久成人| 褒姒AV无玛| 91成人在线电影| 超碰久草| 亚洲91成人| 97久久精品国产熟妇高清网| 丝瓜污视频| 亚洲AV永久无码精品| 免费观看成人片| 亚洲爱爱网| 久久久97精品久久| 乱伦综合网| 淫乱骚穴| 天天看A片| 五月丁香啪啪啪| 欧美成人看片黄a免费看| 中文字幕一区在线观看| 久久国产精品精品国产色婷婷| 91在线精品一区二区| 伊人大香蕉婷婷| 波多野结衣成人在线| 激情婷婷色五月| 国精产品秘成人一区二| 91丨PORNY丨在线中文| 91精品丝袜久久久久久久久粉嫩| 中文字幕在线观看一区二区三区| 高h网站| 丰满人妻一区二区免费看| 91大香蕉视频| 国产亚洲视频完整在线观看| 国产精品秘久久久久久| 招土一级黄色片| 久久足交| 免费看日P视频| 日韩精品人妻中文字幕有| 天美果冻麻豆国产一区| 国产精品秘久久久久久一两个一起| 国产香蕉视频| 一级特黄录像免费播放下载软件| 插丰满少妇在线观看| 国产三级在线免费观看| 欧美国产日韩综合在线观看170| 中文字幕在线不卡视频| 老妇性BBWBBWBBWBBW | 日本成人A片| 黄色成人网站在线观看| 俺来射| 大草AV| 精品乱伦视频| 人人操干| A在线免费观看| 国产美女被| 成人三级片在线| 日韩蜜桃视频| 黑人Av| 黄片网站在线免费观看| 人人妻人人澡人人爽人人| 美女超碰| 日本a视频| 日本有码在线| 中文字幕乱码免费综合久久| 丁香五月六月婷婷| 安徽妇搡BBBB搡BBBB,另类老妇 | 麻豆AV免费看| 一区二区三区在线播放| 天堂a在线| 最新中文字幕观看| JLZZJLZZ亚洲女人| gogogo免费高清在线偷拍| 人人天天夜夜| 人人天天久久| 黄色视频网站免费| 好男人av| 国产牛牛在线| 亚洲精品一级二级三级| 亚洲天堂网2025| 一区二区三区无码在线观看| 影音先锋无码专区| 欧美999| 婷婷激情av| 三级无码AV| 婷久久| 影音先锋AV无码| 日韩人妻无码视频| 黄色成人视频免费看| 亚洲vs天堂vs成人vs无码| 国产中文在线观看| 国产精品免费人成网站酒店| 亚洲口爆| 亚洲大片在线观看| 五月丁香综合久久| 制服丝袜大香蕉| 动漫人物插画动漫人物的视频软件 | 91在线成人视频| 香蕉久久a毛片| 国产免费av网站| 亚洲无码电影在线观看| 中文字幕无码人妻在线视频| 西西西444www无码视频| 欧美成人a| 国产一区二三区| 超碰自拍私拍二区三区区| 熟女嗷嗷叫高潮合集91| 特黄一级A片| AV无码高清| 国产精品乱子伦| 九九九九九九国产| 免费AV片| 无码一区视频| 性做久久久久久久久| 丁香五月激情五月| 欧美日韩一区二区在线| 亚洲视频免费在线观看| 中文字幕在线网址| 国产性生活视频| 一区二区三区成人| 毛片毛片毛片毛片毛片| 欧美色图视频在线观看| 国产综合视频| 日产精品久久久久| 在线观看一区二区视频| 91免费小视频| 黄色三级av| 1024国产在线| 91香蕉国产| 在线观看视频无码| 久久草草热国产精| 日本免费黄色片| 在线国产福利| 日本无码片| www.97色色| 欧美日韩人妻| 国产老女人操逼视频| 国产黄色片在线观看| 黄色电影天堂| 国产精品欧美激情| av在线无码| 激情五月婷婷五月| 超碰在线观看免费版| 久久国产乱子伦精品免费女,网站| 日本狠狠操| 性爱A级视频| 波多野结衣高清无码| 久久亚洲免费视频| 日韩无码精品一区| 牛牛成人在线视频| 天天操天天干天天射| 91在线永久| 大鸡吧操逼| 天天射日日干| 超碰人人爱国产视| 久久伊人亚洲| 女侠吕四娘第二部| 一级片免费视频| 99re国产视频| 九九色在线视频| 欧美成人精品AAA| 丁香五月六月婷婷| 日韩中文无码电影| 欧美日韩狠狠操在线观看视频| 91亚洲一线产区二线产区| 人人搞人人操| 日本无码片| 天天干天天添| 亚洲无码高清一区| 熟女资源网| 亚洲精品国产精品乱码视99 | A片啪啪| 91香蕉国产在线观看| 日韩色| 99视频这里有精品| 成人免费视频网站| 秋霞精品一区二区三区| 激情五月丁香婷婷| 久久久蜜桃| 蜜桃久久精品成人无码AV| 乳揉みま痴汉电车羽月希免费观看 | 黄片免费播放| 国产亚洲99久久精品熟女| 色av影音先锋无吗一区| 天天噜| 黄色小说视频网站| 亚洲免费天堂| 国产三级片网| 久艹视频在线观看| 影音先锋在线视频| 成人亚洲综合| 炮友五月天| 无码网址| 亚洲激情综合网| 亚洲乱码中文字幕| 国产最新福利| 操逼91视频| 嫩BBB嫩BBB嫩BBBn嫩| 亚洲三级黄色视频| 无码免费在线观看视频| 五月天在线电影| 国产精品久久久久久久久| 五月天婷婷综合| 色老板最新地址| 国产精品高清网站| 日韩大片免费观看| 无码成人片| 夜夜撸网站| 精品码产区一区二亚洲国产| 三级成人av| 久久丁香五月婷婷五月天激情视频| 波多野结衣亚洲| 北条麻妃在线视频聊天| 日韩在线91| 亚洲中文字幕日韩在线| 在线观看视频一区| 亚洲高清AV| 内射视频在线免费观看| 丁香五月综合啪啪| 黄色性视频| 三级网站在线| 老司机无码视频| 黄色毛片一级| 刘玥精品国产一区二区三区| 欧洲无码一区二区三区| 欧美日本成人网站入口| 黄色小电影网站| 人成视频在线免费观看| 久久婷婷国产麻豆91天堂| 天天看高清无码| 在线观看三级网址| 一区二区三区AV| 乱子伦】国产精品| 波多野结衣无码高清视频| 最近日本中文字幕中文翻译歌词| 五月天福利网| 成人禁区| 嫩草人人精品免费| 51成人网| 国产一级女婬乱免费看| 51AV在线| 国产一级网站| 高清无码久久| 国产av探花| 久久女人| 91网站在线看| 色香蕉在线| 国产一级a毛一级a毛视频在线网站) | 久久久久久亚洲AV无码专区| www.日韩无码| 婷久久久| 人人天天久久| 欧美成人福利视频| 三级片在线看片AV| 午夜免费福利| 不卡的av| 日韩一区二区免费视频| 婷婷久久婷婷| 国产午夜精品一区二区三区牛牛| 色婷婷狠狠操| 好逼123| 91热99| 国产欧美一区二区精品性色超碰| www.911国产| ThePorn日本无码| 亚洲另类天堂| 亚洲乱伦小说网| 国产成人精品久久二区二区91| 国产精品无码成人AV电影| 日本黄色视频电影| 亚洲成人一区| 国产福利91精品一区二区三区| 成人国产精品视频| 巨爆乳肉感一区二区三区| 九九精品在线视频| 色视频免费观看| 热re99久久精品国产99热| 国产一毛a一毛a在线观看| 久草视频99| 久青草视频| 中文字幕在线观看亚洲| 国产一级a毛一级做a爱| 欧美超碰在线| 亚州av| 久久99精品久久久久久水蜜桃| 人人操人人摸人人爽| 欧美亚洲操逼视频| 91破处网站| 日本少妇激情视频| 四虎色情| 就操| 综合+++夜夜| 狠狠网| 国产精品AV在线| 西西444WWW无码大胆| 亚洲AV无码一区东京热久久| 999久久| 2019人人操| 久久婷婷婬片A片AAA| 广州媚黑妇系列视频在线| 国产精品在线免费| 乱伦乱伦乱伦中文字幕| 亚洲小电影在线观看| 国产又爽又黄视频| 无码中文暮| 大香蕉75| 亚洲色图偷拍| 欧美三P囗交做爰| 欧美日韩国产一区二区三区 | 韩国三级HD中文字幕2019年| 久久香蕉网| 精品视频一区二区三区| 性BBwBBwBBwBBw禽| 中文字幕乱码人妻二区三区| 欧美性爱无码| 国产色在线| 91人妻人人澡人人| 波多野结衣在线网站| 人妻体内射精一区二区三区| 东方AV在线免费观看| 北条麻纪无码视频| 午夜AV在线免费观看| 久久免费视频6| 国产无遮挡又黄又爽又色视频 | 91麻豆精品91久久久ios版| 中日韩在线| 激情五月天视频| 欧美人妻日韩精品| 久久色播| 四虎影院在线| 51妺嘿嘿午夜福利在线| 日日射天天干| 久久婷婷五月综合伊人| 成人午夜精品无码区| 亚洲欧美日韩动漫| 欧美成人福利在线观看| 欧美草逼网| 日韩免费精品视频| 日韩四区| 91免费网站在线观看| 亚洲www视频| 黄色成人在线观看视频| 黄色无码视频在线观看| 无码一区视频| 91亚洲精品视频在线| 北条麻妃在线一区二区| 国产中文字幕av| 国产青草视频| 三级片男人的天堂| 无码水蜜桃一区二区| 三级网站视频| 爱色五月| 一区二区三区四区精品视频| 日韩无码内射| 成年人视频在线免费观看| 亚洲高清无码视频在线| 超碰久操| www四虎com| 在线看片你懂的| 色婷婷视频在线播放| 成人视频在线观看免费| 五月激情综合| 在线无码免费观看| 亚洲精品欧美| 国产中文字幕在线| 老女人日逼| 亚洲二区后入极品| 有码在线播放| 天堂在线视频免费| 人妻人人妻| 黄色网址在线观看视频| 亚洲婷婷精品国产成人| 国产一级婬乱片免费| 国产A级毛片久久久久久| 91久久午夜无码鲁丝片久久人妻 | 国产亚洲激情| 中文字幕在线观看免费高清电影| 丁香五月婷婷色| 日本无码一区二区三区| 无码精品ThePorn| 欧美日韩一| 玩弄大乳乳妾高潮乳喷视频| 久久中文字幕电影| 人人操人人摸人人射| 不卡AV在线播放| 午夜精品久久久久久久99热精东| 动漫av网站| 亚洲国产视频一区| 无码爆操| 久草视频播放| 国产精品无码专区AV免费播放 | 99青草在线视频| 国产毛片欧美毛片高潮| 成年人免费黄色视频| 看免费操逼视频| 婷婷深爱激情| 久久探花| 三级片导航| 欧美亚洲一区二区三区| 成人视频无码| 亚洲精品免费视频| 蜜桃久久久亚洲精品| 国产成人精品二三区麻豆| 黄网站在线免费| 成人AV在线资源| 在线看片av| 黄色工厂这里只有精品| 日韩乱伦中文字幕| 亚洲va欧洲va国产va不卡| 久久久久久久精| 五月丁香花| 国产传媒视频| 日韩高清一区| 婷婷涩嫩草鲁丝久久午夜精品| 搡BBB搡BBBB搡BBBB| 天天撸在线视频| 欧美伊人大香蕉| 91在线无码精品秘国产| 亚洲色天堂网| 五月婷婷色色| 国产一级无码| 狠狠色婷婷| gogogo视频在线观看黑人| 日韩AV无码网站| 日韩在线高清视频| 人人弄人人| 国产无码高清在线观看| 99操逼网| 亚洲精品一二三| 永久免费一区二区| 国产成人无码一区二区| 黄色高清无码| 自拍成人视频| 毛片在线观看视频| 毛片视频免费观看| GOGO人体做爰大胆视频| 国产午夜男女性爱| 日本高清中文字幕| 国产精品无码不卡| 日韩日韩日韩| 91丝袜一区二区三区| 狼人狠狠干| 精品人妻一区二区三区-国产精品| 97超碰碰| 亚洲AV无码第一区二区三区蜜桃 | 欧美人人操| 久久狠| 美女操网站| 天天日天天综合| 亚洲免费视频一区| 天堂网AV在线| 亚洲日韩中字| 久久久精品欧美| 精品无码人妻一区二区| 国产女人18毛片精品18水| 高清无码在线观看视频| 久草福利视频| 豆花无码视频一区二区| 国产尤物在线观看| 日韩欧美成人片| 亚l洲视频在线观看| 国产真实乱婬A片三区高清蜜臀 | 国产又粗又大又爽91嫩草| 亚洲免费在线婷婷| 人妻懂色av粉嫩av浪潮av| 日韩1区2区| 欧美啊啊啊| 亚洲精品人妻在线| a免费视频| 婷婷五月天丁香| 韩日A片| 操美女的网站| 91丨九色丨老熟女探花| 一级片av| 北条麻妃91| 国产免费自拍| 成人一二区| 黄页网站视频| 免费伊人大香蕉| 91ThePorn国产| 免费黄片在线| 中文字幕2025年最好看电视剧| 亚洲天堂免费观看| 久久婷婷五月天| 日韩黄色视频在线观看| 日本一级黄色| 欧洲亚洲免费视频| 黄色视频视频| 国产成人一区二区三区A片免费| AV在线播放中文字幕| 国产秘精品区二区三区日本| av网站在线免费观看| 九色PORNY国产成人| 亚洲综合网站| 日韩小电影在线观看| 在线黄色视频网站| 亚洲视频高清无码| 成人视频免费网站| 99精品六月婷婷综合在线| 夜夜夜夜撸| 香蕉视频毛片| 天堂在线中文| 欧美爱爱网| 大肉大捧一进一出两腿| 超碰在线91| 亚洲性爱大全| 国产A片电影| 中文字幕不卡无码| 天天干天天干天天日| 青娱乐偷窥成| 久操国产视频| 日韩一级片免费观看| 西西4444www大胆无| 日韩性视频| 亚洲精品日日夜夜| 91爱爱·com| www.熟女| 久草福利在线| 黄色九九| 欧美亚洲综合手机在线| 天天搞搞| 2025最新国产成人精品| 国产精品二区高清在线苍井空| 天堂中文字幕在线观看| 在线观看AV无码| 天天操超碰| 欧美嗯啊| 在线一区二区三区四区| 最新中文字幕视频| 婷婷中文字幕亚洲| 一级黄色片免费| 夜夜操天天干| 久久无码免费| 精品丰满人妻一区二区三区免费观| JlZZJLZZ亚洲美女18| 五十路在线视频| 美日韩一区二区| 二区三区视频| 最近中文字幕中文翻译歌词| 午夜福利国产| 瑟瑟视频在线观看| 成人做爱免费看| 青娱乐| 西西西444www无码视| 68久久久| 亚洲精品无码更新| 熟女嗷嗷叫高潮合集91| 热热色| 日本一区二区精品| 国产午夜精品一区二区| 一起操在线| 老太奶性BBwBBw侧所| 色国产在线| 91视频久久久| 91夫妻交友视频| 欧美三级欧美三级三级| 日韩高清无码一区二区三区| 日韩欧美一级| 日韩av在线看| 久久综合伊人777777| 99精品免费视频| 强开小嫩苞毛片一二三区| 亚洲片在线观看| 欧美激情五月天| 丝袜东京热AV高清| 国产另类自拍| 日本黄色视频网| 亚洲最大的成人网站| 日日射人妻| 久久老女人| 69成人免费视频| 天天天天干| 51国产视频| 操比网| 久久久成人网| 米奇色色色| 99视频这里有精品| 一级黄色片免费看| 大香蕉99热| 成年人在线观看视频网站| 国产高清在线观看| 91视频大全| 婷婷五月精品| 少妇厨房愉情理伦BD在线观看| 暗呦网一区二区三区| 国产乱码精品一区二区三区的特点 | 无码任你操| 北条麻妃毛片| 91传媒在线观看| 伊人大香蕉在线网| 超碰性爱| 91午夜福利| 成人性爱视频在线| 99成人视频| np高辣调教视频| 色狠久| 国产成人AV在线播放| 吴梦梦md0069| 色婷婷18正码国产| 黄色AV天堂| 大香蕉伊人影视| 按摩性高湖婬AAA片A片中国| 密臀久久| 日韩黄色网| 北条麻妃中文字幕旡码| www国产精品| 国产A片免费视频| 久久久五月| 国产又粗又大| AV高清无码在线观看| 伊人中文在线| 香蕉国产AV| 骚逼综合网| 麻豆久久久|