1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        讓你的模型acc更上一層樓:優(yōu)化調(diào)參總結(jié)

        共 10468字,需瀏覽 21分鐘

         ·

        2021-11-19 16:30

        ↑ 點擊藍(lán)字?關(guān)注極市平臺

        作者丨FlyEgle
        來源丨GiantPandaCV
        編輯丨極市平臺

        極市導(dǎo)讀

        ?

        本系列主要探究哪些模型trick和數(shù)據(jù)的方法可以大幅度讓你的分類性能更上一層樓,本篇主要結(jié)合自身經(jīng)驗講解一些輔助訓(xùn)練的手段和技術(shù)。?>>加入極市CV技術(shù)交流群,走在計算機視覺的最前沿

        往期:讓你的模型acc更上一層樓:模型trick和數(shù)據(jù)方法總結(jié)

        二、Tricks

        本文主要分一下幾個方向來進行講解

        • 權(quán)重平均
        • 蒸餾
        • 分辨率

        2.1 權(quán)重平均

        由于深度學(xué)習(xí)訓(xùn)練往往不能找到全局最優(yōu)解,大部分的時間都是在局部最優(yōu)來回的晃動,我們所取得到的權(quán)重很可能是局部最優(yōu)的最差的那一個,所以一個解決的辦法就是把這幾個局部最優(yōu)解拿過來,做一個均值操作,再讓網(wǎng)絡(luò)加載這個權(quán)重進行預(yù)測,那么有了這個思想,就衍生了如下的權(quán)重平均的方法。

        1. EMA

        指數(shù)移動平均(Exponential Moving Average)也叫權(quán)重移動平均(Weighted Moving Average),是一種給予近期數(shù)據(jù)更高權(quán)重的平均方法。(PS: EMA是統(tǒng)計學(xué)常用的方法,不要以為是DL才有的,DL只是拿來用到了權(quán)重上和求bn的mean和std上)。

        公式如下:

        假設(shè)有n個數(shù):

        EMA: ,其中,表示前 條的平均值 ( ), 是加權(quán)權(quán)重值 (一般設(shè)為0.9-0.999)。

        這里的就是表示的是模型權(quán)重,則表示的是影子權(quán)重,影子權(quán)重不參與訓(xùn)練。

        代碼如下:

        class ModelEma(nn.Module):
        def __init__(self, model, decay=0.9999, device=None):
        super(ModelEma, self).__init__()
        # make a copy of the model for accumulating moving average of weights
        self.module = deepcopy(model)
        self.module.eval()
        self.decay = decay
        self.device = device # perform ema on different device from model if set
        if self.device is not None:
        self.module.to(device=device)

        def _update(self, model, update_fn):
        with torch.no_grad():
        for ema_v, model_v in zip(self.module.state_dict().values(), model.state_dict().values()):
        if self.device is not None:
        model_v = model_v.to(device=self.device)
        ema_v.copy_(update_fn(ema_v, model_v))

        def update(self, model):
        self._update(model, update_fn=lambda e, m: self.decay * e + (1. - self.decay) * m)

        def set(self, model):
        self._update(model, update_fn=lambda e, m: m)

        EMA的好處是在于不需要增加額外的訓(xùn)練時間,也不需要手動調(diào)參,只需要在測試階段,多進行幾組測試挑選最好偶的結(jié)果即可。不過是否真的具有提升,還是和具體任務(wù)相關(guān),比賽的話可以多加嘗試。

        2. SWA

        隨機權(quán)重平均(Stochastic Weight Averaging),SWA是一種通過隨機梯度下降改善深度學(xué)習(xí)模型泛化能力的方法,而且這種方法不會為訓(xùn)練增加額外的消耗,這種方法可以嵌入到Pytorch中的任何優(yōu)化器類中。

        具有如下幾個特點:

        • SWA可以改進模型訓(xùn)練過程的穩(wěn)定性;
        • SWA的擴展方法可以達(dá)到高精度的貝葉斯模型平均的效果,同時對深度學(xué)習(xí)模型進行校準(zhǔn);
        • 即便是在低精度(int8)下訓(xùn)練的SWA,即SWALP,也可以達(dá)到全精度下SGD訓(xùn)練的效果。

        由于pytroch已經(jīng)實現(xiàn)了SWA,所以可以直接使用,代碼如下:

        from torchcontrib.optim import SWA

        ...
        ...

        # training loop
        base_opt = torch.optim.SGD(model.parameters(), lr=0.1)
        opt = torchcontrib.optim.SWA(base_opt, swa_start=10, swa_freq=5, swa_lr=0.05)
        for _ in range(100):
        opt.zero_grad()
        loss_fn(model(input), target).backward()
        opt.step()
        opt.swap_swa_sgd()

        這里可以使用任何的優(yōu)化器,不局限于SGD,訓(xùn)練結(jié)束后可以使用swap_swa_sgd()來觀察模型對應(yīng)的SWA權(quán)重。

        SWA能夠work的關(guān)鍵有兩點:

        1. SWA采用改良的學(xué)習(xí)率策略以便SGD能夠繼續(xù)探索能使模型表現(xiàn)更好的參數(shù)空間。比如,我們可以在訓(xùn)練過程的前75%階段使用標(biāo)準(zhǔn)的學(xué)習(xí)率下降策略,在剩下的階段保持學(xué)習(xí)率不變。
        2. 將SGD經(jīng)過的參數(shù)進行平均。比如,可以將每個epoch最后25%訓(xùn)練時間的權(quán)重進行平均。

        可以看一下更新權(quán)重的代碼細(xì)節(jié):

        class AveragedModel(Module):
        def __init__(self, model, device=None, avg_fn=None):
        super(AveragedModel, self).__init__()
        self.module = deepcopy(model)
        if device is not None:
        self.module = self.module.to(device)
        self.register_buffer('n_averaged',
        torch.tensor(0, dtype=torch.long, device=device))
        if avg_fn is None:
        def avg_fn(averaged_model_parameter, model_parameter, num_averaged):
        return averaged_model_parameter + \
        (model_parameter - averaged_model_parameter) / (num_averaged + 1)
        self.avg_fn = avg_fn

        def forward(self, *args, **kwargs):
        return self.module(*args, **kwargs)

        def update_parameters(self, model):
        # p_model have not been done
        for p_swa, p_model in zip(self.parameters(), model.parameters()):
        device = p_swa.device
        p_model_ = p_model.detach().to(device)
        if self.n_averaged == 0:
        p_swa.detach().copy_(p_model_)
        else:
        p_swa.detach().copy_(self.avg_fn(p_swa.detach(), p_model_,
        self.n_averaged.to(device)))
        self.n_averaged += 1

        可以看到,相比于EMA,SWA是可以選擇如何更新權(quán)重的方法,如果不傳入新的方法,則默認(rèn)使用直接求平均的方法,也可以采用指數(shù)平均的方法。

        由于SWA平均的權(quán)重在訓(xùn)練過程中是不會用來預(yù)測的,所以當(dāng)使用opt.swap_swa_sgd()重置權(quán)重之后,BN層相對應(yīng)的統(tǒng)計信息仍然是之前權(quán)重的, 所以需要進行一次更新,代碼如下:

        opt.bn_update(train_loader, model)

        這里可以引出一個關(guān)于bn的小trick

        3. precise bn

        由于BN在訓(xùn)練和測試的時候,mean和std的更新是不一致的,如下圖:

        可以認(rèn)為訓(xùn)練的時候和我們做aug是類似的,增加“噪聲”, 使得模型可以學(xué)到的分布變的更廣。但是EMA并不是真的平均,如果數(shù)據(jù)的分布差異很大,那么就需要重新計算bn。簡單的做法如下:

        • 訓(xùn)練一個epoch后,固定參數(shù)
        • 然后將訓(xùn)練數(shù)據(jù)輸入網(wǎng)絡(luò)做前向計算,保存每個step的均值和方差。
        • 計算所有樣本的均值和方差。
        • 測試。

        代碼如下:

        def update_bn_stats(args: Any, model: nn.Module, data_loader: Iterable[Any], num_iters: int = 200  # pyre-ignore
        ) -> None:
        bn_layers = get_bn_modules(model)
        if len(bn_layers) == 0:
        return
        momentum_actual = [bn.momentum for bn in bn_layers]
        if args.rank == 0:
        a = [round(i.running_mean.cpu().numpy().max(), 4) for i in bn_layers]
        logger.info('bn mean max, %s', max(a))
        logger.info(a)
        a = [round(i.running_var.cpu().numpy().max(), 4) for i in bn_layers]
        logger.info('bn var max, %s', max(a))
        logger.info(a)
        for bn in bn_layers:
        bn.momentum = 1.0
        running_mean = [torch.zeros_like(bn.running_mean) for bn in bn_layers]
        running_var = [torch.zeros_like(bn.running_var) for bn in bn_layers]

        ind = -1
        for ind, inputs in enumerate(itertools.islice(data_loader, num_iters)):
        with torch.no_grad():
        model(inputs)

        for i, bn in enumerate(bn_layers):
        # Accumulates the bn stats.
        running_mean[i] += (bn.running_mean - running_mean[i]) / (ind + 1)
        running_var[i] += (bn.running_var - running_var[i]) / (ind + 1)
        if torch.sum(torch.isnan(bn.running_mean)) > 0 or torch.sum(torch.isnan(bn.running_var)) > 0:
        raise RuntimeError(
        "update_bn_stats ERROR(args.rank {}): Got NaN val".format(args.rank))
        if torch.sum(torch.isinf(bn.running_mean)) > 0 or torch.sum(torch.isinf(bn.running_var)) > 0:
        raise RuntimeError(
        "update_bn_stats ERROR(args.rank {}): Got INf val".format(args.rank))
        if torch.sum(~torch.isfinite(bn.running_mean)) > 0 or torch.sum(~torch.isfinite(bn.running_var)) > 0:
        raise RuntimeError(
        "update_bn_stats ERROR(args.rank {}): Got INf val".format(args.rank))

        assert ind == num_iters - 1, (
        "update_bn_stats is meant to run for {} iterations, "
        "but the dataloader stops at {} iterations.".format(num_iters, ind)
        )

        for i, bn in enumerate(bn_layers):
        if args.distributed:
        all_reduce(running_mean[i], op=ReduceOp.SUM)
        all_reduce(running_var[i], op=ReduceOp.SUM)
        running_mean[i] = running_mean[i] / args.gpu_nums
        running_var[i] = running_var[i] / args.gpu_nums
        bn.running_mean = running_mean[i]
        bn.running_var = running_var[i]
        bn.momentum = momentum_actual[i]

        if args.rank == 0:
        a = [round(i.cpu().numpy().max(), 4) for i in running_mean]
        logger.info('bn mean max, %s (%s)', max(a), a)
        a = [round(i.cpu().numpy().max(), 4) for i in running_var]
        logger.info('bn var max, %s (%s)', max(a), a)

        2.2 蒸餾

        模型蒸餾是一個老生常談的話題了,不過經(jīng)過實驗以來,蒸餾的確是一個穩(wěn)定提升性能的技巧,不過這里的性能一般是指小模型來說。如果你的任務(wù)是不考慮開銷的,直接懟大模型就好了,蒸餾也不需要。但是反之,如果線上資源吃緊,要求FLOPs或者Params,那么蒸餾就是一個非常好的選擇。

        舉個例子,以前每次學(xué)渣考試都是60分,學(xué)霸考試都是90分,這一次學(xué)渣通過抄襲學(xué)霸,考到了75分,學(xué)霸依然是90分,至于為什么學(xué)渣沒有考到90分,可能是因為學(xué)霸改了答案也可能是因為學(xué)霸的字寫的好。那么這個抄襲就是蒸餾,但是學(xué)霸的知識更豐富,所以分?jǐn)?shù)依然很高,那這個就是所謂的模型泛華能力也叫做魯棒性。

        簡而言之,蒸餾就是使得弱者逼近強者的手段。這里的弱者被叫做Student模型,強者叫做Teacher模型。

        使用蒸餾最好是同源數(shù)據(jù)或者同源模型,同源數(shù)據(jù)會防止由于數(shù)據(jù)歸納的問題發(fā)生偏置,同源模型抽取信息特征近似,可以更好的用于KL散度的逼近。

        蒸餾過程

        • 先訓(xùn)練一個teacher模型,可以是非常非常大的模型,只要顯存放的下就行,使用常規(guī)CrossEntropy損失進行訓(xùn)練。
        • 再訓(xùn)練一個student模型,使用CrossEntropy進行訓(xùn)練,同時,把訓(xùn)練好的teacher模型固定參數(shù)后得到logits,用來與student模型的logits進行KL散度學(xué)習(xí)。

        KL散度是一種衡量兩個分布之間的匹配程度的方法。定義如下:

        其中,是近似分布,是我們想要用匹配的真實分布。如果兩個分布是完全相同的,那么KL為0,KL 散度越小,真實分布與近似分布之間的匹配就越好。

        KL散度代碼如下:

        class KLSoftLoss(nn.Module):
        r"""Apply softtarget for kl loss

        Arguments:
        reduction (str): "batchmean" for the mean loss with the p(x)*(log(p(x)) - log(q(x)))
        """
        def __init__(self, temperature=1, reduction="batchmean"):
        super(KLSoftLoss, self).__init__()
        self.reduction = reduction
        self.eps = 1e-7
        self.temperature = temperature
        self.klloss = nn.KLDivLoss(reduction=self.reduction)

        def forward(self, s_logits, t_logits):
        s_prob = F.log_softmax(s_logits / self.temperature, 1)
        t_prob = F.softmax(t_logits / self.temperature, 1)
        loss = self.klloss(s_prob, t_prob) * self.temperature * self.temperature
        return loss

        這里的temperature稍微控制一下分布的平滑,自己的經(jīng)驗參數(shù)是設(shè)置為5。

        2.3 分辨率

        對于分類問題,訓(xùn)練和推理的分辨率是有一定程度的關(guān)系的,這個跟我們數(shù)據(jù)增強的時候采用的resize和randomcrop也有關(guān)系。一般的時候,訓(xùn)練采用先crop到256然后resize到224,大概是0.875的一個比例的關(guān)系,不管最終輸入到cnn的尺寸多大,基本上都是保持這樣的一個比例關(guān)系,resize_size = crop_size * 0.875。

        那么推理的時候是否如此呢?

        在自己的業(yè)務(wù)數(shù)據(jù)集上實測結(jié)果如上表,可以發(fā)現(xiàn)測試的時候?qū)嶋H有0.7的倍率關(guān)系會達(dá)到最好的效果,再大精度就會下降。但是如果訓(xùn)練的尺寸越大,實際上測試增加分辨率帶來的提升就越小。

        那么有沒有什么簡單的方法可以有效的提升推理尺寸大于訓(xùn)練尺寸所帶來的收益增幅呢?

        FaceBook提出了一個簡單且實用的方法FixRes,僅僅需要在正常訓(xùn)練的基礎(chǔ)上,F(xiàn)inetune幾個epoch就可以提升精度。

        如上圖所示,雖然訓(xùn)練和測試時的輸入大小相同,但是物體的分辨率明顯不同,cnn雖然可以學(xué)習(xí)到不同尺度大小的物體的特征,但是理論上測試和訓(xùn)練的物體尺寸大小接近,那么效果應(yīng)該是最好的。

        代碼如下:

        """
        R50 為例子,這里凍結(jié)除了最后一個block的bn以及fc以外的所有參數(shù)
        """
        if args.fixres:
        # forzen others layers except the fc
        for name, child in model.named_children():
        if 'fc' not in name:
        for _, params in child.named_parameters():
        params.requires_grad = False

        if args.fixres:
        model.eval()
        model.module.layer4[2].bn3.train()

        # data aug for fixres train
        if self.fix_crop:
        self.data_aug = imagenet_transforms.Compose(
        [
        Resize(int((256 / 224) * self.crop_size)),
        imagenet_transforms.CenterCrop(self.crop_size),
        imagenet_transforms.ToTensor(),
        imagenet_transforms.Normalize(mean=self.mean, std=self.std)
        ]
        )

        訓(xùn)練流程如下:

        • 先固定除了最后一層的bn以及FC以外的所有參數(shù)。
        • 訓(xùn)練的數(shù)據(jù)增強采用推理的增強方法,crop尺寸和推理大小保持一致。
        • 用1e-3的學(xué)習(xí)率開始進行finetune。

        當(dāng)然,如果想要重頭使用大尺寸進行訓(xùn)練,也可以達(dá)到不錯的效果,F(xiàn)ixRes本身是為了突破這個限制,從尺寸上面進一步提升性能。

        三、總結(jié)

        • EMA, SWA基本上都不會影響訓(xùn)練的速度,還可能提點,建議打比賽大家都用起來,畢竟提升0.01都很關(guān)鍵。做業(yè)務(wù)的話可以不用太care這個東西。
        • precise bn, 如果數(shù)據(jù)的分布差異很大的話,最好還是使用一下,不過會影響訓(xùn)練速度,可以考慮放到最后幾個epoch再使用。
        • 蒸餾,小模型都建議使用,注意一下調(diào)參即可,也只有一個參數(shù),多試試就行了。
        • FixRes,固定FLOPs的場景或者想突破精度都可以使用,簡單有效。

        參考

        • https://pytorch.org/blog/stochastic-weight-averaging-in-pytorch/
        • https://zhuanlan.zhihu.com/p/68748778
        • https://arxiv.org/abs/1906.06423

        下一篇簡單講講數(shù)據(jù)怎么處理可以提升我們的模型的性能~


        如果覺得有用,就請分享到朋友圈吧!

        △點擊卡片關(guān)注極市平臺,獲取最新CV干貨

        公眾號后臺回復(fù)“transformer”獲取最新Transformer綜述論文下載~


        極市干貨
        課程/比賽:珠港澳人工智能算法大賽保姆級零基礎(chǔ)人工智能教程
        算法trick目標(biāo)檢測比賽中的tricks集錦從39個kaggle競賽中總結(jié)出來的圖像分割的Tips和Tricks
        技術(shù)綜述:一文弄懂各種loss function工業(yè)圖像異常檢測最新研究總結(jié)(2019-2020)


        #?CV技術(shù)社群邀請函?#

        △長按添加極市小助手
        添加極市小助手微信(ID : cvmart4)

        備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測-深圳)


        即可申請加入極市目標(biāo)檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術(shù)交流群


        每月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與?10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~



        覺得有用麻煩給個在看啦~??
        瀏覽 107
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            亚洲无码人妻一区| 欧洲成人午夜精品无码区久久| 亚洲中文字幕在线无码| 91人妻一区二区三区| 人人插人人摸| 五月丁香激情在线| 淫荡97| 中文字幕无码在线播放| 欧美群交在线观看| 青青草原网站在线观看| 青青草原国产视频| 日韩AV免费网站| 超碰自拍私拍二区三区区| 操b在线观看| 爱爱成人视频| 夜夜撸天天日| 精品国产乱子伦一区二区三区,小小扐 | 人人爱人人摸| 久久久久久网站| 亚洲午夜福利电影| 亚洲日韩中字| 91精品国产综合久久久蜜臀主演| 一区二区无码精品| 中文字幕免费观看视频| 鲁一鲁在线视频| 超碰碰人人| 亚洲一二三四| 在线毛片网站| 91香蕉视频免费在线观看| 国产精品久久在线| 波多野结衣被操| 日本高清版色视频| 亚洲成人一区二区三区| 一本一道无码| 亚洲AV无码成人| 91av在线免费播放| 五月丁香激情六月| 91在线无码精品秘网站| 熊猫视频91| 你懂的在线视频| 国产无遮挡又黄又爽又色学生软件 | 免费在线黄片| 少妇一区二区三区| 神马午夜福利视频| 你懂的视频在线| 嫩草亚洲小泬久久夂| 国产精品V亚洲精品V日韩精品| 爱搞搞就要爱搞搞| 激情网站免费| 国产乱码精品一区二区三区的特点| 操逼网123| 亚洲视频一区二区| 91九色在线观看| 精品成人无码| 凹凸熟女凹凸BBWBBW| 欧美人妻中文字幕| 综合狠狠| 国产精品aaa| 国产高清毛片| 日韩高清久久| 亚洲欧美精品AAAAAA片| 蜜桃av秘无码一区二区三| youjizzcom日本| 一本大道香蕉av久久精东影业| 国产天天操| www.91av| 欧美操屄视频| 江苏妇搡BBBB搡BBBB-百度| AV无码在线播放| 无码伦理| 大香蕉国产在线视频| 九九精品免费视频| 中文资源在线a| 午夜福利h| 久月婷婷| 欧美日韩伊人| 日韩av中文字幕在线播放| 精品欧美激情精品一区| 九九成人视频| 影音先锋日韩资源| 伊人导航| 中国操逼网| 91精品电影18| 爽好紧别夹喷水欧美| 精品在线播放| 天天爱天天操| 日本女优婷婷青青草原| 91鸡巴| 自拍无码视频| 日韩精品毛片一区二区视频免费| 午夜老湿机| 色色亚洲| 西西人体WW大胆无码| 免费的黄色视频| 国产XXXXX| 免费黄色视频大全| 一区二区三区在线免费观看| 久久大| 麻豆成人无码精品视频| 无码四区| 日本边摸边吻奶边做爰| 三级片男人的天堂| 国产精品久久久999| 日本视频一区二区| 啪啪视频最新地址发布页| 国产一级a毛一级a做免费图片| 亚洲免费黄色电影| 欧美激情网址| 亚洲午夜AV久久乱码| 欧美一卡二卡| 日日夜夜老司机| 少妇白浆| 国产人人爽| 欧美性交一区二区| 激情五月天婷婷| 日本一级按摩片免费观看| 肏少妇女情人大骚逼直播一区二区| 永井玛丽亚av无码中出流出 | 思思热在线视频精品| 日本免费在线观看视频| 黄色av网站免费| 秋霞理伦| 91三级片网站| 亚洲AV无码成人精品久久久| 人人澡av| 天天天日天天天天天天天日歌词| 九九韩剧网最新电视剧免费观看| 豆花视频免费观看| 九九九中文字幕| 黄片视频网站| 亚洲影音| 中文字幕高清无码免费视频| 亲子乱AV一区二区| 强伦人妻一区二区三区视频| 黄总AV| 码人妻免费视频| 久久久久性爱| H片在线免费观看| 婷婷五月天中文字幕| 成人做爰100片免费看| 亚洲综合免费| av在线小说| 国产高潮又爽又无遮挡又免费| 五月天精品| 欧美XXX黑人XYX性爽| 奇米色色色| 自拍偷拍网站| 操一炮在线视频| 亚洲精品鲁一鲁一区二区三区 | 国产高清无码在线| 日日夜夜老司机| 日韩在线观看视频免费| 好好日视频| 日韩色情在线| av片在线观看| 国产成人av在线播放| 99性爱视频| 久久双飞| 成年人免费毛片| 亚洲天堂视频在线播放| 伊人视频在线| 婷婷五月香| 日韩做爱视频| 影音av在线| 欧美性xxxxx| 亚洲色色色| 高清无码波多野结衣| 先锋影音资源av| 黄片免费网站| 午夜亚洲AV永久无码精品麻豆| 国产在线1| 国产精品揄拍100视频| 国产黄色免费乱伦片| 操逼视频在线免费观看| 美女黄色视频永费在线观看网站| 自拍偷拍1| 一区二区三区无码区| 亚洲人成免费| 五月综合久久| 日韩精品一区二区三区免费观看高清 | 操夜夜操| 丰滿人妻一区二区三区| 一本之道高清数码大全| 日本熟妇无码一区二区| 天天超碰| 最新无码视频| 午夜毛片| 成人免费无码激情AV片| 日本亚洲中文字幕| 一级片视频在线观看| 日本黄色视频在线| 波多野结衣vs黑人巨大| 黄色一级大片在线免费看国产| 亚洲乱伦电影| 成人一级视频| 亚洲无码一级电影| 国产一级黄色大片| 91大香蕉视频| 丁香六月天| 羞羞色院91蜜桃| 91在线无码精品秘软件| 国产日本在线观看| 日逼电影网| 欧美日韩国产在线| 大逼影院| 亚洲高清无码网站| 亚洲天堂综合网| 久久久国产视频| av免费观看网站| 影音先锋成人在线资源| 中文字幕一区二区三区四区五区六区 | 亚卅无码| 草久在线视频| 欧美日韩群交| 在线成人自拍| www.狠狠爱| 黄色片在线免费看| 久久双飞| 无码五区| 91成人| 天天射综合| 一级草逼| 高清无码网址| 日韩精品123| 色婷婷久久久久swag精品| 一区二区三区在线视频观看| 任我操在线视频| 免费的av| 久久精品性爱| 美女极度色诱图片www视频| 欧美国产精品一二三产品在哪买 | 亚洲精品一区二区三区蜜桃| 欧美成a| 亚洲涩情91日韩一区二区| 伊人干综合| 高清无码爱爱| 婷婷国产成人精品视频| 成人免费视频国产免费麻豆, | 亚洲丁香五月激情| 在线免费中文字幕| 无码xx| 一级香蕉视频| 91AV| 国产欧美综合在线三区| 亚洲国产精品VA在线看黑人| 国产夫妻精品| 婷婷色777777| 国产成人精品无码片子的价格| 无码成人AV| 日韩城人网站| 成人无码影院日韩,成人年…| 日韩毛片在线播放| 久久久一区二区三区四区免费听 | 91丨九色丨熟女新版| 国产在线第一页| 亚洲视频欧洲视频| 国产精品久久久久久久久久久久久久久| 国产一级a爱做片免费☆观看| 国产日本在线视频| www.日韩一区| 丰满的人妻一区二区三区果冻| 手机AV免费| 亚洲一区二区三区在线播放| 国产爱搞| 亚洲欧美日韩在线| 欧美成人性爱图片| 黄色一级网站| 日韩精品无码人妻| 久操无码| 久久久久国产一区二区三区四区| 91精品久| 无码人妻一区二区三区线花季传件| 国内自拍2025| 高清无码网址| 伊人激情网| 天天A片| 高清无码自拍| 日韩A片免费| 性爱小说视频| 成人在线免费视频观看| 啪啪啪网址| A片视频免费观看| 大香蕉综合网| 影音先锋av成人电影| 在线激情| 国产精品亚洲一区| 九九在线观看视频| 逼特逼| 国产精品国产精品国产专区不52| 大荫蒂HD大荫蒂视频| 一级黄A片| 欧美成人高清视频| 免费无码视频| 色777网站| 亚洲理论片| 手机看片1024久久| 8x8x黄色| 青草大香蕉| 强开小嫩苞一区二区三区网站| 日本草逼视频| 亚州性爱| 亚洲国产中文字幕| 肉色超薄丝袜脚交一区二区 | 中文字幕在线观看日本| 麻豆三级电影| 亚洲成人网站免费观看| 国精品91无码一区二区三区在线 | 特级西西444www高清大胆免费看 | 青娱乐超碰| 精品人妻一区二区免费蜜桃 | 国产乱子伦一区二区三区免看| 国产成人免费在线观看| 婷婷V亚洲V丁香月天V日韩V | 欧美狂操| 国产91在线中日| 人人妻人人玩人人澡人人爽| 国产成人一区| 成人无码精品亚洲| 国产福利av| 艹逼视频| 婷婷av在线| 色情五月婷婷| 欧美人妻少妇| 日本天堂网站| 中文字幕视频在线播放| 草碰在线视频| 成人毛片在线播放| 久久无码成人| 日日干综合| 成人区123| 河南乱子伦视频国产| 乱伦自拍| 欧美精产国品一二三区别| 免费看a| 日本一级特黄大片AAAAA级| 日屄视频在线观看| 国产一级二级片| 天天干天天操天天干| 91视频福利| 大香蕉三级片| 99久久大香蕉| 国产性爱av| 91色| 成人黄色A片| 无码一区二区黑人猛烈视频网站 | 精国产品一区二区三区A片| 91欧美精品| 日韩AV无码专区亚洲AV紧身裤| 久久久噜噜噜| 亚洲成人人妻| 青春草在线视频观看| 91宗合| 日韩一级电影在线观看| 成人做爱黄片| 亚洲国产一| 欧美日韩第一页| 翔田千里在线一区二区三区| 天天干天天日天天色| 国产免费网址| 99热这里只有精品1| 人妖无码| 色色热| 国产黄片在线播放| 北条麻妃二区| 国产3p绿帽骚妻视频| 精品人妻一区二区免费蜜桃视频| www.青草视频| 国产性爱AV| 国产成人自拍偷拍视频| 少妇做爱视频| 天天天天天天天天操| 精品91美女| 97人妻天天摸天天爽天天| 亚洲AV一二三| 日韩欧美精品在线观看| 女人18片毛片60分钟翻译| 久久视频免费观看| 小草一区| 日韩国产在线| 日本一区二区三区视频在线观看| 91人人妻人人澡人人爽| 久久久久久久久久久国产精品 | 青春草在线观看视频| 天天看高清无码| 欧美性爱中文字幕| 粉嫩小泬粉嫩小泬在线| 操杨幂| 成人激情综合| 蜜臀av一区| 不卡中文字幕| 欧美操逼在线观看| 无码精品一区| 黄色电影网站在线观看| 人人爱人人爽人人操| 激情五月丁香五月| 免费黄视频在线观看| 亚洲一区二区成人网站戴套| 色吧| 免费黄片无码| 狠狠天天| 免费黄色av网址| 久9热| 在线看一区| 国内自拍青青| 草逼的视频| 欧美内射在线| 91欧美| 亚洲高清无码在线免费观看| 色五月亚洲| 欧美在线一区二区| Av毛片| 少妇无码一区| 91av在线免费观看| 国产熟女在线| 羞羞色院91蜜桃| 97久久人人| re久久| 123操逼| 人人鲁人人操| 2025天天操夜夜操| 黑人丰满大荫蒂| av在线一区二区三区| 久久人妻无码中文字幕系列| 无码毛片一区二区三区人口| 精品国内视频| 另类老妇奶性生BBwBB| 欧美高清视频| 国产精品自在线| 亚洲成人黄色| 五月婷婷六月香| 国产女人水真多18毛片18精品| 中文字幕日本| 黄色A片电影| 在线免费亚洲| 日韩黄色电影网站| 婷婷五月欧美| 小小拗女BBw搡BBBB搡| 欧美日本在线| 一级a免一级a做免费线看内裤的注意事项 | 十八禁在线播放| 翔田千里中文字幕无码| 日韩美毛片| 亚洲免费视频播放| 黄色大片在线| 成人做爰100部片视频| 影音先锋日韩资源| 天堂在线观看av| 黄色一级爱爱| 日韩人妻一区二区三区| 麻豆精品一区二区| 免费看V片| 天天爽日日澡AAAA片| 色射网| 免费国产精品视频| 天堂在线视频| 翔田AV无码秘三区| jizz免费在线观看| 人人操人人爽人人爱| 伊人自拍| 国产精品视频无码| 无码高清18| 亚洲va在线va天堂va偷拍| 性欧美69| 一级大香蕉| 国产精品毛片A√一区| 大香蕉在线精品视频| 久久久精品久久久| 国产美女激情视频| 伊人在线| 一本色道久久综合狠狠躁的推荐 | 大香蕉亚洲在线| 理论三级片| 男女啪啪免费网站| 狠狠躁日日躁夜夜躁A片小说免费| 久久精品性爱| 欧美成人一区二区三区| 日韩一区在线视频| 青春草在线播放| 国产主播av| 成人性生活免费视频| 国产欧美日韩一区二区三区| 久久久精品一区| 吴梦梦《女教师时间暂停》| 免费一级黄色| 中文在线观看免费视频| 成人片网站在线观看| 91精品又粗又猛又爽| 免费一级无码成人片| 午夜福利站| 男人操女人网站| 99热8| www.色悠悠| 操逼网五月天| 男女做爱无码| 91网站18| 亚洲综合免费观看高清| 99国产热| 人人妻人人躁人人DVD| 欧美性爱操逼视频| 丁香五月中文字幕| 97人妻天天摸天天爽天天| 97干网| 午夜三级视频| 亚洲AV无码国产精品| 亚洲无码精品在线观看| 亚洲AV秘成人久久无码海归| а√天堂中文官网8| 玩弄大乳乳妾高潮乳喷视频| 小黄片在线| 九九福利| 天天草av| 亚洲A片免费看| 高清无码免费在线观看| 三级无码片| 亚洲无码一区二区三| 欧美日韩中国操逼打炮| av免费播放| 三级午夜在线无码| 边添小泬边狠狠躁视频| 六月天av| 一区二区三区欧美| 五月婷婷色色| 九九精品在线观看| 一区二区无码av| 山东乱子伦视频国产| 撸一撸成人在线做爱视频。| 日本精品一区二区三区四区的功能 | 麻豆人妻换人妻好紧| 岛国无码在线| 国产无套内射视频| 蜜桃人妻无码| 一区二区三区小视频| 亚洲天堂在线视频| 精品婷婷| 国产一级操逼视频| 久久一二三四| 青青草原免费在线视频| 日韩一区二区免费看| 日日夜夜精品| 99热18| 91网站免费| 人人妻人人玩人人澡人人爽| 欧美操逼在线观看| 日韩视频免费观看高清完整版在线观 | 日韩欧美高清| 老欧性老太色HD大全| av片在线观看| 欧美性爱导航| 91视频高清无码| 亚洲最新AV在线| 日韩无码人妻一区二区三区| 青娱乐亚洲视频| 亚洲精品乱码久久久久久蜜桃91| 黄色电影a片| 国产久久久久久久久| 成年人激情网| 一级免费黄片| 欧美性爱小说网| 日韩免费视频观看| 夸克看成人片一级A片| 日韩黄色免费网站| 日韩在线视频不卡| 大香蕉一级红色片青青河边草| 欧美日韩激情| 人人骚| 91麻豆精品国产| 草草影院国产第一页| 天天草av| 99热青青| 岛国av无码免费| 九九精品12| 97色色网| 亚洲va国产va天堂va久久| A级片在线观看| 西西人体大胆裸体A片| 99久热在线精品视频| 国产在线97| 日本一级婬片A片免费播放一| 可以免费观看的AV| 中文字幕精品在线免费视频观看视频 | 亚洲成人一区二区三区| av无码网站| 日韩成人无码电影| 欧美成人黄色A片| 日本色电影在线观看| 日韩高清成人无码| 99精品国产热久久91色欲| 永久免费黄色视频网站| 蜜桃网一区二区| 国产人妻一区二区三区欧美毛片| 91在线精品秘一区二区黄瓜| www.91爱爱,com| www.超碰在线| 大香蕉av在线观看| 国产日韩欧美在线播放| 精品无码一区二区三区的天堂| 久久熟妇| 日本道在线视频| 91高潮久久久久久久| 996热re视频精品视频这里| 蜜桃av无码| 免费AV观看| xiuxiuav| 丝袜人妻被操视频| 欧美色图15p| 91精品久久久久久久| 自拍偷拍视频网址| 国产欧美精品一区二区| 一级av片| AV黄色在线观看| 日韩精品免费观看| 超碰97在线免费| 中日韩特黄A片免费视频| 欧美成人大片| 欧美操逼在线| 黄色无码视频在线观看| 99精品视频免费在线观看| 日皮视频| 99色色| 国产精品一二三区| 精品乱子伦一区二区三区| 黄色成人网站免费在线观看| 视频二区中文字幕| 黄色特级毛片| 黄色电影网站在线观看| 99热在线只有精品| 无码专区中文字幕| 五十路老国产| 久操伊人大香蕉| 久久久一区二区三区四曲免费听| 国产小视频在线| 狠狠躁日日躁夜夜躁A片无码视频| 国产中文字幕视频| 人妻免费视频| 干片网| 97人妻精品一区二区三区| 久久精品成人电影| 精品不卡| 黄色网在线| 色伊人| 北条麻妃二区| 成人毛片18女人毛片| 欧美草逼视频| 日韩十八禁| 99热18| 欧美色道| 国产AV天堂| 久久三级电影| 超碰精品| 性爱无码视频| 懂色Av| 杨晨晨不雅视频| 日本欧美在线观看高清| 国产欧美一区二区三区视频| 无码任你躁久久久久| 中文字幕不卡AV在线观看| 日韩大尺度Av| 免费的黄色录像| 久久久999精品视频| 久久人人网| 国产一区免费观看| 好爽~要尿了~要喷了~同桌| 性欧美丰满熟妇XXXX性久久久| 免费视频一二区| 日本大香蕉在线视频| 一级片操逼| AV在线资源观看| 男人天堂无码视频| 国产一区二区视频在线| 亚洲欧美久久久| 国产精品美女久久久久AV爽| 超碰伊人大香蕉| 一级a免一级a做免费线看内祥| 四虎成人无码| 亚洲AV无一区二区三区久久| 国产女人18毛片水18精| 黄色成人网站在线播放| 肉乳无码A片av| 日本少妇无码| 熟女人妻人妻の视频| 一区不卡| 午夜小电影| 欧美级毛片高潮| 午夜日韩乱伦| 美女少妇激情BBBB| 欧美三级视频在线| 人妻爽爽| 欧美国产综合在线| 91香蕉网| 日韩一级黄色毛片| 欧美一级性爱视频| 国产成人无码区免费AV片在线| 亚洲免费黄色| 精品无码一区二区三| 大香蕉视频在线观看| 成人片成人网久久蜜桃臀| 天天日天天干麻豆| 一级成人视频| 亚洲中文AV在线| 欧美污视频在线观看| 久热免费视频在线观看| 一区二区无码精品| 另类老太婆性BBWBBw| 亚洲无码精品在线观看| 国产日皮视频| 大香蕉福利视频| 日韩TV| 超碰中文在线| 成人免费一级视频| 无码波多野结衣| 成人精品免费无码毛片| 久久精品视频网站| 中文字幕日韩高清| 99在线精品视频免费观看软件| 蜜桃免费视频| 亚洲无码影视| 亚洲高清无码播放| 大色鬼在线天堂精品| 有码视频在线观看| 久久婷婷国产麻豆91天堂| 日韩欧美国产成人| 久久国产成人| 六月激情| 黄色无無| 狼人综合影院| 91人人妻人人澡人人爽人人精品 | 俺去| 在线大香蕉| 天堂在线视频| 91麻豆国产福利精品| 欧美日韩中文视频| V天堂| 高h网站| 久草加勒比| 毛片国产| AV成人| 亚洲a在线视频| 日韩无码AV中文字幕| 毛片网站免费| 91麻豆精品91久久久ios版| 国产成人精品三级麻豆| 婷婷综合在线| 性饥渴欧美老妇XXXXX| 免费A片在线| 影音先锋在线视频观看| 自拍做爱视频| 人人操在线播放| 欧美精品久久久久久久多人混战| 综合天堂网| 麻豆视频在线播放| 超碰97在线精品国产| 99re免费视频| 一区二区三区高清无码| 另类AV| 一级a片在线免费观看| 91视频福利| A黄色视频| 欧美日本国产| 69超碰| 成人网一区二区| 亚洲综合中文字幕在线播放| 亚洲大片在线观看| 在线观看免费无码| 中文无码熟妇人妻AV在线| 天天视频色版免费观看视频| 欧美18禁| 国产乱子伦无码视频免费| 18禁激韩| 91人妻人人澡| 韩国AV三级| 日韩三级麻豆| 色婷婷久综合久久一本国产AV| 日本一区免费| 九九九精彩视频| 欧美色大香蕉| 激情五月天激情网| 中文字幕在线播放视频| 日本黄在线观看| 99中文字幕| 麻豆91精品91久久久停运原因| 黄色AV免费观看| 色999日韩| 无码精品人妻一区二区三刘亦菲| 中文午夜福利| 精品一本道| 大香蕉免费网站| 午夜福利在线视频| 中文字幕在线视频观看| 午夜精品久久久久久久久无码99热 | 国精产品乱码一区一区三区四区| 操逼视频国产91| 成人永久免费视频| 婷婷五月六月丁香| 欧美一页| 瘦精品无码一区二区三区四区五区六区七区八区 | 丰满人妻一区二区三区Av猛交| 激情另类视频| 手机看片1024旧版| 日本日韩欧美| 又粗又硬又爽18级A片| 人人摸人人看人人草| 中文字幕2025年最好看电视剧| 精品福利视频导航| 国产成人片色情AAAA片| 国语一区| 东北女人操逼视频| 无码人妻一区二区三区| 444444免费高清在线观看电视剧的注意 | 激情五月综合| 东京亚洲无码| 欧美成人中文字幕在线| 中文字幕人妻互换av久久| 岛国AV在线| 高清无码一区二区在线| 国产成人AV免费无码| 久久免费视频精品| 国产一区| www.毛片| 亚洲成人影片在线观看| 无码专区一区二区三区| 大香蕉伊人成人| 久色婷婷| 免费看黄片,在线观看| 一区在线观看| 六月综合激情| 一级a免一级a做免费线看内祥| 成人做爰黄A片免费看直播室动漫| 中日美朝美女一级片免费看| 人人操狠狠操| 97午夜福利| 国产福利视频在线| 成人中文字幕无码| 色网站在线| 三级网站免费| 一级成人片在线观看| 乱伦AV片| 久色国产| 日韩肏屄视频在线观看| 2024国产精品| 亚洲色图成人网| 三级无码视频| 亚洲五月天色| 日韩人妻斩| 日韩一级黄色电影| 不卡无码中文字幕| 好男人WWW一区二区三区| 久久国产无码| 日本一区二区视频在线观看| 四虎影院在线| 三级片中文字幕| 99久久国产视频| 免费日韩毛片| 国产又爽又黄免费网站校园里| 亚洲AV综合色区无码国产播放| 日本乱伦网站| 国产精品无码永久免费不卡| 性猛交╳XXX乱大交| 免费观看在线无码视频| 亚洲sese| 成年人毛片视频| 亚洲精品久久久久久久久蜜桃| 国产性爱av| 欧美特黄AAA| 潮喷在线观看| 日本久久网| 九九热日本| 日韩操逼逼| 一级免费毛片| 欧美AAA黄片| 日本熟妇一区二区三区| 人人操在线公开| 国产亚洲精品久久久久久桃色| 日韩成人小电影| 丁香婷婷五月综合影院| 国产又爽又黄免费| 东京热男人的天堂| www.无码视频| 五月天综合| 91精品在线播放| 操老女人逼视频| 最新在线中文字幕| 蜜桃av秘无码一区二区三| 亚洲欧洲日韩综合| 中文无码熟妇人妻AV在线| 亚洲天堂美女| 亚洲午夜精品视频| 大鸡巴网站| 精品久久大香蕉| 亚洲精品456| 国内一级黄片| 岛国无码av| 久久国产乱子伦精品免费女,网站| 成人免费啪啪视频| 97在线观看免费视频| 中国一级黄色A片| 亚洲色婷婷五月天| 亚洲色图图片| 久久福利电影| av大全在线观看| 91精品国产闺蜜国产在线闺蜜 |