久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习框架PyTorch一书的学习-第四章-神经网络工具箱nn

發布時間:2025/3/8 pytorch 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习框架PyTorch一书的学习-第四章-神经网络工具箱nn 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考https://github.com/chenyuntc/pytorch-book/tree/v1.0

希望大家直接到上面的網址去查看代碼,下面是本人的筆記

?

本章介紹的nn模塊是構建與autograd之上的神經網絡模塊

除了nn外還會介紹神經網絡中常用的工具,比如優化器optim、初始化init等

1.nn.Module

torch的核心數據結構是Module,它是一個抽象的概念,既可以表示神經網絡中的某個層,也可以表示一個包含很多層的神經網絡

在實際使用中,最常見的做法是繼承nn.Module,攥寫自己的網絡層

下面先來看看如何使用nn.Module實現自己的全連接層。全連接層,又名仿射層,輸出y和輸入x滿足y=Wx +b,W和b是可以學習的參數

import torch as t from torch import nn from torch.autograd import Variable as V

定義函數:

class Linear(nn.Module): #繼承nn.Moduledef __init__(self, in_features, out_features):super(Linear, self).__init__() #等價于nn.Module.__init__(self)self.w = nn.Parameter(t.randn(in_features,out_features)) #參數的命名規范下面會說明self.b = nn.Parameter(t.randn(out_features))def forward(self, x):x = x.mm(self.w)return x + self.b.expand_as(x)

運行:

layer = Linear(4,3) input = V(t.randn(2,4)) output = layer(input) output

返回:

tensor([[-0.4199, 3.7252, 1.9104],[ 2.3267, 2.0576, -2.9361]], grad_fn=<AddBackward0>)

查看參數:

for name, parameter in layer.named_parameters():print(name, parameter) #即w,b

返回:

w Parameter containing: tensor([[ 1.1147, -0.8054, -0.7915],[-0.3828, 0.1073, 2.0440],[-0.3297, 0.0465, 0.0759],[ 0.1022, 0.1638, 1.0872]], requires_grad=True) b Parameter containing: tensor([ 1.2872, 2.3990, -0.7711], requires_grad=True)

可見,全連接層的實現非常簡單,其代碼量不超過10行,但需注意以下幾點:

  • 自定義層Linear必須繼承nn.Module,并且在其構造函數中需調用nn.Module的構造函數,即super(Linear, self).__init__()?或nn.Module.__init__(self),推薦使用第一種用法,盡管第二種寫法更直觀。
  • 在構造函數__init__中必須自己定義可學習的參數,并封裝成Parameter,如在本例中我們把w和b封裝成parameter。parameter是一種特殊的Variable,但其默認需要求導(requires_grad = True),感興趣的讀者可以通過nn.Parameter??,查看Parameter類的源代碼。
  • forward函數實現前向傳播過程,其輸入可以是一個或多個variable,對x的任何操作也必須是variable支持的操作。
  • 無需寫反向傳播函數,因其前向傳播都是對variable進行操作,nn.Module能夠利用autograd自動實現反向傳播,這點比Function簡單許多。
  • 使用時,直觀上可將layer看成數學概念中的函數,調用layer(input)即可得到input對應的結果。它等價于layers.__call__(input),在__call__函數中,主要調用的是?layer.forward(x),另外還對鉤子做了一些處理。所以在實際使用中應盡量使用layer(x)而不是使用layer.forward(x),關于鉤子技術將在下文講解。
  • Module中的可學習參數可以通過named_parameters()或者parameters()返回迭代器,前者會給每個parameter都附上名字,使其更具有辨識度。

可見利用Module實現的全連接層,比利用Function實現的更為簡單,因其不再需要寫反向傳播函數。

Module能夠自動檢測到自己的Parameter,并將其作為學習參數。除了parameter之外,Module還包含子Module,主Module能夠遞歸查找子Module中的parameter。下面再來看看稍微復雜一點的網絡,多層感知機。

多層感知機的網絡結構如圖4-1所示,它由兩個全連接層組成,采用函數作為激活函數,圖中沒有畫出。

class Perceptron(nn.Module):def __init__(self, in_features, hidden_features, out_features):super(Perceptron, self).__init__()self.layer1 = Linear(in_features, hidden_features) #使用的是上面定義的Linear函數self.layer2 = Linear(hidden_features, out_features)def forward(self, x):x = self.layer1(x)x = t.sigmoid(x) #激活函數return self.layer2(x)

調用:

perceptron = Perceptron(3,4,1) for name, param in perceptron.named_parameters():print(name, param.size())

返回:

layer1.w torch.Size([3, 4]) layer1.b torch.Size([4]) layer2.w torch.Size([4, 1]) layer2.b torch.Size([1])


可見,即使是稍復雜的多層感知機,其實現依舊很簡單。這里新增兩個知識點:

  • 構造函數__init__中,可利用前面自定義的Linear層(module),作為當前module對象的一個子module,它的可學習參數,也會成為當前module的可學習參數。
  • 在前向傳播函數中,我們有意識地將輸出變量都命名成x,是為了能讓Python回收一些中間層的輸出,從而節省內存。但并不是所有都會被回收,有些variable雖然名字被覆蓋,但其在反向傳播仍需要用到,此時Python的內存回收模塊將通過檢查引用計數,不會回收這一部分內存。

module中parameter的命名規范:

  • 對于類似self.param_name = nn.Parameter(t.randn(3, 4)),命名為param_name
  • 對于子Module中的parameter,會其名字之前加上當前Module的名字。如對于self.sub_module = SubModel(),SubModel中有個parameter的名字叫做param_name,那么二者拼接而成的parameter name 就是sub_module.param_name。

為方便用戶使用,PyTorch實現了神經網絡中絕大多數的layer,這些layer都繼承于nn.Module,封裝了可學習參數parameter,并實現了forward函數,且很多都專門針對GPU運算進行了CuDNN優化,其速度和性能都十分優異。本書不準備對nn.Module中的所有層進行詳細介紹,具體內容讀者可參照官方文檔。閱讀文檔時應主要關注以下幾點:

  • 構造函數的參數,如nn.Linear(in_features, out_features, bias),需關注這三個參數的作用。
  • 屬性,可學習參數,子module。如nn.Linear中有weight和bias兩個可學習參數,不包含子module。
  • 輸入輸出的形狀,如nn.linear的輸入形狀是(N, input_features),輸出為(N,output_features),N是batch_size。

這些自定義layer對輸入形狀都有假設:輸入的不是單個數據,而是一個batch。

若想輸入一個數據,則必須調用unsqueeze(0)函數將數據偽裝成batch_size=1的batch

?

下面將從應用層面出發,對一些常用的layer做簡單介紹,更詳細的用法請查看文檔,這里只作概覽參考。

2.常用神經網絡層

1.圖像相關層

圖像相關層主要包括卷積層(Conv)、池化層(Pool)等,這些層在實際使用中可分為一維(1D)、二維(2D)、三維(3D),池化方式又分為平均池化(AvgPool)、最大值池化(MaxPool)、自適應池化(AdaptiveAvgPool)等。而卷積層除了常用的前向卷積之外,還有逆卷積(TransposeConv)。下面舉例說明一些基礎的使用。

from PIL import Image from torchvision.transforms import ToTensor, ToPILImage to_tensor = ToTensor() #img -> tensor to_pil = ToPILImage() lena = Image.open('imgs/lena.png') #這是個灰度圖像 lena

返回圖片:

#輸入是一個batch,batch_size = 1 print(lena.size) #(1200200) input = to_tensor(lena).unsqueeze(0) #變成(1,1,200,200) print(input)
#銳化卷積核 kernel
= t.ones(3 ,3)/-9 kernel[1][1] = 1 conv = nn.Conv2d(1, 1, (3,3), 1, bias = False) conv.weight.data = kernel.view(1,1,3,3)out = conv(V(input)) to_pil(out.data.squeeze(0))

返回:

(200, 200) tensor([[[[0.6353, 0.6314, 0.6314, ..., 0.6118, 0.6667, 0.5922],[0.6353, 0.6314, 0.6314, ..., 0.6078, 0.6510, 0.5647],[0.6275, 0.6235, 0.6235, ..., 0.4824, 0.4157, 0.3098],...,[0.1961, 0.2078, 0.2078, ..., 0.2510, 0.3098, 0.3412],[0.1922, 0.2000, 0.2039, ..., 0.3098, 0.3686, 0.3804],[0.1843, 0.2078, 0.1961, ..., 0.3569, 0.3961, 0.4078]]]])

圖示:

?

池化層可以看作是一種特殊的卷積層,用來下采樣。但池化層沒有可學習參數,其weight是固定的。

?

pool = nn.AvgPool2d(2,2) #平均池化 list(pool.parameters()) #返回[],因為無參數

?

out = pool(input) #對數據進行池化 to_pil(out.data.squeeze(0)) #顯示結果

圖示:

?

除了卷積層和池化層,深度學習中還將常用到以下幾個層:

  • Linear:全連接層。
  • BatchNorm:批規范化層,分為1D、2D和3D。除了標準的BatchNorm之外,還有在風格遷移中常用到的InstanceNorm層。
  • Dropout:dropout層,用來防止過擬合,同樣分為1D、2D和3D。 下面通過例子來說明它們的使用。

1)全連接層

#輸入batch_size = 2,維度為3 input = t.randn(2,3) linear = nn.Linear(3,4) h = linear(input) h

返回:

tensor([[ 0.5406, -0.0327, 0.7291, 0.5262],[ 0.1471, -0.1924, 0.8960, 0.7801]], grad_fn=<AddmmBackward>)

2)批規范化,即歸一化層

#4 channel,初始化標準差為4,均值為0 bn = nn.BatchNorm1d(4) #對小批量(mini-batch)的2d或3d輸入進行批標準化(Batch Normalization)操作,即歸一化 bn.weight.data = t.ones(4) * 4 bn.bias.data = t.zeros(4)bn_out = bn(h) #注意輸出的均值和方差 #方差是標準差的平方,計算無偏方差分母會減1 #使用unbiased=False 分母不減1 bn_out.mean(0), bn_out.var(0, unbiased=False) #歸一化后平均值為0,方差為標準單位方差

返回:

(tensor([0., 0., 0., 0.], grad_fn=<MeanBackward0>),tensor([15.9959, 15.9749, 15.9771, 15.9901], grad_fn=<VarBackward1>))

Batch歸一化使用在z上,下面激活函數處的例子可見,對其進行卷積 -> batch歸一化 -> 激活函數

3)dropout正則化層

#每個元素以0.5的概率舍棄,實現dropout正則化,消除過擬合問題 dropout = nn.Dropout(0.5) o = dropout(bn_out) o #有一半左右的數變成0

返回:

tensor([[ 0.0000, 7.9937, -7.9943, -7.9975],[-0.0000, -0.0000, 7.9943, 7.9975]], grad_fn=<MulBackward0>)

以上很多例子中都對module的屬性直接操作,其大多數是可學習參數,一般會隨著學習的進行而不斷改變。實際使用中除非需要使用特殊的初始化,應盡量不要直接修改這些參數。

?

2.激活函數

1)ReLu


relu = nn.ReLU(inplace=True) input = t.randn(2,3) print(input) output = relu(input) print(output) #小于0的都被截斷為0 #等價于input.clamp(min=0)

返回:

tensor([[ 1.2619, -0.9128, 0.6259],[-1.4834, 0.7297, -0.8562]]) tensor([[1.2619, 0.0000, 0.6259],[0.0000, 0.7297, 0.0000]])

ReLU函數有個inplace參數,如果設為True,它會把輸出直接覆蓋到輸入中,這樣可以節省內存/顯存。之所以可以覆蓋是因為在計算ReLU的反向傳播時,只需根據輸出就能夠推算出反向傳播的梯度

但是只有少數的autograd操作支持inplace操作(如tensor.sigmoid_()),除非你明確地知道自己在做什么,否則一般不要使用inplace操作。

?

在以上的例子中,基本上都是將每一層的輸出直接作為下一層的輸入,這種網絡稱為前饋傳播網絡(feedforward neural network)。

??

對于此類網絡如果每次都寫復雜的forward函數會有些麻煩,在此就有兩種簡化方式,ModuleList和Sequential。其中Sequential是一個特殊的module,它包含幾個子Module,前向傳播時會將輸入一層接一層的傳遞下去。ModuleList也是一個特殊的module,可以包含幾個子module,可以像用list一樣使用它,但不能直接把輸入傳給ModuleList。下面舉例說明。

1)Sequential

#Sequential的三種寫法 #第一種 net1 = nn.Sequential() net1.add_module('conv', nn.Conv2d(3,3,3)) net1.add_module('batchnorm', nn.BatchNorm2d(3)) net1.add_module('activation_layer', nn.ReLU())#第二種 net2 = nn.Sequential(nn.Conv2d(3,3,3),nn.BatchNorm2d(3),nn.ReLU())#第三種 from collections import OrderedDict net3 = nn.Sequential(OrderedDict([('conv1', nn.Conv2d(3,3,3)),('bn1', nn.BatchNorm2d(3)),('relu1',nn.ReLU())])) print('net1:', net1) print('net2:', net2) print('net3:', net3)

返回:

net1: Sequential((conv): Conv2d(3, 3, kernel_size=(3, 3), stride=(1, 1))(batchnorm): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(activation_layer): ReLU() ) net2: Sequential((0): Conv2d(3, 3, kernel_size=(3, 3), stride=(1, 1))(1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(2): ReLU() ) net3: Sequential((conv1): Conv2d(3, 3, kernel_size=(3, 3), stride=(1, 1))(bn1): BatchNorm2d(3, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(relu1): ReLU() )

?

#可根據名字后序號取出子module net1.conv, net2[0], net3.conv1

返回:

(Conv2d(3, 3, kernel_size=(3, 3), stride=(1, 1)),Conv2d(3, 3, kernel_size=(3, 3), stride=(1, 1)),Conv2d(3, 3, kernel_size=(3, 3), stride=(1, 1)))

調用方式為:

input = t.rand(1,3,4,4) output1 = net1(input) output2 = net2(input) output3 = net3(input) output4 = net3.relu1(net1.batchnorm(net1.conv(input)))

?

2)ModuleList

modellist = nn.ModuleList([nn.Linear(3,4), nn.ReLU(), nn.Linear(4,2)]) input = t.randn(1,3) for model in modellist:input = model(input) print(input)

返回:

tensor([[-0.6547, 0.8027]], grad_fn=<AddmmBackward>)

?

# 下面會報錯,因為modellist沒有實現forward方法 output = modellist(input)

看到這里,讀者可能會問,為何不直接使用Python中自帶的list,而非要多此一舉呢?這是因為ModuleList是Module的子類,當在Module中使用它的時候,就能自動識別為子module。

下面舉一個實現forward的例子進行說明:

class MyModule(nn.Module):def __init__(self):super(MyModule, self).__init__()self.list = [nn.Linear(3,4), nn.ReLU()]self.module_list = nn.ModuleList([nn.Conv2d(3,3,3), nn.ReLU()])def forward(self):pass model = MyModule() model

返回:

MyModule((module_list): ModuleList((0): Conv2d(3, 3, kernel_size=(3, 3), stride=(1, 1))(1): ReLU()) )

查看參數:

for name, param in model.named_parameters():print(name, param.size())

返回:

module_list.0.weight torch.Size([3, 3, 3, 3]) module_list.0.bias torch.Size([3])

可見,list中的子module并不能被主module所識別,而ModuleList中的子module能夠被主module所識別。這意味著如果用list保存子module,將無法調整其參數,因其未加入到主module的參數中。

除ModuleList之外還有ParameterList,其是一個可以包含多個parameter的類list對象。在實際應用中,使用方式與ModuleList類似。

如果在構造函數__init__中用到list、tuple、dict等對象時,一定要思考是否應該用ModuleList或ParameterList代替。

?

3.循環神經網絡層(后面好好看看)

近些年隨著深度學習和自然語言處理的結合加深,RNN的使用也越來越多,關于RNN的基礎知識,推薦閱讀colah的文章1入門。PyTorch中實現了如今最常用的三種RNN:RNN(vanilla RNN)、LSTM和GRU。此外還有對應的三種RNNCell。

RNN和RNNCell層的區別在于前者一次能夠處理整個序列,而后者一次只處理序列中一個時間點的數據,前者封裝更完備更易于使用,后者更具靈活性。實際上RNN層的一種后端實現方式就是調用RNNCell來實現的。

t.manual_seed(1000) # 輸入:batch_size=3,序列長度都為2,序列中每個元素占4維 input = t.randn(2, 3, 4) # lstm輸入向量4維,隱藏元3,1層 lstm = nn.LSTM(4, 3, 1) # 初始狀態:1層,batch_size=3,3個隱藏元 h0 = t.randn(1, 3, 3) c0 = t.randn(1, 3, 3) out, hn = lstm(input, (h0, c0)) out

返回:

tensor([[[-0.3610, -0.1643, 0.1631],[-0.0613, -0.4937, -0.1642],[ 0.5080, -0.4175, 0.2502]],[[-0.0703, -0.0393, -0.0429],[ 0.2085, -0.3005, -0.2686],[ 0.1482, -0.4728, 0.1425]]], grad_fn=<StackBackward>)

?

t.manual_seed(1000) input = t.randn(2, 3, 4) # 一個LSTMCell對應的層數只能是一層 lstm = nn.LSTMCell(4, 3) hx = t.randn(3, 3) cx = t.randn(3, 3) out = [] for i_ in input:hx, cx=lstm(i_, (hx, cx))out.append(hx) t.stack(out)

返回:

tensor([[[-0.3610, -0.1643, 0.1631],[-0.0613, -0.4937, -0.1642],[ 0.5080, -0.4175, 0.2502]],[[-0.0703, -0.0393, -0.0429],[ 0.2085, -0.3005, -0.2686],[ 0.1482, -0.4728, 0.1425]]], grad_fn=<StackBackward>)

?

# 有4個詞,每個詞用5維的向量表示 embedding = nn.Embedding(4, 5) # 可以用預訓練好的詞向量初始化embedding embedding.weight.data = t.arange(0,20).view(4,5) input = t.arange(3, 0, -1).long() output = embedding(input) output

返回:

tensor([[15, 16, 17, 18, 19],[10, 11, 12, 13, 14],[ 5, 6, 7, 8, 9]], grad_fn=<EmbeddingBackward>)

?

4.損失函數

這里以分類中最常用的交叉熵損失CrossEntropyloss為例說明:

#batch_size = 3,計算對應每個類別的分數(只有兩個類別) score = t.randn(3,2) #三個樣本分別屬于1,0,1類,label必須是LongTensor label = t.Tensor([1,0,1]).long()#loss與普通的layer無差異 criterion = nn.CrossEntropyLoss() loss = criterion(score, label) loss #返回tensor(0.5944)

?

5.優化器

PyTorch將深度學習中常用的優化方法全部封裝在torch.optim中,其設計十分靈活,能夠很方便的擴展成自定義的優化方法。

所有的優化方法都是繼承基類optim.Optimizer,并實現了自己的優化步驟。下面就以最基本的優化方法——隨機梯度下降法(SGD)舉例說明。這里需重點掌握:

  • 優化方法的基本使用方法
  • 如何對模型的不同部分設置不同的學習率
  • 如何調整學習率
#首先定義一個LeNet網絡 class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.features = nn.Sequential(nn.Conv2d(3,6,5),nn.ReLU(),nn.MaxPool2d(2,2),nn.Conv2d(6,16,5),nn.ReLU(),nn.MaxPool2d(2,2))self.classifier = nn.Sequential( #全連接層nn.Linear(16*5*5, 120),nn.ReLU(),nn.Linear(120, 84),nn.ReLU(),nn.Linear(84, 10))def forward(self, x):x = self.features(x)x = x.view(-1,16*5*5) #將數據扁平化處理用傳入全連接層x = self.classifier(x)return x net = Net()

?

from torch import optim optimizer = optim.SGD(params=net.parameters(), lr=1) optimizer.zero_grad() #梯度清零,等價于net.zero_grad()input = t.randn(1,3,32,32) output = net(input) output.backward(output) #fake backward,后向傳播,計算梯度optimizer.step() #執行優化

?

# 為不同子網絡設置不同的學習率,在finetune中經常用到 # 如果對某個參數不指定學習率,就使用最外層的默認學習率 optimizer = optim.SGD([{'params' : net.features.parameters()}, #學習率為1e-5{'params' : net.classifier.parameters(), 'lr':1e-2}], lr=1e-5) optimizer

返回:

SGD ( Parameter Group 0dampening: 0lr: 1e-05momentum: 0nesterov: Falseweight_decay: 0Parameter Group 1dampening: 0lr: 0.01momentum: 0nesterov: Falseweight_decay: 0 )

?

# 只為兩個全連接層設置較大的學習率,其余層的學習率較小 special_layers = nn.ModuleList([net.classifier[0], net.classifier[2]]) special_layers_params = list(map(id, special_layers.parameters())) base_params = filter(lambda p: id(p) not in special_layers_params, net.parameters())optimizer = t.optim.SGD([{'params': base_params},{'params': special_layers.parameters(), 'lr': 0.01}], lr=0.001 ) optimizer

返回:

SGD ( Parameter Group 0dampening: 0lr: 0.001momentum: 0nesterov: Falseweight_decay: 0Parameter Group 1dampening: 0lr: 0.01momentum: 0nesterov: Falseweight_decay: 0 )


對于如何調整學習率,主要有兩種做法:

  • 一種是更簡單也是較為推薦的做法——新建優化器,由于optimizer十分輕量級,構建開銷很小,故而可以構建新的optimizer。但是后者對于使用動量的優化器(如Adam),會丟失動量等狀態信息,可能會造成損失函數的收斂出現震蕩等情況。
  • 一種是修改optimizer.param_groups中對應的學習率

1)新建優化器

#方法1:調整學習率,新建一個optimizer old_lr = 0.1 optimizer1 = optim.SGD([{'params': net.features.parameters()},{'params': net.classifier.parameters(), 'lr':old_lr *0.1} ], lr = 1e-5) optimizer1

返回:

SGD ( Parameter Group 0dampening: 0lr: 1e-05momentum: 0nesterov: Falseweight_decay: 0Parameter Group 1dampening: 0lr: 0.010000000000000002momentum: 0nesterov: Falseweight_decay: 0 )

2)調整學習率

#方法2:調整學習率,手動衰減,保存動量 for param_group in optimizer.param_groups:param_group['lr'] *= 0.1 optimizer

返回:

SGD ( Parameter Group 0dampening: 0lr: 0.0001momentum: 0nesterov: Falseweight_decay: 0Parameter Group 1dampening: 0lr: 0.001momentum: 0nesterov: Falseweight_decay: 0 )

?

3.nn.functional

nn中還有一個很常用的模塊:nn.functional,nn中的大多數layer,在functional中都有一個與之相對應的函數。

nn.functional中的函數和nn.Module的主要區別在于:

  • nn.Module實現的layers是一個特殊的類,都是由class layer(nn.Module)定義,會自動提取可學習的參數
  • nn.functional中的函數更像是純函數,由def function(input)定義。

下面舉例說明functional的使用,并指出二者的不同之處。

input = t.randn(2,3) model = nn.Linear(3,4) output1 = model(input) #使用上面使用的w,b,兩種寫法返回的結果是相同的 output2 = nn.functional.linear(input, model.weight, model.bias) output1 == output2

返回:

tensor([[1, 1, 1, 1],[1, 1, 1, 1]], dtype=torch.uint8)

?

b = nn.functional.relu(input) b2 = nn.ReLU()(input) b == b2

返回:

tensor([[1, 1, 1],[1, 1, 1]], dtype=torch.uint8)

此時讀者可能會問,應該什么時候使用nn.Module,什么時候使用nn.functional呢?

答案很簡單,如果模型有可學習的參數,最好用nn.Module,否則既可以使用nn.functional也可以使用nn.Module,二者在性能上沒有太大差異,具體的使用取決于個人的喜好。

如激活函數(ReLU、sigmoid、tanh),池化(MaxPool)等層由于沒有可學習參數,則可以使用對應的functional函數代替,而對于卷積、全連接等具有可學習參數的網絡建議使用nn.Module

下面舉例說明,如何在模型中搭配使用nn.Module和nn.functional。

??另外雖然dropout操作也沒有可學習操作,但建議還是使用nn.Dropout而不是nn.functional.dropout,因為dropout在訓練和測試兩個階段的行為有所差別,使用nn.Module對象能夠通過model.eval操作加以區分

from torch.nn import functional as F class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.conv1 = nn.Conv2d(3,6,5)self.conv2 = nn.Conv2d(6,16,5)self.fc1 = nn.Linear(16*5*5, 120)self.fc2 = nn.Linear(120,84)self.fc3 = nn.Linear(84, 10)def forward(self,x):x = F.pool(F.relu(self.conv1(x)),2)x = F.pool(F.relu(self.conv2(x)),2)x = x.view(-1, 16*5*5)x = F.relu(self.fc1(x))x = F.relu(self.fc2(x)) x = self.fc3(x)return x


對于不具備可學習參數的層(激活層、池化層等),將它們用函數代替,這樣則可以不用放置在構造函數__init__中。對于有可學習參數的模塊,也可以用functional來代替,只不過實現起來較為繁瑣,需要手動定義參數parameter,如前面實現自定義的全連接層,就可將weight和bias兩個參數單獨拿出來,在構造函數中初始化為parameter。

class MyLinear(nn.Module):def __init__(self):super(MyLinear, self).__init__()self.weight = nn.Parameter(t.randn(3,4))self.bias = nn.Parameter(t.zeros(3))def forward(self):return F.linear(input, weight, bias)

?

4.初始化策略

在深度學習中參數的初始化十分重要,良好的初始化能讓模型更快收斂,并達到更高水平,而糟糕的初始化則可能使得模型迅速癱瘓。

PyTorch中nn.Module的模塊參數都采取了較為合理的初始化策略,因此一般不用我們考慮,當然我們也可以用自定義初始化去代替系統的默認初始化。而當我們在使用Parameter時,自定義初始化則尤為重要,因t.Tensor()返回的是內存中的隨機數,很可能會有極大值,這在實際訓練網絡中會造成溢出或者梯度消失

PyTorch中nn.init模塊就是專門為初始化而設計,如果某種初始化策略nn.init不提供,用戶也可以自己直接初始化。

?

使用的初始化策略是:

torch.nn.init.xavier_normal_(tensor, gain=1)

參數:

  • tensor?– n維的torch.Tensor
  • gain?- 可選的縮放因子

用一個正態分布生成值,填充輸入的張量或變量。結果張量中的值采樣自均值為0,標準差為gain * sqrt(2/(fan_in + fan_out))的正態分布。也被稱為Glorot initialisation.

1)直接初始化:

#利用nn.init初始化 from torch.nn import init linear = nn.Linear(3,4)t.manual_seed(1) #等價于linear.weight.data.normal_(0, std),std是正態分布的標準差 init.xavier_normal_(linear.weight)

返回:

Parameter containing: tensor([[ 0.3535, 0.1427, 0.0330],[ 0.3321, -0.2416, -0.0888],[-0.8140, 0.2040, -0.5493],[-0.3010, -0.4769, -0.0311]], requires_grad=True)

2)手動初始化

#手動初始化 import math t.manual_seed(1)#xavier初始化的計算公式 std = math.sqrt(2)/math.sqrt(7.)#3+4 = 7 linear.weight.data.normal_(0, std)

返回:

tensor([[ 0.3535, 0.1427, 0.0330],[ 0.3321, -0.2416, -0.0888],[-0.8140, 0.2040, -0.5493],[-0.3010, -0.4769, -0.0311]])

?

#對模型的所有參數進行初始化 for name, params in net.named_parameters():if name.find('linear') != -1:#init linearparams[0] #weightparams[1] #biaselif name.find('conv') != -1:passelif name.find('norm') != -1:pass

?

5.nn.Module深入分析

如果想要更深入地理解nn.Module,究其原理是很有必要的。首先來看看nn.Module基類的構造函數:

其中每個屬性的解釋如下:

  • _parameters:字典,保存用戶直接設置的parameter,self.param1 = nn.Parameter(t.randn(3, 3))會被檢測到,在字典中加入一個key為'param',value為對應parameter的item。而self.submodule = nn.Linear(3, 4)中的parameter則不會存于此
  • _modules:子module,通過self.submodel = nn.Linear(3, 4)指定的子module會保存于此。
  • _buffers:緩存。如batchnorm使用momentum機制,每次前向傳播需用到上一次前向傳播的結果。
  • _backward_hooks與_forward_hooks:鉤子技術,用來提取中間變量,類似variable的hook。
  • training:BatchNorm與Dropout層在訓練階段和測試階段中采取的策略不同,通過判斷training值來決定前向傳播策略

上述幾個屬性中,_parameters、_modules和_buffers這三個字典中的鍵值,都可以通過self.key方式獲得,效果等價于self._parameters['key'].

下面舉例說明:

1)定義網絡:

class Net(nn.Module):def __init__(self):super(Net, self).__init__()#等價于self.register_parameter('param1', nn.Parameter(t.randn(3,3)))self.param1 = nn.Parameter(t.rand(3,3))self.submodel1 = nn.Linear(3,4)def forward(self, input):x = self.param1.mm(input)x = self.submodel1(x)return x net = Net() net

返回:

Net((submodel1): Linear(in_features=3, out_features=4, bias=True) )

2)

net._modules #查看設置的子模塊

返回:

OrderedDict([('submodel1', Linear(in_features=3, out_features=4, bias=True))])

另一種查看子模塊方法:

for name, submodel in net.named_modules():print(name, submodel)

返回:

Net((submodel1): Linear(in_features=3, out_features=4, bias=True) ) submodel1 Linear(in_features=3, out_features=4, bias=True)

nn.Module在實際使用中可能層層嵌套,一個module包含若干個子module,每一個子module又包含了更多的子module。

為方便用戶訪問各個子module,nn.Module實現了很多方法,如函數children可以查看直接子module,函數module可以查看所有的子module(包括當前module)。

與之相對應的還有函數named_childen和named_modules,其能夠在返回module列表的同時返回它們的名字。

3)

net._parameters #查看網絡中使用的參數

返回:

OrderedDict([('param1', Parameter containing:tensor([[0.3398, 0.5239, 0.7981],[0.7718, 0.0112, 0.8100],[0.6397, 0.9743, 0.8300]], requires_grad=True))])

另一種查看參數方法:

net.param1 #等價于net._parameters['param1']

返回:

Parameter containing: tensor([[0.3398, 0.5239, 0.7981],[0.7718, 0.0112, 0.8100],[0.6397, 0.9743, 0.8300]], requires_grad=True)

另一種查看參數方法,上面的方法沒辦法查看到層中使用的w,b參數,下面的方法可以查看w,b參數:

for name, param in net.named_parameters():print(name, param.size())

返回:

param1 torch.Size([3, 3]) submodel1.weight torch.Size([4, 3]) submodel1.bias torch.Size([4])

4)_buffers

bn = nn.BatchNorm1d(2) input = t.rand(3,2) output = bn(input) bn._buffers #上一次前向傳播結果

返回:

OrderedDict([('running_mean', tensor([0.0514, 0.0749])),('running_var', tensor([0.9116, 0.9068])),('num_batches_tracked', tensor(1))])

5)training

input = t.arange(0, 12).float().view(3,4) model = nn.Dropout() #在訓練階段,會有一半的值被設置為0 model(input)

返回:

tensor([[ 0., 0., 4., 0.],[ 8., 0., 0., 14.],[ 0., 0., 0., 22.]])

?

#如果將training設置為False,那么dropout在測試階段將什么都不做 model.training = False model(input)

返回:

tensor([[ 0., 1., 2., 3.],[ 4., 5., 6., 7.],[ 8., 9., 10., 11.]])

對于batchnorm、dropout、instancenorm等在訓練和測試階段行為差距巨大的層,如果在測試時不將其training值設為True,則可能會有很大影響,這在實際使用中要千萬注意。

雖然可通過直接設置training屬性,來將子module設為train和eval模式,但這種方式較為繁瑣,因如果一個模型具有多個dropout層,就需要為每個dropout層指定training屬性。

更為推薦的做法是調用model.train()函數,它會將當前module及其子module中的所有training屬性都設為True,相應的,model.eval()函數會把training屬性都設為False

print(net.training, net.submodel1.training) net.eval() net.training, net.submodel1.training

返回:

True True (False, False)

?

6)register_forward_hook/register_backward_hook:中間變量

這兩個函數的功能類似于variable函數的register_hook,可在module前向傳播或反向傳播時注冊鉤子。每次前向傳播執行結束后會執行鉤子函數(hook)。前向傳播的鉤子函數具有如下形式:hook(module, input, output) -> None,而反向傳播則具有如下形式:hook(module, grad_input, grad_output) -> Tensor or None。

鉤子函數不應修改輸入和輸出,并且在使用后應及時刪除,以避免每次都運行鉤子增加運行負載。鉤子函數主要用在獲取某些中間結果的情景,如中間某一層的輸出或某一層的梯度。這些結果本應寫在forward函數中,但如果在forward函數中專門加上這些處理,可能會使處理邏輯比較復雜,這時候使用鉤子技術就更合適一些。

下面考慮一種場景,有一個預訓練好的模型,需要提取模型的某一層(不是最后一層)的輸出作為特征進行分類,但又不希望修改其原有的模型定義文件,這時就可以利用鉤子函數

下面給出實現的偽代碼:

model = VGG() features = t.Tensor() def hook(module, input, output):'''把這層的輸出拷貝到features中'''features.copy_(output.data)handle = model.layer8.register_forward_hook(hook) _ = model(input) # 用完hook后刪除 handle.remove()

?

7)__getattr__ / __setattr__
nn.Module對象在構造函數中的行為看起來有些怪異,如果想要真正掌握其原理,就需要看兩個魔法方法__getattr__和__setattr__。

在Python中有兩個常用的buildin方法getattr和setattr,getattr(obj, 'attr1')等價于obj.attr,如果getattr函數無法找到所需屬性,Python會轉而調用obj.__getattr__('attr1')方法,即getattr函數無法找到的交給__getattr__函數處理,沒有實現__getattr__或者__getattr__也無法處理的就會raise AttributeError。

setattr(obj, 'name', value)等價于obj.name=value,如果obj對象實現了__setattr__方法,setattr會直接調用obj.__setattr__('name', value),否則調用buildin方法。

總結一下:

  • result = obj.name會調用buildin函數getattr(obj, 'name'),如果該屬性找不到,會調用obj.__getattr__('name')
  • obj.name = value會調用buildin函數setattr(obj, 'name', value),如果obj對象實現了__setattr__方法,setattr會直接調用obj.__setattr__('name', value')

nn.Module實現了自定義的__setattr__函數,當執行module.name=value時,會在__setattr__中判斷value是否為Parameter或nn.Module對象,如果是則將這些對象加到_parameters和_modules兩個字典中,而如果是其它類型的對象,如Variable、list、dict等,則調用默認的操作,將這個值保存在__dict__中。

1》

module = nn.Module() #直接使用nn.Module()對象 module.param = nn.Parameter(t.ones(2,2)) #設置參數 module._parameters

返回:

OrderedDict([('param', Parameter containing:tensor([[1., 1.],[1., 1.]], requires_grad=True))])

2》

submodule1 = nn.Linear(2,2) submodule2 = nn.Linear(2,2) module_list = [submodule1, submodule2] #對于list對象,調用buildin函數,保存在__dict__中 module.submodules = module_list #設置module,因為這里使用的是list,所以會存放在__dict__ print('_modules:', module._modules) print("__dict__['submodules']:", module.__dict__.get('submodules'))

返回:

_modules: OrderedDict() __dict__['submodules']: [Linear(in_features=2, out_features=2, bias=True), Linear(in_features=2, out_features=2, bias=True)]

3》

module_list = nn.ModuleList(module_list)#將上面的list類型轉成nn.Module對象類型 module.submodules = module_list #判斷是否為nn.Module對象類型 print('ModuleList is instance of nn.Module: ', isinstance(module_list, nn.Module)) print('_modules: ', module._modules) #這樣值就會存儲在這里,而不是__dict__ print("__dict__['submodules']:", module.__dict__.get('submodules'))

返回:

ModuleList is instance of nn.Module: True _modules: OrderedDict([('submodules', ModuleList((0): Linear(in_features=2, out_features=2, bias=True)(1): Linear(in_features=2, out_features=2, bias=True) ))]) __dict__['submodules']: None

4》

因_modules和_parameters中的item未保存在__dict__中,所以默認的getattr方法無法獲取它,因而nn.Module實現了自定義的__getattr__方法,如果默認的getattr無法處理,就調用自定義的__getattr__方法,嘗試從_modules、_parameters和_buffers這三個字典中獲取。

?

getattr(module, 'training')#等價于module.training #如果沒有得到值,就會調用module.__getattr__('training')

返回:

True

?

module.attr1 = 2 getattr(module, 'attr1') #返回2

?

getattr(module, 'param')

返回:

Parameter containing: tensor([[1., 1.],[1., 1.]], requires_grad=True)

?

8)state_dict()/load_state_dict()

在PyTorch中保存模型十分簡單,所有的Module對象都具有state_dict()函數,返回當前Module所有的狀態數據。將這些狀態數據保存后,下次使用模型時即可利用model.load_state_dict()函數將狀態加載進來。優化器(optimizer)也有類似的機制,不過一般并不需要保存優化器的運行狀態

#保存模型 t.save(net.state_dict(), 'net.pth') #然后就會在本地文件夾中生成一個net.pth文件#加載已經保存的模型 net2 = Net() net2.load_state_dict(t.load('net.pth'))

?

9)運行在GPU

將Module放在GPU上運行也十分簡單,只需兩步:

  • model = model.cuda():將模型的所有參數轉存到GPU
  • input.cuda():將輸入數據也放置到GPU上

至于如何在多個GPU上并行計算,PyTorch也提供了兩個函數,可實現簡單高效的并行GPU計算

  • nn.parallel.data_parallel(module, inputs, device_ids=None, output_device=None, dim=0, module_kwargs=None)
  • class torch.nn.DataParallel(module, device_ids=None, output_device=None, dim=0)

可見二者的參數十分相似,通過device_ids參數可以指定在哪些GPU上進行優化,output_device指定輸出到哪個GPU上。

唯一的不同就在于前者直接利用多GPU并行計算得出結果,而后者則返回一個新的module,能夠自動在多GPU上進行并行加速。

?

# method 1 new_net = nn.DataParallel(net, device_ids=[0, 1]) output = new_net(input)# method 2 output = nn.parallel.data_parallel(new_net, input, device_ids=[0, 1])

DataParallel并行的方式,是將輸入一個batch的數據均分成多份,分別送到對應的GPU進行計算,各個GPU得到的梯度累加。與Module相關的所有數據也都會以淺復制的方式復制多份,在此需要注意,在module中屬性應該是只讀的。

?

6.nn和autograd的關系

nn.Module利用的也是autograd技術,其主要工作是實現前向傳播。在forward函數中,nn.Module對輸入的tensor進行的各種操作,本質上都是用到了autograd技術。這里需要對比autograd.Function和nn.Module之間的區別:

  • autograd.Function利用了Tensor對autograd技術的擴展,為autograd實現了新的運算op,不僅要實現前向傳播還要手動實現反向傳播
  • nn.Module利用了autograd技術,對nn的功能進行擴展,實現了深度學習中更多的層。只需實現前向傳播功能,autograd即會自動實現反向傳播
  • nn.functional是一些autograd操作的集合,是經過封裝的函數

作為兩大類擴充PyTorch接口的方法,我們在實際使用中應該如何選擇呢?

如果某一個操作,在autograd中尚未支持,那么只能實現Function接口對應的前向傳播和反向傳播。如果某些時候利用autograd接口比較復雜,則可以利用Function將多個操作聚合,實現優化,正如第三章所實現的Sigmoid一樣,比直接利用autograd低級別的操作要快。而如果只是想在深度學習中增加某一層,使用nn.Module進行封裝則更為簡單高效。

?

7.小試牛刀:搭建ResNet

Kaiming He的深度殘差網絡(ResNet)[^7]在深度學習的發展中起到了很重要的作用,ResNet不僅一舉拿下了當年CV下多個比賽項目的冠軍,更重要的是這一結構解決了訓練極深網絡時的梯度消失問題。

首先來看看ResNet的網絡結構,這里選取的是ResNet的一個變種:ResNet34。

ResNet的網絡結構如圖4-2所示,可見除了最開始的卷積池化和最后的池化全連接之外,網絡中有很多結構相似的單元,這些重復單元的共同點就是有個跨層直連的shortcut。ResNet中將一個跨層直連的單元稱為Residual block,其結構如圖4-3所示,左邊部分是普通的卷積網絡結構,右邊是直連,但如果輸入和輸出的通道數不一致,或其步長不為1,那么就需要有一個專門的單元將二者轉成一致,使其可以相加。

另外我們可以發現Residual block的大小也是有規律的,在最開始的pool之后有連續的幾個一模一樣的Residual block單元,這些單元的通道數一樣,在這里我們將這幾個擁有多個Residual block單元的結構稱之為layer,注意和之前講的layer區分開來,這里的layer是幾個層的集合

考慮到Residual block和layer出現了多次,我們可以把它們實現為一個子Module或函數。這里我們將Residual block實現為一個子moduke,而將layer實現為一個函數。下面是實現代碼,規律總結如下:

  • 對于模型中的重復部分,實現為子module或用函數生成相應的module make_layer
  • nn.Module和nn.Functional結合使用
  • 盡量使用nn.Seqential

[^7]: He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 770-778.

from torch import nn import torch as t from torch.nn import functional as F

定義網絡:

class ResidualBlock(nn.Module):''' 實現子module: Residual Block''' def __init__(self, inchannel, outchannel, stride=1, shortcut=None):super(ResidualBlock, self).__init__()self.left = nn.Sequential(nn.Conv2d(inchannel,outchannel,3,stride, 1,bias=False),nn.BatchNorm2d(outchannel),nn.ReLU(inplace=True),nn.Conv2d(outchannel,outchannel,3,1,1,bias=False),nn.BatchNorm2d(outchannel) )self.right = shortcutdef forward(self, x):out = self.left(x)residual = x if self.right is None else self.right(x)out += residualreturn F.relu(out)class ResNet(nn.Module):''' 實現主module:ResNet34ResNet34 包含多個layer,每個layer又包含多個residual block用子module來實現residual block,用_make_layer函數來實現layer''' def __init__(self, num_classes=1000):super(ResNet, self).__init__()# 前幾層圖像轉換self.pre = nn.Sequential(nn.Conv2d(3, 64, 7, 2, 3, bias=False),nn.BatchNorm2d(64),nn.ReLU(inplace=True),nn.MaxPool2d(3, 2, 1))# 重復的layer,分別有3,46,3個residual blockself.layer1 = self._make_layer( 64, 64, 3)self.layer2 = self._make_layer( 64, 128, 4, stride=2)self.layer3 = self._make_layer( 128, 256, 6, stride=2)self.layer4 = self._make_layer( 256, 512, 3, stride=2)#分類用的全連接self.fc = nn.Linear(512, num_classes)def _make_layer(self, inchannel, outchannel, block_num, stride=1):''' 構建layer,包含多個residual block''' shortcut = nn.Sequential(nn.Conv2d(inchannel,outchannel,1,stride, bias=False),nn.BatchNorm2d(outchannel))layers = []layers.append(ResidualBlock(inchannel, outchannel, stride, shortcut))for i in range(1, block_num):layers.append(ResidualBlock(outchannel, outchannel))return nn.Sequential(*layers)def forward(self, x):x = self.pre(x)x = self.layer1(x)x = self.layer2(x)x = self.layer3(x)x = self.layer4(x)x = F.avg_pool2d(x, 7)x = x.view(x.size(0), -1)return self.fc(x)

調用:

model = ResNet() input = t.randn(1, 3, 224, 224) o = model(input)

感興趣的讀者可以嘗試實現Google的Inception網絡結構或ResNet的其它變體,看看如何能夠簡潔明了地實現它,實現代碼盡量控制在80行以內(本例去掉空行和注釋總共不超過50行)。

另外,與PyTorch配套的圖像工具包torchvision已經實現了深度學習中大多數經典的模型,其中就包括ResNet34,讀者可以通過下面兩行代碼使用:

from torchvision import models model = models.resnet34()

本例中ResNet34的實現就是參考了torchvision中的實現并做了簡化,感興趣的讀者可以閱讀相應的源碼,比較這里的實現和torchvision中實現的不同。

?

轉載于:https://www.cnblogs.com/wanghui-garcia/p/10633458.html

總結

以上是生活随笔為你收集整理的深度学习框架PyTorch一书的学习-第四章-神经网络工具箱nn的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

俺去俺来也www色官网 | 欧美丰满老熟妇xxxxx性 | 欧美人与物videos另类 | 在线a亚洲视频播放在线观看 | 99久久婷婷国产综合精品青草免费 | 色综合久久中文娱乐网 | 天天拍夜夜添久久精品 | 亚洲精品久久久久久久久久久 | 2020最新国产自产精品 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 图片小说视频一区二区 | 国产成人精品优优av | 男女猛烈xx00免费视频试看 | 7777奇米四色成人眼影 | 又紧又大又爽精品一区二区 | 在线a亚洲视频播放在线观看 | 天天做天天爱天天爽综合网 | 国产精品毛片一区二区 | 国产69精品久久久久app下载 | 图片区 小说区 区 亚洲五月 | 一本色道久久综合亚洲精品不卡 | 曰本女人与公拘交酡免费视频 | 日日干夜夜干 | 亚洲欧洲日本无在线码 | 中文无码伦av中文字幕 | 色欲久久久天天天综合网精品 | 夜夜躁日日躁狠狠久久av | 午夜性刺激在线视频免费 | 久久精品99久久香蕉国产色戒 | 欧美日本精品一区二区三区 | 日本熟妇人妻xxxxx人hd | 丁香啪啪综合成人亚洲 | 日本精品人妻无码77777 天堂一区人妻无码 | 2020久久香蕉国产线看观看 | 午夜理论片yy44880影院 | 精品无人区无码乱码毛片国产 | 亚洲精品午夜国产va久久成人 | 日日橹狠狠爱欧美视频 | 乱码av麻豆丝袜熟女系列 | 中文字幕乱码人妻无码久久 | 日韩 欧美 动漫 国产 制服 | 俄罗斯老熟妇色xxxx | 国产精品视频免费播放 | 亚洲熟妇色xxxxx亚洲 | 在线a亚洲视频播放在线观看 | 久久久久亚洲精品中文字幕 | 国产亚洲欧美日韩亚洲中文色 | 日韩成人一区二区三区在线观看 | 国产成人精品视频ⅴa片软件竹菊 | 欧美人与禽zoz0性伦交 | 娇妻被黑人粗大高潮白浆 | 国产乡下妇女做爰 | 少妇激情av一区二区 | 国产免费久久久久久无码 | 国产成人无码av在线影院 | 国产真实伦对白全集 | 久久精品一区二区三区四区 | 亚洲精品一区国产 | 亚洲欧美日韩综合久久久 | 妺妺窝人体色www在线小说 | 久久久久人妻一区精品色欧美 | 国产av久久久久精东av | 国产精品久久久久9999小说 | 奇米影视7777久久精品 | 日韩人妻少妇一区二区三区 | 亚洲中文字幕久久无码 | 人妻熟女一区 | 九九热爱视频精品 | 天天摸天天透天天添 | 女人被男人爽到呻吟的视频 | 人人妻在人人 | 性欧美熟妇videofreesex | 内射巨臀欧美在线视频 | 免费无码午夜福利片69 | 好屌草这里只有精品 | av在线亚洲欧洲日产一区二区 | 99久久人妻精品免费一区 | 午夜男女很黄的视频 | 欧美人与牲动交xxxx | 久久精品中文字幕大胸 | 无套内谢老熟女 | 亚洲国产精品毛片av不卡在线 | 人人爽人人澡人人高潮 | 99久久精品无码一区二区毛片 | 色情久久久av熟女人妻网站 | 免费看少妇作爱视频 | 99久久久无码国产aaa精品 | 亚洲欧洲日本综合aⅴ在线 | 日本熟妇大屁股人妻 | 无码国模国产在线观看 | 亚洲午夜久久久影院 | 内射爽无广熟女亚洲 | 水蜜桃亚洲一二三四在线 | 亚洲午夜无码久久 | 久久精品无码一区二区三区 | 国产成人无码av在线影院 | 国产 浪潮av性色四虎 | 国产精品无码一区二区桃花视频 | 国产情侣作爱视频免费观看 | 精品人妻中文字幕有码在线 | 无码人妻出轨黑人中文字幕 | 欧美性猛交内射兽交老熟妇 | 亚洲小说春色综合另类 | 无码任你躁久久久久久久 | 国产精品igao视频网 | 国产午夜无码精品免费看 | 日本一区二区三区免费高清 | 欧美成人家庭影院 | 日本护士xxxxhd少妇 | 奇米影视7777久久精品人人爽 | 四虎国产精品免费久久 | 青青青爽视频在线观看 | 国产av无码专区亚洲a∨毛片 | 无套内谢的新婚少妇国语播放 | 国产真实伦对白全集 | 无码人妻精品一区二区三区不卡 | 一二三四在线观看免费视频 | 亚洲精品一区二区三区大桥未久 | 欧美35页视频在线观看 | 成年美女黄网站色大免费视频 | 亚洲人亚洲人成电影网站色 | 人人妻人人澡人人爽欧美一区 | 日日摸日日碰夜夜爽av | 人人妻人人澡人人爽人人精品浪潮 | 国产亚av手机在线观看 | 欧美成人免费全部网站 | 中文字幕日产无线码一区 | 男人的天堂av网站 | 亚洲性无码av中文字幕 | 精品久久久无码人妻字幂 | 麻豆md0077饥渴少妇 | 一本久道久久综合婷婷五月 | 亚洲日本va中文字幕 | 少妇太爽了在线观看 | 国产精品久久国产精品99 | 97色伦图片97综合影院 | 色情久久久av熟女人妻网站 | 国产精品美女久久久 | 久久久久久九九精品久 | 性生交大片免费看l | 国产乱码精品一品二品 | 狠狠色欧美亚洲狠狠色www | 九月婷婷人人澡人人添人人爽 | 久久精品中文字幕一区 | 国产精品99爱免费视频 | 中文无码精品a∨在线观看不卡 | 未满成年国产在线观看 | 亚洲中文字幕在线无码一区二区 | 日本一本二本三区免费 | 亚洲大尺度无码无码专区 | 日本免费一区二区三区最新 | 久久综合九色综合欧美狠狠 | 久久久精品国产sm最大网站 | 爱做久久久久久 | www国产亚洲精品久久久日本 | 亚洲理论电影在线观看 | 久久久久成人片免费观看蜜芽 | 久久99精品久久久久久 | 奇米影视888欧美在线观看 | 亚洲一区av无码专区在线观看 | 无码国模国产在线观看 | 日日摸夜夜摸狠狠摸婷婷 | 亚洲国产精品无码一区二区三区 | 色欲久久久天天天综合网精品 | 亚洲精品一区国产 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 欧美性色19p | 激情人妻另类人妻伦 | 国产小呦泬泬99精品 | 国产特级毛片aaaaaa高潮流水 | 久久国内精品自在自线 | 精品国产麻豆免费人成网站 | 少妇性l交大片欧洲热妇乱xxx | 久久综合久久自在自线精品自 | 丰满人妻翻云覆雨呻吟视频 | 日本一本二本三区免费 | 精品无人区无码乱码毛片国产 | 精品一区二区三区波多野结衣 | 小鲜肉自慰网站xnxx | 亚洲一区二区三区播放 | 国产成人人人97超碰超爽8 | 国产女主播喷水视频在线观看 | 国产麻豆精品一区二区三区v视界 | 国精产品一品二品国精品69xx | 国产热a欧美热a在线视频 | 永久免费精品精品永久-夜色 | 日韩精品久久久肉伦网站 | 国产黄在线观看免费观看不卡 | 亚洲人成网站色7799 | 人人澡人摸人人添 | 久久久久av无码免费网 | 久久人妻内射无码一区三区 | 国产精品美女久久久网av | 精品成在人线av无码免费看 | 国产三级精品三级男人的天堂 | 一本久道久久综合婷婷五月 | 亚洲国产欧美国产综合一区 | 无人区乱码一区二区三区 | 在线精品亚洲一区二区 | 日本精品久久久久中文字幕 | 中文精品久久久久人妻不卡 | 无码国产乱人伦偷精品视频 | 中文字幕无码人妻少妇免费 | 午夜理论片yy44880影院 | 国产真实乱对白精彩久久 | 国产精品久久福利网站 | 国产精品久久久av久久久 | 午夜理论片yy44880影院 | 无码人妻丰满熟妇区五十路百度 | 亚洲色www成人永久网址 | 99久久精品日本一区二区免费 | а√天堂www在线天堂小说 | 国产日产欧产精品精品app | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 久久午夜夜伦鲁鲁片无码免费 | 亚洲精品国产精品乱码视色 | 国产熟妇另类久久久久 | 天堂无码人妻精品一区二区三区 | 毛片内射-百度 | 国产免费无码一区二区视频 | 国产精品无套呻吟在线 | 亚洲人成无码网www | 中文久久乱码一区二区 | 高清无码午夜福利视频 | 亚洲精品午夜国产va久久成人 | 天天躁日日躁狠狠躁免费麻豆 | 国产精品自产拍在线观看 | 国产高清av在线播放 | 国产婷婷色一区二区三区在线 | 中文无码成人免费视频在线观看 | 日本精品人妻无码免费大全 | 中文久久乱码一区二区 | 狠狠色丁香久久婷婷综合五月 | 午夜福利一区二区三区在线观看 | 亚洲欧美国产精品专区久久 | 人妻熟女一区 | 久久人人爽人人爽人人片av高清 | 久久99精品久久久久久 | 台湾无码一区二区 | 久久久无码中文字幕久... | 婷婷丁香五月天综合东京热 | 初尝人妻少妇中文字幕 | 中文无码精品a∨在线观看不卡 | 色综合天天综合狠狠爱 | 国产精品久久久 | 亚洲一区二区三区偷拍女厕 | 亚洲精品鲁一鲁一区二区三区 | 国产精品a成v人在线播放 | 国模大胆一区二区三区 | 无码吃奶揉捏奶头高潮视频 | 无码国产色欲xxxxx视频 | yw尤物av无码国产在线观看 | 免费观看又污又黄的网站 | 成人无码精品1区2区3区免费看 | 亚洲成a人片在线观看无码 | 天天燥日日燥 | 亚洲精品国偷拍自产在线麻豆 | 久久天天躁夜夜躁狠狠 | 欧美人与牲动交xxxx | 国产精品毛片一区二区 | 无码av中文字幕免费放 | 激情内射亚州一区二区三区爱妻 | 又大又硬又黄的免费视频 | 一本久久a久久精品亚洲 | 欧美老熟妇乱xxxxx | 国产小呦泬泬99精品 | 色欲久久久天天天综合网精品 | 久久综合久久自在自线精品自 | 六月丁香婷婷色狠狠久久 | 精品久久8x国产免费观看 | 久久久久亚洲精品中文字幕 | 婷婷丁香五月天综合东京热 | 一本色道久久综合亚洲精品不卡 | 久久zyz资源站无码中文动漫 | 国产电影无码午夜在线播放 | 曰本女人与公拘交酡免费视频 | 中国女人内谢69xxxxxa片 | 精品人人妻人人澡人人爽人人 | 日日天干夜夜狠狠爱 | 久久zyz资源站无码中文动漫 | 狠狠亚洲超碰狼人久久 | 丰满护士巨好爽好大乳 | 乱人伦人妻中文字幕无码 | 强开小婷嫩苞又嫩又紧视频 | 日本一区二区更新不卡 | 精品偷拍一区二区三区在线看 | 少妇高潮一区二区三区99 | 国产激情无码一区二区 | 黑人大群体交免费视频 | 久久99精品国产.久久久久 | 天海翼激烈高潮到腰振不止 | 九九久久精品国产免费看小说 | 天天摸天天碰天天添 | 成人精品天堂一区二区三区 | 人妻aⅴ无码一区二区三区 | 无码人妻丰满熟妇区毛片18 | 在线观看国产午夜福利片 | 久久久久久久女国产乱让韩 | 99久久精品国产一区二区蜜芽 | 麻豆国产97在线 | 欧洲 | 天堂在线观看www | 久在线观看福利视频 | 欧美阿v高清资源不卡在线播放 | 国内精品久久久久久中文字幕 | 精品亚洲成av人在线观看 | 久久精品人人做人人综合 | 国产精品久久久一区二区三区 | 欧美猛少妇色xxxxx | 久久人人爽人人爽人人片ⅴ | 国产成人精品无码播放 | 色五月五月丁香亚洲综合网 | 国产精品a成v人在线播放 | 国产精品.xx视频.xxtv | 久久精品国产一区二区三区 | 久久久中文字幕日本无吗 | av无码不卡在线观看免费 | 欧洲熟妇精品视频 | 在线看片无码永久免费视频 | 偷窥村妇洗澡毛毛多 | a在线亚洲男人的天堂 | 日产精品99久久久久久 | 国产明星裸体无码xxxx视频 | 夜精品a片一区二区三区无码白浆 | 大色综合色综合网站 | 国产精品毛多多水多 | 国产激情综合五月久久 | 久久天天躁狠狠躁夜夜免费观看 | 欧美大屁股xxxxhd黑色 | 99久久久无码国产aaa精品 | 亚洲色大成网站www | 精品国产aⅴ无码一区二区 | 久久精品国产日本波多野结衣 | 国产无套粉嫩白浆在线 | 亚洲国产午夜精品理论片 | 国产成人一区二区三区别 | 国内精品人妻无码久久久影院 | 亚洲日本va中文字幕 | 一本久久a久久精品vr综合 | 免费无码一区二区三区蜜桃大 | 午夜免费福利小电影 | 国产成人无码a区在线观看视频app | 中文字幕无码av波多野吉衣 | а天堂中文在线官网 | 亚洲精品中文字幕 | 夜夜高潮次次欢爽av女 | 麻豆国产97在线 | 欧洲 | 亚洲精品国产第一综合99久久 | 四虎国产精品一区二区 | 亚洲熟女一区二区三区 | 人人妻人人澡人人爽欧美精品 | 国内老熟妇对白xxxxhd | 3d动漫精品啪啪一区二区中 | 一本久道高清无码视频 | 婷婷丁香六月激情综合啪 | 999久久久国产精品消防器材 | 色婷婷香蕉在线一区二区 | 狠狠噜狠狠狠狠丁香五月 | 清纯唯美经典一区二区 | 国产精品亚洲一区二区三区喷水 | 熟女俱乐部五十路六十路av | 成人三级无码视频在线观看 | 日韩av无码中文无码电影 | 狠狠色丁香久久婷婷综合五月 | 一本久久a久久精品亚洲 | 图片小说视频一区二区 | 国产精品亚洲а∨无码播放麻豆 | 国产精品爱久久久久久久 | 亚洲毛片av日韩av无码 | 国产精品理论片在线观看 | 国产精品人妻一区二区三区四 | 中文字幕乱码人妻无码久久 | 性生交大片免费看女人按摩摩 | 伊人久久大香线蕉av一区二区 | 麻豆精品国产精华精华液好用吗 | 激情亚洲一区国产精品 | 内射后入在线观看一区 | 青青草原综合久久大伊人精品 | 精品国精品国产自在久国产87 | 亚洲a无码综合a国产av中文 | 中文字幕无码免费久久99 | 国产av一区二区三区最新精品 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲一区二区三区含羞草 | 夜先锋av资源网站 | 老司机亚洲精品影院 | 日日摸天天摸爽爽狠狠97 | 国产人成高清在线视频99最全资源 | 精品少妇爆乳无码av无码专区 | 欧美一区二区三区视频在线观看 | 51国偷自产一区二区三区 | 亚洲小说春色综合另类 | 亚洲色大成网站www国产 | 久久99精品久久久久婷婷 | 狠狠色噜噜狠狠狠7777奇米 | 国产激情一区二区三区 | 国产精品久久久久久亚洲毛片 | 亚洲国产日韩a在线播放 | 国产激情综合五月久久 | 日本免费一区二区三区最新 | 伊在人天堂亚洲香蕉精品区 | 奇米影视7777久久精品人人爽 | 九月婷婷人人澡人人添人人爽 | 久久人人爽人人爽人人片av高清 | aⅴ在线视频男人的天堂 | 国产成人无码av一区二区 | 国产网红无码精品视频 | 免费无码午夜福利片69 | 中文字幕乱码亚洲无线三区 | 免费无码肉片在线观看 | √天堂资源地址中文在线 | 成人女人看片免费视频放人 | 日本在线高清不卡免费播放 | 蜜臀av在线播放 久久综合激激的五月天 | 成 人 网 站国产免费观看 | 对白脏话肉麻粗话av | 无码午夜成人1000部免费视频 | 性色欲网站人妻丰满中文久久不卡 | 久久www免费人成人片 | 欧美真人作爱免费视频 | 最近免费中文字幕中文高清百度 | 国产婷婷色一区二区三区在线 | 久久精品人人做人人综合 | 国产成人精品久久亚洲高清不卡 | 中文字幕色婷婷在线视频 | 波多野结衣aⅴ在线 | 亚洲熟妇自偷自拍另类 | 精品无人国产偷自产在线 | 性欧美疯狂xxxxbbbb | 亚洲国产成人a精品不卡在线 | 国产午夜无码精品免费看 | 久久国产36精品色熟妇 | 欧美国产日韩亚洲中文 | 国产婷婷色一区二区三区在线 | 最新国产乱人伦偷精品免费网站 | 国产精品高潮呻吟av久久4虎 | 国产人妻大战黑人第1集 | 久久午夜无码鲁丝片午夜精品 | 一二三四社区在线中文视频 | 国产va免费精品观看 | 久久午夜无码鲁丝片秋霞 | 日韩少妇内射免费播放 | 亚洲中文字幕无码中字 | 亚洲日本va午夜在线电影 | 日韩无套无码精品 | 亚洲码国产精品高潮在线 | 97色伦图片97综合影院 | 国产成人一区二区三区别 | 无码乱肉视频免费大全合集 | 无码吃奶揉捏奶头高潮视频 | 亚洲 日韩 欧美 成人 在线观看 | 牲欲强的熟妇农村老妇女视频 | 国产精品久久久久久亚洲毛片 | 精品久久8x国产免费观看 | 中文无码精品a∨在线观看不卡 | 国产无遮挡又黄又爽免费视频 | 一个人看的www免费视频在线观看 | 国产无遮挡吃胸膜奶免费看 | 99视频精品全部免费免费观看 | 欧美国产日产一区二区 | 亚洲中文字幕在线观看 | 思思久久99热只有频精品66 | 综合网日日天干夜夜久久 | 两性色午夜免费视频 | 国产美女极度色诱视频www | 色综合视频一区二区三区 | 国产人妻精品午夜福利免费 | 强伦人妻一区二区三区视频18 | 免费国产黄网站在线观看 | 内射老妇bbwx0c0ck | 国产97人人超碰caoprom | 欧美 日韩 人妻 高清 中文 | 俺去俺来也www色官网 | 欧美丰满老熟妇xxxxx性 | 午夜时刻免费入口 | 无码国产激情在线观看 | 亚洲中文字幕无码中字 | 久久国产精品精品国产色婷婷 | 久久久亚洲欧洲日产国码αv | 亚洲精品国产第一综合99久久 | 最新国产麻豆aⅴ精品无码 | 中文字幕精品av一区二区五区 | 无码人妻出轨黑人中文字幕 | 天堂久久天堂av色综合 | 日日天日日夜日日摸 | 久久天天躁狠狠躁夜夜免费观看 | 国産精品久久久久久久 | 精品久久久无码中文字幕 | 中文字幕人妻无码一夲道 | 美女扒开屁股让男人桶 | 欧美性生交活xxxxxdddd | 性啪啪chinese东北女人 | 国内老熟妇对白xxxxhd | 亚洲国产精品无码一区二区三区 | 亚洲国产欧美在线成人 | 亚洲a无码综合a国产av中文 | 波多野结衣 黑人 | 2020最新国产自产精品 | 波多野42部无码喷潮在线 | 国产精品无码一区二区桃花视频 | 成人欧美一区二区三区黑人免费 | 精品国产麻豆免费人成网站 | 亚洲中文字幕在线无码一区二区 | 亚洲综合伊人久久大杳蕉 | 夜夜夜高潮夜夜爽夜夜爰爰 | 久久伊人色av天堂九九小黄鸭 | 久久综合狠狠综合久久综合88 | 久久综合香蕉国产蜜臀av | 超碰97人人做人人爱少妇 | 国产乱人无码伦av在线a | 初尝人妻少妇中文字幕 | 欧美国产日产一区二区 | 欧美激情综合亚洲一二区 | √天堂资源地址中文在线 | 亚洲成色在线综合网站 | 亚洲精品久久久久avwww潮水 | 国产国语老龄妇女a片 | 久久久久成人片免费观看蜜芽 | 日日噜噜噜噜夜夜爽亚洲精品 | 色情久久久av熟女人妻网站 | 精品久久8x国产免费观看 | 2020最新国产自产精品 | 青青青爽视频在线观看 | 欧美亚洲日韩国产人成在线播放 | 国产精品亚洲五月天高清 | 欧美老熟妇乱xxxxx | 性欧美大战久久久久久久 | 中文字幕无码av波多野吉衣 | 国产成人无码av片在线观看不卡 | 午夜精品一区二区三区在线观看 | 国产精品无码一区二区三区不卡 | 性欧美videos高清精品 | 丰满少妇人妻久久久久久 | 欧美老人巨大xxxx做受 | 少妇高潮一区二区三区99 | 在线а√天堂中文官网 | 久久久久国色av免费观看性色 | 丝袜足控一区二区三区 | 少妇性俱乐部纵欲狂欢电影 | 国产激情无码一区二区 | 亚洲热妇无码av在线播放 | 狠狠色欧美亚洲狠狠色www | 亚洲成a人一区二区三区 | 日韩精品无码一本二本三本色 | 国产av一区二区三区最新精品 | 亚洲自偷精品视频自拍 | 天堂а√在线地址中文在线 | 国产又爽又猛又粗的视频a片 | 色欲人妻aaaaaaa无码 | 国产亚洲人成a在线v网站 | 又湿又紧又大又爽a视频国产 | 亚洲毛片av日韩av无码 | 国产成人亚洲综合无码 | 欧洲美熟女乱又伦 | 麻豆国产丝袜白领秘书在线观看 | 久久久www成人免费毛片 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 夜精品a片一区二区三区无码白浆 | 国产xxx69麻豆国语对白 | 成人精品一区二区三区中文字幕 | 国产人妖乱国产精品人妖 | 国产午夜无码精品免费看 | 少妇无码av无码专区在线观看 | 精品久久8x国产免费观看 | 国内精品人妻无码久久久影院蜜桃 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 久久99热只有频精品8 | 狠狠色欧美亚洲狠狠色www | 国产麻豆精品精东影业av网站 | 久久久亚洲欧洲日产国码αv | 日本精品人妻无码免费大全 | 国产亚av手机在线观看 | 国产av人人夜夜澡人人爽麻豆 | 久久久久久a亚洲欧洲av冫 | av在线亚洲欧洲日产一区二区 | 乌克兰少妇xxxx做受 | 亚洲成熟女人毛毛耸耸多 | 色 综合 欧美 亚洲 国产 | 国产黄在线观看免费观看不卡 | 伊人久久大香线蕉午夜 | 日本成熟视频免费视频 | 久久精品成人欧美大片 | 日本乱人伦片中文三区 | 无码人妻精品一区二区三区不卡 | 99国产欧美久久久精品 | 免费人成在线观看网站 | 天天拍夜夜添久久精品 | 小sao货水好多真紧h无码视频 | 人妻少妇被猛烈进入中文字幕 | 国产人妻大战黑人第1集 | 丝袜人妻一区二区三区 | 又粗又大又硬毛片免费看 | 又黄又爽又色的视频 | 亚洲精品一区二区三区四区五区 | 国产精品亚洲综合色区韩国 | 自拍偷自拍亚洲精品被多人伦好爽 | 日日躁夜夜躁狠狠躁 | 男女猛烈xx00免费视频试看 | 精品无码国产自产拍在线观看蜜 | 亚洲高清偷拍一区二区三区 | 国产无遮挡吃胸膜奶免费看 | 国产激情无码一区二区 | 丰满妇女强制高潮18xxxx | 无码午夜成人1000部免费视频 | 丰满人妻精品国产99aⅴ | 日韩欧美中文字幕在线三区 | 女人被男人躁得好爽免费视频 | 亚洲 a v无 码免 费 成 人 a v | 亚洲人成网站免费播放 | 少妇人妻大乳在线视频 | 无码午夜成人1000部免费视频 | 日本大乳高潮视频在线观看 | 亚洲区小说区激情区图片区 | 日本精品久久久久中文字幕 | 爆乳一区二区三区无码 | 乱人伦中文视频在线观看 | 99视频精品全部免费免费观看 | 欧美日韩一区二区综合 | 牲欲强的熟妇农村老妇女 | 亚洲精品www久久久 | 日产精品99久久久久久 | 欧洲熟妇色 欧美 | 亚洲欧洲无卡二区视頻 | 色一情一乱一伦一视频免费看 | 精品无人区无码乱码毛片国产 | 中文字幕乱码中文乱码51精品 | 曰韩无码二三区中文字幕 | 国产艳妇av在线观看果冻传媒 | 97夜夜澡人人爽人人喊中国片 | 亚洲熟妇色xxxxx欧美老妇 | 久久久久av无码免费网 | 领导边摸边吃奶边做爽在线观看 | 狂野欧美激情性xxxx | 麻豆国产97在线 | 欧洲 | 国产精品久久久久久亚洲毛片 | 中文字幕中文有码在线 | 永久黄网站色视频免费直播 | 国产乱人伦偷精品视频 | 水蜜桃av无码 | 奇米影视7777久久精品人人爽 | 精品久久综合1区2区3区激情 | 少妇无码av无码专区在线观看 | 欧美黑人乱大交 | 国产精品第一国产精品 | 清纯唯美经典一区二区 | 亚洲综合另类小说色区 | 久久亚洲日韩精品一区二区三区 | 午夜精品久久久内射近拍高清 | 国产成人无码av在线影院 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 欧美黑人性暴力猛交喷水 | 亚洲日本在线电影 | 天天拍夜夜添久久精品 | 欧美大屁股xxxxhd黑色 | 亚洲成av人片在线观看无码不卡 | 精品无码av一区二区三区 | 国产精品亚洲一区二区三区喷水 | 国产亚洲精品久久久久久国模美 | 又湿又紧又大又爽a视频国产 | 人妻天天爽夜夜爽一区二区 | 大肉大捧一进一出视频出来呀 | 久久综合九色综合欧美狠狠 | 国产精品久久久久久亚洲毛片 | 国产亚洲美女精品久久久2020 | 性生交片免费无码看人 | 国产成人av免费观看 | 国产精品无码一区二区三区不卡 | аⅴ资源天堂资源库在线 | 内射老妇bbwx0c0ck | 激情人妻另类人妻伦 | 黑人巨大精品欧美一区二区 | 日本成熟视频免费视频 | 高清不卡一区二区三区 | 久久久国产一区二区三区 | 亚洲男人av香蕉爽爽爽爽 | 激情内射亚州一区二区三区爱妻 | 中文毛片无遮挡高清免费 | 亚洲成a人片在线观看日本 | 大屁股大乳丰满人妻 | 人妻插b视频一区二区三区 | 精品少妇爆乳无码av无码专区 | 婷婷五月综合缴情在线视频 | 国产麻豆精品精东影业av网站 | 国产精品久久久久7777 | 亚洲va中文字幕无码久久不卡 | 亚洲欧美国产精品专区久久 | 蜜桃臀无码内射一区二区三区 | 精品aⅴ一区二区三区 | 麻豆国产丝袜白领秘书在线观看 | 丰满人妻被黑人猛烈进入 | 欧美精品免费观看二区 | 久久久久久亚洲精品a片成人 | 人人妻人人澡人人爽欧美一区 | 亚洲中文无码av永久不收费 | 无码国模国产在线观看 | 一区二区三区高清视频一 | 丝袜足控一区二区三区 | 亚洲精品久久久久久一区二区 | 奇米影视7777久久精品 | 国产内射爽爽大片视频社区在线 | 久久久中文久久久无码 | 欧洲精品码一区二区三区免费看 | 欧美喷潮久久久xxxxx | 久久熟妇人妻午夜寂寞影院 | 特大黑人娇小亚洲女 | 欧美午夜特黄aaaaaa片 | 动漫av网站免费观看 | 最新国产麻豆aⅴ精品无码 | 亚洲a无码综合a国产av中文 | 国产成人无码av一区二区 | 日日夜夜撸啊撸 | 天天做天天爱天天爽综合网 | 国产成人av免费观看 | 欧美xxxxx精品 | 在线观看欧美一区二区三区 | 人人爽人人澡人人高潮 | 无码av最新清无码专区吞精 | 精品久久久久香蕉网 | 亚洲の无码国产の无码步美 | 色五月五月丁香亚洲综合网 | 无码午夜成人1000部免费视频 | 欧美国产日韩亚洲中文 | 亚洲综合无码久久精品综合 | 久久久中文字幕日本无吗 | 成人片黄网站色大片免费观看 | 欧美精品在线观看 | 18黄暴禁片在线观看 | 好屌草这里只有精品 | 少妇无码av无码专区在线观看 | 又粗又大又硬毛片免费看 | 精品国产成人一区二区三区 | 3d动漫精品啪啪一区二区中 | 九九久久精品国产免费看小说 | 亚洲人成网站在线播放942 | 欧美日韩亚洲国产精品 | 精品厕所偷拍各类美女tp嘘嘘 | 67194成是人免费无码 | 熟女少妇在线视频播放 | 国产极品美女高潮无套在线观看 | 全黄性性激高免费视频 | 日日躁夜夜躁狠狠躁 | 国产内射爽爽大片视频社区在线 | 最新国产乱人伦偷精品免费网站 | 欧美性生交xxxxx久久久 | 欧美日韩一区二区免费视频 | 欧美 日韩 人妻 高清 中文 | 亚洲精品中文字幕久久久久 | 亚洲欧美日韩国产精品一区二区 | 精品成在人线av无码免费看 | 牲欲强的熟妇农村老妇女视频 | 国产精品无码成人午夜电影 | 中文字幕乱妇无码av在线 | 精品国产一区二区三区av 性色 | 丁香啪啪综合成人亚洲 | 亚洲人成网站免费播放 | 精品国产精品久久一区免费式 | 国产亚洲精品久久久ai换 | 玩弄少妇高潮ⅹxxxyw | 国产美女极度色诱视频www | 亚洲欧美色中文字幕在线 | 国产午夜视频在线观看 | 国产又爽又猛又粗的视频a片 | 99久久精品无码一区二区毛片 | 国内精品人妻无码久久久影院蜜桃 | 九九在线中文字幕无码 | 亚洲精品久久久久中文第一幕 | 熟妇人妻无码xxx视频 | 在教室伦流澡到高潮hnp视频 | 俺去俺来也www色官网 | 麻豆国产丝袜白领秘书在线观看 | 国产偷自视频区视频 | 粗大的内捧猛烈进出视频 | 日韩成人一区二区三区在线观看 | 欧美国产日韩亚洲中文 | 牲交欧美兽交欧美 | 日韩人妻无码一区二区三区久久99 | 久久亚洲日韩精品一区二区三区 | 精品国精品国产自在久国产87 | 欧美性猛交内射兽交老熟妇 | 日日碰狠狠躁久久躁蜜桃 | 日本精品人妻无码免费大全 | 日韩精品无码免费一区二区三区 | aⅴ在线视频男人的天堂 | 正在播放老肥熟妇露脸 | 九月婷婷人人澡人人添人人爽 | 国产精品久久久久久久影院 | 特黄特色大片免费播放器图片 | 国产精品99久久精品爆乳 | 夜先锋av资源网站 | 国产精品美女久久久久av爽李琼 | 久久97精品久久久久久久不卡 | 麻花豆传媒剧国产免费mv在线 | 久青草影院在线观看国产 | 亚洲成av人影院在线观看 | 国产一区二区三区影院 | 最近中文2019字幕第二页 | 天堂无码人妻精品一区二区三区 | 国产人妻人伦精品1国产丝袜 | 青春草在线视频免费观看 | 亚洲精品欧美二区三区中文字幕 | 人人妻人人澡人人爽欧美一区九九 | 国产网红无码精品视频 | 小sao货水好多真紧h无码视频 | 人人妻在人人 | 国产亚洲美女精品久久久2020 | 精品国产乱码久久久久乱码 | 国产av剧情md精品麻豆 | 日韩无套无码精品 | 亚洲成av人在线观看网址 | 麻豆人妻少妇精品无码专区 | 中文字幕人妻无码一夲道 | 300部国产真实乱 | 一本色道久久综合亚洲精品不卡 | 久久久久久九九精品久 | 国产色xx群视频射精 | 国产suv精品一区二区五 | 天天av天天av天天透 | 女人被男人爽到呻吟的视频 | 亚洲精品中文字幕久久久久 | 丁香啪啪综合成人亚洲 | 国产一区二区不卡老阿姨 | 四虎永久在线精品免费网址 | 亚洲精品久久久久久一区二区 | 又粗又大又硬又长又爽 | 97久久超碰中文字幕 | 国产熟女一区二区三区四区五区 | 奇米影视7777久久精品人人爽 | 久热国产vs视频在线观看 | 啦啦啦www在线观看免费视频 | 人人爽人人澡人人高潮 | 鲁大师影院在线观看 | 欧美成人午夜精品久久久 | 成人片黄网站色大片免费观看 | 久久精品丝袜高跟鞋 | 色窝窝无码一区二区三区色欲 | 国产精品亚洲五月天高清 | 思思久久99热只有频精品66 | 欧美丰满熟妇xxxx | 国产亚洲精品精品国产亚洲综合 | 亚洲理论电影在线观看 | 亚洲精品综合一区二区三区在线 | 久久精品国产日本波多野结衣 | 欧美激情内射喷水高潮 | 久久精品99久久香蕉国产色戒 | 夜夜躁日日躁狠狠久久av | 内射老妇bbwx0c0ck | 一二三四在线观看免费视频 | 少妇被粗大的猛进出69影院 | 麻豆国产丝袜白领秘书在线观看 | 中文字幕无码热在线视频 | 特黄特色大片免费播放器图片 | 无码福利日韩神码福利片 | 国产无套内射久久久国产 | 在线看片无码永久免费视频 | 国产人妻大战黑人第1集 | 狂野欧美性猛交免费视频 | 一区二区传媒有限公司 | 少妇激情av一区二区 | 特大黑人娇小亚洲女 | 久久久久国色av免费观看性色 | 日本va欧美va欧美va精品 | 宝宝好涨水快流出来免费视频 | 精品一区二区不卡无码av | 精品国产青草久久久久福利 | 欧美国产日产一区二区 | 国产人妻精品一区二区三区不卡 | 动漫av网站免费观看 | 国产亚洲日韩欧美另类第八页 | 一个人看的www免费视频在线观看 | 丰满人妻精品国产99aⅴ | 久久亚洲a片com人成 | 中文字幕+乱码+中文字幕一区 | 激情亚洲一区国产精品 | 久久久久久久女国产乱让韩 | 欧美精品在线观看 | 激情内射日本一区二区三区 | 亚洲色在线无码国产精品不卡 | 欧美精品国产综合久久 | 国产精品久久久久影院嫩草 | 精品久久久久久亚洲精品 | 亚洲伊人久久精品影院 | 亚洲精品国偷拍自产在线观看蜜桃 | 中文久久乱码一区二区 | 精品国产精品久久一区免费式 | 国产xxx69麻豆国语对白 | 亚洲成a人片在线观看日本 | 欧美人与禽猛交狂配 | 日本www一道久久久免费榴莲 | 亚洲男人av香蕉爽爽爽爽 | 国产成人精品无码播放 | 中文字幕无线码免费人妻 | 无码国产色欲xxxxx视频 | 欧美 日韩 亚洲 在线 | 亚洲熟妇色xxxxx欧美老妇 | 成人欧美一区二区三区黑人 | 亚洲日韩一区二区 | 三级4级全黄60分钟 | av人摸人人人澡人人超碰下载 | 久久久久av无码免费网 | 蜜桃av抽搐高潮一区二区 | 亚洲色www成人永久网址 | 一本久久a久久精品亚洲 | 国产成人精品视频ⅴa片软件竹菊 | 奇米影视888欧美在线观看 | 97色伦图片97综合影院 | 亚洲aⅴ无码成人网站国产app | 色偷偷人人澡人人爽人人模 | 国产精品无码一区二区三区不卡 | 大肉大捧一进一出好爽视频 | 玩弄少妇高潮ⅹxxxyw | 成在人线av无码免费 | 国内精品久久毛片一区二区 | 波多野42部无码喷潮在线 | 亚洲国产精品一区二区第一页 | 2020久久超碰国产精品最新 | 少妇愉情理伦片bd | 国产激情无码一区二区 | 午夜福利一区二区三区在线观看 | 无码福利日韩神码福利片 | 色婷婷欧美在线播放内射 | 国产麻豆精品一区二区三区v视界 | 亚洲の无码国产の无码步美 | 久久午夜无码鲁丝片午夜精品 | 亚洲午夜福利在线观看 | 欧美 丝袜 自拍 制服 另类 | 国产精品无码一区二区桃花视频 | 久久精品一区二区三区四区 | 久久无码中文字幕免费影院蜜桃 | 欧美老人巨大xxxx做受 | 久久久久成人精品免费播放动漫 | 国产成人午夜福利在线播放 | 俺去俺来也在线www色官网 | 中文字幕无码热在线视频 | 亚洲成av人在线观看网址 | 亚洲精品美女久久久久久久 | 人人澡人人透人人爽 | 亚洲精品久久久久中文第一幕 | 少妇厨房愉情理9仑片视频 | 日本爽爽爽爽爽爽在线观看免 | 国产午夜精品一区二区三区嫩草 | 久久久婷婷五月亚洲97号色 | 久久国产精品萌白酱免费 | 成 人 网 站国产免费观看 | 国产极品视觉盛宴 | 欧美人妻一区二区三区 | 亚洲精品午夜无码电影网 | 国产在热线精品视频 | 国产麻豆精品精东影业av网站 | 未满成年国产在线观看 | 国产真人无遮挡作爱免费视频 | 人人妻人人澡人人爽欧美一区 | 丰满肥臀大屁股熟妇激情视频 | 国产特级毛片aaaaaa高潮流水 | 久久99精品久久久久婷婷 | 久久综合网欧美色妞网 | 三级4级全黄60分钟 | 亚洲精品综合五月久久小说 | 日韩精品无码免费一区二区三区 | 夜夜夜高潮夜夜爽夜夜爰爰 | 中文字幕无码免费久久9一区9 | 色窝窝无码一区二区三区色欲 | 国产精品无码一区二区三区不卡 | 毛片内射-百度 | 人人澡人人妻人人爽人人蜜桃 | 色综合久久久久综合一本到桃花网 | 人人爽人人爽人人片av亚洲 | 精品久久久无码人妻字幂 | 国产va免费精品观看 | 未满小14洗澡无码视频网站 | aⅴ在线视频男人的天堂 | 俺去俺来也在线www色官网 | 亚洲欧美精品aaaaaa片 | 日本精品少妇一区二区三区 | 亚洲精品一区三区三区在线观看 | 高潮毛片无遮挡高清免费视频 | 免费人成在线观看网站 | 天天综合网天天综合色 | 国产熟女一区二区三区四区五区 | 亚洲精品综合一区二区三区在线 | 国产精品无码一区二区桃花视频 | 中文字幕人妻无码一区二区三区 | 欧美黑人性暴力猛交喷水 | 亚洲春色在线视频 | 国产特级毛片aaaaaa高潮流水 | 18无码粉嫩小泬无套在线观看 | 天天av天天av天天透 | 免费无码肉片在线观看 | 亚洲日本va中文字幕 | 人人妻在人人 | 性欧美疯狂xxxxbbbb | 伊人久久大香线焦av综合影院 | 久久精品国产日本波多野结衣 | 无套内谢的新婚少妇国语播放 | 老子影院午夜精品无码 | 亚洲一区二区三区播放 | 人妻插b视频一区二区三区 | 亚洲午夜无码久久 | 精品无码一区二区三区的天堂 | 久久精品国产亚洲精品 | 亚洲人成无码网www | 日韩av无码一区二区三区不卡 | 国产精品自产拍在线观看 | 欧美日韩综合一区二区三区 | 亚洲a无码综合a国产av中文 | 亚洲一区二区三区无码久久 | 中国大陆精品视频xxxx | 图片小说视频一区二区 | 对白脏话肉麻粗话av | 国产精品久久久av久久久 | 无码国产乱人伦偷精品视频 | 成人试看120秒体验区 | 久久精品中文闷骚内射 | www国产精品内射老师 | 国产精华av午夜在线观看 | 日本乱人伦片中文三区 | 成人亚洲精品久久久久 | 一本大道伊人av久久综合 | 国产av一区二区三区最新精品 | 漂亮人妻洗澡被公强 日日躁 | 99久久无码一区人妻 | 亚洲aⅴ无码成人网站国产app | 麻豆md0077饥渴少妇 | 97资源共享在线视频 | 国产尤物精品视频 | 精品一区二区三区无码免费视频 | 中文无码精品a∨在线观看不卡 | 国产莉萝无码av在线播放 | 俺去俺来也www色官网 | 亚洲精品国产a久久久久久 | 国产激情综合五月久久 | 在线 国产 欧美 亚洲 天堂 | 久久国语露脸国产精品电影 | 青青草原综合久久大伊人精品 | 国产精品无码永久免费888 | 国产精品久久福利网站 | 亚洲精品午夜国产va久久成人 | 久久99精品国产麻豆蜜芽 | 无码免费一区二区三区 | 久久视频在线观看精品 | 欧美人妻一区二区三区 | 国产精品a成v人在线播放 | 2019午夜福利不卡片在线 | 国产在线精品一区二区三区直播 | 草草网站影院白丝内射 | 3d动漫精品啪啪一区二区中 | 秋霞特色aa大片 | 久久天天躁狠狠躁夜夜免费观看 | 久久久久久九九精品久 | 亚洲综合色区中文字幕 | 日日躁夜夜躁狠狠躁 | 一本精品99久久精品77 | 性色欲网站人妻丰满中文久久不卡 | 亚洲成av人片天堂网无码】 | 强奷人妻日本中文字幕 | 日本xxxx色视频在线观看免费 | 国产热a欧美热a在线视频 | 国产97人人超碰caoprom | 亚洲日韩av一区二区三区中文 | 欧美35页视频在线观看 | 国产熟妇另类久久久久 | 成熟妇人a片免费看网站 | 成人免费无码大片a毛片 | 国产人妻精品一区二区三区不卡 | 欧美成人午夜精品久久久 | 亚洲精品国产精品乱码视色 | 久久99精品久久久久婷婷 | 天天摸天天透天天添 | 青青青手机频在线观看 | 亚洲自偷自拍另类第1页 | 国内精品久久久久久中文字幕 | 免费播放一区二区三区 | 波多野42部无码喷潮在线 | 中文字幕无码免费久久9一区9 | 亚洲国产综合无码一区 | 精品少妇爆乳无码av无码专区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 亚洲爆乳无码专区 | 九九综合va免费看 | 久久久久久久久蜜桃 | 午夜理论片yy44880影院 | 巨爆乳无码视频在线观看 | 人人超人人超碰超国产 | 久久久久se色偷偷亚洲精品av | 中文字幕无码视频专区 | 国产一区二区三区精品视频 | 中文无码精品a∨在线观看不卡 | 国产va免费精品观看 | 无码国内精品人妻少妇 | 亚洲午夜无码久久 | 亚洲精品久久久久久一区二区 | 免费看少妇作爱视频 | 自拍偷自拍亚洲精品10p | 成人免费视频视频在线观看 免费 | 亚洲国产精品一区二区美利坚 | 丰满少妇人妻久久久久久 | 亚洲国产欧美国产综合一区 | 小鲜肉自慰网站xnxx | 久久久久久九九精品久 | 国产高潮视频在线观看 | 久久亚洲精品中文字幕无男同 | 欧美性黑人极品hd | 人妻熟女一区 | 夫妻免费无码v看片 | 三上悠亚人妻中文字幕在线 | 无码国产乱人伦偷精品视频 | 精品无码成人片一区二区98 | 鲁鲁鲁爽爽爽在线视频观看 | 亚洲色欲色欲天天天www | 色婷婷综合中文久久一本 | 黑人巨大精品欧美黑寡妇 | 麻豆蜜桃av蜜臀av色欲av | 桃花色综合影院 | 国产又爽又黄又刺激的视频 | 亚洲欧美色中文字幕在线 | 国产av无码专区亚洲awww | 特级做a爰片毛片免费69 | 清纯唯美经典一区二区 | 人妻插b视频一区二区三区 | 在线观看欧美一区二区三区 | 99久久久无码国产aaa精品 | 在线a亚洲视频播放在线观看 | 乌克兰少妇xxxx做受 | 久久精品丝袜高跟鞋 | 国产一区二区三区日韩精品 | 国产性生交xxxxx无码 | 久久99久久99精品中文字幕 | 国产成人精品一区二区在线小狼 | 麻豆国产人妻欲求不满谁演的 | 狠狠亚洲超碰狼人久久 | 大肉大捧一进一出好爽视频 | 精品午夜福利在线观看 | 99精品国产综合久久久久五月天 | 最近中文2019字幕第二页 | 亚洲综合在线一区二区三区 | 无码精品人妻一区二区三区av | 成人av无码一区二区三区 | 国产绳艺sm调教室论坛 | 久久婷婷五月综合色国产香蕉 | 波多野42部无码喷潮在线 | 久久精品国产一区二区三区 | 精品欧美一区二区三区久久久 | 无码国内精品人妻少妇 | 人人妻人人澡人人爽欧美一区九九 | 天天摸天天透天天添 | 天堂а√在线中文在线 | 老司机亚洲精品影院 | 国产人成高清在线视频99最全资源 | 精品国产福利一区二区 | 最新版天堂资源中文官网 | 国产精品视频免费播放 | 无码午夜成人1000部免费视频 | 在线天堂新版最新版在线8 | 中文精品久久久久人妻不卡 | 国语自产偷拍精品视频偷 | 色窝窝无码一区二区三区色欲 | 亚洲精品久久久久中文第一幕 | 亚洲精品久久久久久一区二区 | 欧美日本免费一区二区三区 | 日日碰狠狠躁久久躁蜜桃 | 少妇性荡欲午夜性开放视频剧场 | 亚洲国产精品久久人人爱 | 欧洲vodafone精品性 | 中文精品久久久久人妻不卡 | 欧美日韩视频无码一区二区三 | 粉嫩少妇内射浓精videos | 国产成人精品视频ⅴa片软件竹菊 | 激情内射亚州一区二区三区爱妻 | 国产片av国语在线观看 | 学生妹亚洲一区二区 | 国产精品高潮呻吟av久久 | 色婷婷综合中文久久一本 | 国产内射老熟女aaaa | 97夜夜澡人人双人人人喊 | 亚洲gv猛男gv无码男同 | 男人的天堂2018无码 | 亚洲乱亚洲乱妇50p | 中文字幕中文有码在线 | a片免费视频在线观看 | 老司机亚洲精品影院无码 | 老太婆性杂交欧美肥老太 | 99视频精品全部免费免费观看 | 青青草原综合久久大伊人精品 | 日本xxxx色视频在线观看免费 | 男女下面进入的视频免费午夜 | 日本一区二区三区免费高清 | 全黄性性激高免费视频 | 亚洲精品欧美二区三区中文字幕 | 国产美女极度色诱视频www | 午夜精品一区二区三区的区别 | 免费国产成人高清在线观看网站 | 久在线观看福利视频 | 人人超人人超碰超国产 | 午夜精品久久久久久久 | 成人片黄网站色大片免费观看 | 99久久久国产精品无码免费 | 国产精品无码一区二区三区不卡 | 美女扒开屁股让男人桶 | 5858s亚洲色大成网站www | 国产成人综合色在线观看网站 | 日韩精品无码免费一区二区三区 | 中文字幕人妻无码一夲道 | 久久久久人妻一区精品色欧美 | 日本一区二区三区免费播放 | 国产精品久久国产三级国 | 欧美性猛交xxxx富婆 | 亚洲大尺度无码无码专区 | 亚洲综合无码久久精品综合 | 成人无码精品1区2区3区免费看 | 激情内射亚州一区二区三区爱妻 | 天天躁夜夜躁狠狠是什么心态 | 少妇人妻大乳在线视频 | 亚洲国产成人a精品不卡在线 | 亚洲毛片av日韩av无码 | 精品国产成人一区二区三区 | 国产精品亚洲专区无码不卡 | 在线精品国产一区二区三区 | 亚洲人成无码网www | 人妻插b视频一区二区三区 | 亚洲精品一区二区三区在线观看 | 强开小婷嫩苞又嫩又紧视频 | 真人与拘做受免费视频 | 少妇的肉体aa片免费 | 捆绑白丝粉色jk震动捧喷白浆 | 国产人妻大战黑人第1集 | 亚洲熟妇自偷自拍另类 | 2019午夜福利不卡片在线 | 野外少妇愉情中文字幕 | 永久免费观看美女裸体的网站 | 人妻熟女一区 | 国产成人无码区免费内射一片色欲 | 久久精品中文字幕大胸 | 日韩欧美群交p片內射中文 | 激情五月综合色婷婷一区二区 | 欧美亚洲国产一区二区三区 | 2019午夜福利不卡片在线 | 国产农村妇女高潮大叫 | 色婷婷综合中文久久一本 | 噜噜噜亚洲色成人网站 | 精品久久久中文字幕人妻 | 久久精品人人做人人综合试看 | 欧美精品无码一区二区三区 | 国产精品亚洲一区二区三区喷水 | 特级做a爰片毛片免费69 | 男女作爱免费网站 | 老太婆性杂交欧美肥老太 | 97久久精品无码一区二区 | 香港三级日本三级妇三级 | 亚洲a无码综合a国产av中文 | 四虎国产精品一区二区 | 国内揄拍国内精品少妇国语 | 亚洲一区二区三区在线观看网站 | 国产av一区二区精品久久凹凸 | 色一情一乱一伦一区二区三欧美 | 日韩人妻少妇一区二区三区 | 精品乱码久久久久久久 | 岛国片人妻三上悠亚 | 国产成人无码av在线影院 | 77777熟女视频在线观看 а天堂中文在线官网 | 性做久久久久久久免费看 | 亚洲色成人中文字幕网站 | 精品一区二区三区无码免费视频 | 精品无码成人片一区二区98 | 永久免费精品精品永久-夜色 | 乱人伦人妻中文字幕无码 | 日日夜夜撸啊撸 | 午夜成人1000部免费视频 | 午夜福利不卡在线视频 | 亚洲中文字幕在线观看 | 欧美日本精品一区二区三区 | 亚洲成在人网站无码天堂 | 国产精品无码一区二区三区不卡 | 亚洲人亚洲人成电影网站色 | 美女极度色诱视频国产 | 俄罗斯老熟妇色xxxx | 大屁股大乳丰满人妻 | 亚洲精品午夜无码电影网 | 国产97在线 | 亚洲 | 国产在线无码精品电影网 | 一个人看的www免费视频在线观看 | 久久人人爽人人爽人人片av高清 | 真人与拘做受免费视频 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产乱人伦av在线无码 | 色综合久久中文娱乐网 | 中文字幕乱妇无码av在线 | 老太婆性杂交欧美肥老太 | 免费观看激色视频网站 | 国产真实夫妇视频 | 日韩av激情在线观看 | а√资源新版在线天堂 | 成 人 免费观看网站 | 少妇性l交大片 | 暴力强奷在线播放无码 | 国精产品一区二区三区 | 麻豆国产97在线 | 欧洲 | 亚洲国产欧美在线成人 | 国精品人妻无码一区二区三区蜜柚 | 性色欲网站人妻丰满中文久久不卡 | 秋霞特色aa大片 | 免费视频欧美无人区码 | 波多野结衣乳巨码无在线观看 | 精品 日韩 国产 欧美 视频 | 人人妻在人人 | 国产绳艺sm调教室论坛 | 成人免费视频在线观看 | 色一情一乱一伦 | 日本护士毛茸茸高潮 | 激情内射日本一区二区三区 | 少妇高潮喷潮久久久影院 | 偷窥村妇洗澡毛毛多 | 久久精品人人做人人综合试看 | 中文久久乱码一区二区 | 国产97在线 | 亚洲 | 人人妻人人澡人人爽人人精品浪潮 | 日本欧美一区二区三区乱码 | 成人无码精品1区2区3区免费看 | 99麻豆久久久国产精品免费 | 搡女人真爽免费视频大全 | 永久免费观看美女裸体的网站 | 男女猛烈xx00免费视频试看 | 图片小说视频一区二区 | 国产成人一区二区三区别 | 性欧美疯狂xxxxbbbb | 亚洲欧美国产精品久久 | 人人妻人人澡人人爽人人精品 | 初尝人妻少妇中文字幕 | 人人妻人人澡人人爽精品欧美 | 老司机亚洲精品影院无码 | 成人免费视频视频在线观看 免费 | 国产精品自产拍在线观看 | 图片区 小说区 区 亚洲五月 | 久久久久久av无码免费看大片 | 国产亲子乱弄免费视频 | 亚洲精品久久久久久久久久久 | 国产在线精品一区二区高清不卡 | 亚洲一区二区三区含羞草 | 伊人久久大香线蕉午夜 | 无码国产激情在线观看 | 波多野结衣高清一区二区三区 | 日日天日日夜日日摸 | 俺去俺来也www色官网 | 亚洲国产综合无码一区 | 国产熟女一区二区三区四区五区 | 中国大陆精品视频xxxx | 欧美黑人乱大交 | 久久99久久99精品中文字幕 | 久久久无码中文字幕久... | 国产精品久久久久无码av色戒 | 欧美丰满少妇xxxx性 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美丰满熟妇xxxx性ppx人交 | 荫蒂添的好舒服视频囗交 | 人妻天天爽夜夜爽一区二区 | 超碰97人人做人人爱少妇 | 国产精品理论片在线观看 | 国精品人妻无码一区二区三区蜜柚 | 成人性做爰aaa片免费看 | 蜜桃臀无码内射一区二区三区 | 日韩成人一区二区三区在线观看 | 国产亚洲tv在线观看 | 亚洲中文字幕久久无码 | 久久亚洲精品成人无码 | 内射白嫩少妇超碰 | 玩弄人妻少妇500系列视频 | 国内精品人妻无码久久久影院 | 性色欲情网站iwww九文堂 | 日本免费一区二区三区最新 | 玩弄中年熟妇正在播放 | 亚洲精品无码国产 | 国产亚av手机在线观看 | 亚洲精品欧美二区三区中文字幕 | 97se亚洲精品一区 | 三级4级全黄60分钟 | 久久国内精品自在自线 | 粉嫩少妇内射浓精videos | 伊人久久大香线焦av综合影院 | 大乳丰满人妻中文字幕日本 | 在线a亚洲视频播放在线观看 | 内射后入在线观看一区 | 无码播放一区二区三区 | 亚洲人成网站色7799 | 久久99精品国产麻豆蜜芽 | 亚洲色www成人永久网址 | 国産精品久久久久久久 | 无码人妻精品一区二区三区下载 | 乌克兰少妇性做爰 | 中文精品无码中文字幕无码专区 | 国产精品无码永久免费888 | 中文字幕无码视频专区 | 精品欧美一区二区三区久久久 | 国产精品第一国产精品 | 久久99精品国产麻豆 | 久久国产精品_国产精品 | 国产精品免费大片 | 欧美人妻一区二区三区 | 人人妻人人澡人人爽欧美一区九九 | 在线 国产 欧美 亚洲 天堂 | 免费国产成人高清在线观看网站 | 精品国偷自产在线 | 欧美肥老太牲交大战 | 国产午夜手机精彩视频 | 国产av人人夜夜澡人人爽麻豆 | 人妻无码久久精品人妻 | 波多野结衣av一区二区全免费观看 | 日韩av激情在线观看 | 国产精品-区区久久久狼 | 少妇邻居内射在线 | 国产欧美精品一区二区三区 | 亚洲国产午夜精品理论片 | 色 综合 欧美 亚洲 国产 | 99riav国产精品视频 | 成人无码视频免费播放 | 国产精品办公室沙发 | 国产三级久久久精品麻豆三级 | 亚洲精品国产a久久久久久 | 久久久久av无码免费网 | 亚洲伊人久久精品影院 | 狠狠色噜噜狠狠狠狠7777米奇 | 男女性色大片免费网站 | 亚洲一区二区三区四区 | 国产精品毛多多水多 | 亚洲色大成网站www国产 | 狠狠色色综合网站 | 亚洲成av人片在线观看无码不卡 | 少妇人妻大乳在线视频 | 国产精品毛片一区二区 | 色综合视频一区二区三区 | 成人性做爰aaa片免费看 | 又粗又大又硬又长又爽 | 波多野结衣av一区二区全免费观看 | 欧美亚洲国产一区二区三区 | 麻豆成人精品国产免费 | 亚洲日韩乱码中文无码蜜桃臀网站 | 无码成人精品区在线观看 | 男人扒开女人内裤强吻桶进去 | 中文字幕人妻无码一区二区三区 | 丰满岳乱妇在线观看中字无码 | 国产精品久久久久久亚洲影视内衣 | 日日碰狠狠丁香久燥 | 人妻人人添人妻人人爱 | 啦啦啦www在线观看免费视频 | 少妇久久久久久人妻无码 | 永久免费精品精品永久-夜色 | 国产后入清纯学生妹 | 久久国内精品自在自线 | 日韩亚洲欧美精品综合 | 国产成人无码av在线影院 | 国产精品.xx视频.xxtv | 欧美35页视频在线观看 | 亚洲区欧美区综合区自拍区 | 国产精品资源一区二区 | 免费国产成人高清在线观看网站 | 亚洲精品中文字幕 | 成人欧美一区二区三区 | 动漫av网站免费观看 | 久久久成人毛片无码 | 欧美日韩人成综合在线播放 | 国产精品人人爽人人做我的可爱 | 国产精品久久久久久无码 | 免费无码肉片在线观看 | 久久久精品成人免费观看 | aⅴ在线视频男人的天堂 | 久久精品99久久香蕉国产色戒 | 国产成人综合色在线观看网站 | www一区二区www免费 | 在线播放无码字幕亚洲 | 国内揄拍国内精品少妇国语 | 久久久久久久人妻无码中文字幕爆 | 未满小14洗澡无码视频网站 | 国产精品无码久久av | 精品久久久久香蕉网 | 精品国产成人一区二区三区 | 日本精品高清一区二区 | 永久免费精品精品永久-夜色 | 久久99精品久久久久婷婷 | 国内精品久久久久久中文字幕 | 免费看少妇作爱视频 | 久久99精品久久久久久动态图 | 国产猛烈高潮尖叫视频免费 | 亚洲精品无码国产 | 成人欧美一区二区三区黑人 | 久久99精品久久久久久动态图 | 久久99精品国产麻豆 | 中文字幕中文有码在线 | 亚洲精品成人福利网站 | 99视频精品全部免费免费观看 | 精品无码一区二区三区爱欲 | 一本久久a久久精品vr综合 | 日日天干夜夜狠狠爱 | 久久精品中文字幕大胸 | 成人一在线视频日韩国产 | 无码帝国www无码专区色综合 | 天天燥日日燥 | 麻豆国产人妻欲求不满 | 丰满人妻精品国产99aⅴ | 欧美zoozzooz性欧美 | 久久久久99精品国产片 | 性色欲情网站iwww九文堂 | 国产人妻精品一区二区三区 | 精品一二三区久久aaa片 | 无码人妻av免费一区二区三区 | 国产精品va在线播放 | 久久国产精品萌白酱免费 | 国产人妻精品一区二区三区不卡 | 亚洲最大成人网站 | 日本乱偷人妻中文字幕 | 亚洲精品中文字幕乱码 | 色狠狠av一区二区三区 | 无码精品人妻一区二区三区av | 久久久精品国产sm最大网站 | 久热国产vs视频在线观看 | 最新国产麻豆aⅴ精品无码 | 日本一区二区三区免费高清 | 任你躁国产自任一区二区三区 | 最新国产麻豆aⅴ精品无码 | 日本精品少妇一区二区三区 | 老熟妇仑乱视频一区二区 | 久热国产vs视频在线观看 | 人妻有码中文字幕在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 男女猛烈xx00免费视频试看 | 99精品无人区乱码1区2区3区 | 在线看片无码永久免费视频 | 亚洲日韩av片在线观看 | 荫蒂被男人添的好舒服爽免费视频 | 国产精品亚洲一区二区三区喷水 | 久9re热视频这里只有精品 | 18无码粉嫩小泬无套在线观看 | 粉嫩少妇内射浓精videos | 欧美日本日韩 | 欧美人妻一区二区三区 | 亚洲 欧美 激情 小说 另类 | 免费无码的av片在线观看 | 99国产欧美久久久精品 | 国产真人无遮挡作爱免费视频 | 男人的天堂av网站 | 色综合久久久无码网中文 | 欧美性猛交内射兽交老熟妇 | 久久五月精品中文字幕 | 久久99精品国产麻豆蜜芽 | 亚洲国产精品美女久久久久 | 一本精品99久久精品77 | 国产精品美女久久久久av爽李琼 | 亚洲成av人影院在线观看 | 美女扒开屁股让男人桶 | 国产精品国产三级国产专播 | 亚洲精品久久久久久久久久久 | 青草视频在线播放 | 亚洲欧美日韩综合久久久 | 蜜臀av在线播放 久久综合激激的五月天 | 精品国产精品久久一区免费式 | 国产香蕉97碰碰久久人人 | 国内精品人妻无码久久久影院蜜桃 | 免费观看的无遮挡av | 无码人妻少妇伦在线电影 | 亚洲国产高清在线观看视频 | 自拍偷自拍亚洲精品被多人伦好爽 | 少妇性l交大片欧洲热妇乱xxx | 99久久精品无码一区二区毛片 | 亚洲s码欧洲m码国产av | 熟女俱乐部五十路六十路av | 中文字幕+乱码+中文字幕一区 | 国产精品a成v人在线播放 | 国产精华av午夜在线观看 | 免费中文字幕日韩欧美 | 国产成人一区二区三区在线观看 | 男人的天堂2018无码 | 国产精品久久久久久亚洲影视内衣 | 日韩 欧美 动漫 国产 制服 | 日韩成人一区二区三区在线观看 | 5858s亚洲色大成网站www | 狠狠色噜噜狠狠狠7777奇米 | 国产乱人无码伦av在线a | 色情久久久av熟女人妻网站 | 51国偷自产一区二区三区 | 久精品国产欧美亚洲色aⅴ大片 | 国产精品内射视频免费 | 欧美精品在线观看 | 亚洲の无码国产の无码影院 | 国内精品久久久久久中文字幕 | 亚洲人成网站在线播放942 | 精品欧洲av无码一区二区三区 | √8天堂资源地址中文在线 | 人妻无码αv中文字幕久久琪琪布 | 欧美黑人巨大xxxxx | 久久亚洲精品成人无码 | 狂野欧美性猛xxxx乱大交 | 18无码粉嫩小泬无套在线观看 | 国产亚洲欧美在线专区 | 美女张开腿让人桶 | 激情内射日本一区二区三区 | 88国产精品欧美一区二区三区 | 久久午夜无码鲁丝片 | 久久久中文字幕日本无吗 | 亚洲一区二区三区在线观看网站 | 四虎永久在线精品免费网址 | 国产人妻精品一区二区三区不卡 | 亚洲国产av美女网站 | 国内精品人妻无码久久久影院蜜桃 | 成人女人看片免费视频放人 | av在线亚洲欧洲日产一区二区 | 亚洲国产精品一区二区第一页 | 一二三四在线观看免费视频 | 日韩精品一区二区av在线 | 色欲av亚洲一区无码少妇 | 国产成人精品久久亚洲高清不卡 | 国产极品美女高潮无套在线观看 | 中文字幕乱码人妻二区三区 | 国产在线aaa片一区二区99 | 国产精品手机免费 | 国产激情一区二区三区 | 免费无码的av片在线观看 | 久久综合九色综合97网 | 久久久久亚洲精品男人的天堂 | 国产明星裸体无码xxxx视频 | 国产精品高潮呻吟av久久 | 未满小14洗澡无码视频网站 | 日本丰满护士爆乳xxxx | 亚洲成av人影院在线观看 | 久久久久成人片免费观看蜜芽 | 麻豆蜜桃av蜜臀av色欲av | 鲁大师影院在线观看 | 国产在线精品一区二区三区直播 | 欧洲精品码一区二区三区免费看 | 国产精品无码永久免费888 | 娇妻被黑人粗大高潮白浆 | 精品乱码久久久久久久 | 亚洲a无码综合a国产av中文 | 亚洲va中文字幕无码久久不卡 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 欧美精品在线观看 | 国产人妻精品一区二区三区不卡 | а天堂中文在线官网 | 精品少妇爆乳无码av无码专区 | av无码久久久久不卡免费网站 | 图片小说视频一区二区 | 亚洲精品一区二区三区婷婷月 | 国产精品无码永久免费888 | 在线观看国产一区二区三区 | 亚洲欧洲无卡二区视頻 | 亚洲中文字幕在线无码一区二区 | 精品国产av色一区二区深夜久久 | 国产午夜精品一区二区三区嫩草 | 女人和拘做爰正片视频 | 亚洲综合在线一区二区三区 | 在线播放免费人成毛片乱码 | 东京热无码av男人的天堂 | 精品国精品国产自在久国产87 | 人妻中文无码久热丝袜 | 欧美精品免费观看二区 | av在线亚洲欧洲日产一区二区 | 日产精品99久久久久久 | 高潮毛片无遮挡高清免费视频 | 天天拍夜夜添久久精品大 | 未满小14洗澡无码视频网站 | 曰韩少妇内射免费播放 | 国产成人一区二区三区在线观看 | 小鲜肉自慰网站xnxx | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产性生大片免费观看性 | 亚洲精品综合一区二区三区在线 | 正在播放东北夫妻内射 | 国产无av码在线观看 | 欧美老熟妇乱xxxxx | 日日噜噜噜噜夜夜爽亚洲精品 | 欧美午夜特黄aaaaaa片 | 国产成人无码专区 | 欧美午夜特黄aaaaaa片 | 亚洲a无码综合a国产av中文 | 久久国语露脸国产精品电影 | 四虎永久在线精品免费网址 | 98国产精品综合一区二区三区 | 亚洲国产一区二区三区在线观看 | 性生交大片免费看l | 国产偷自视频区视频 | 国产高清不卡无码视频 | 麻豆果冻传媒2021精品传媒一区下载 |