日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用PyTorch进行手写数字识别,在20 k参数中获得99.5%的精度。

發布時間:2023/12/15 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用PyTorch进行手写数字识别,在20 k参数中获得99.5%的精度。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

In this article we’ll build a simple convolutional neural network in PyTorch and train it to recognize handwritten digits using the MNIST dataset.

在本文中,我們將在PyTorch中構建一個簡單的卷積神經網絡,并使用MNIST數據集訓練它來識別手寫數字。

Figuring out this sequence of numbers is easy, even though the resolution is distorted and the shape of the digits is irregular. Thanks to our brains, which made this process feel natural. We should, of course, also be thankful to ourselves, having spent years learning and applying the numbers in our day-to-day lives.

即使分辨率失真并且數字的形狀不規則,也很容易弄清楚數字的順序。 多虧了我們的大腦,這使這一過程變得自然。 當然,我們也應該感謝自己,花了多年的時間學習并將這些數字應用到我們的日常生活中。

第1步-了解您的數據 (Step 1 — Know Your Data)

Data can tell you a lot if you ask the right questions.

如果您提出正確的問題,數據可以告訴您很多信息。

To understand data, data scientists spends most of their time gathering datasets and preprocessing them. Further tasks are comparatively easy.

為了理解數據,數據科學家花費大量時間來收集數據集并進行預處理。 進一步的任務相對容易。

We will be using the popular MNIST database. It is a collection of 70000 handwritten digits split into training and test set of 60000 and 10000 images respectively. Before starting, we need to make all the necessary imports.

我們將使用流行的MNIST數據庫。 它是70000個手寫數字的集合,分別分為60000個圖像和10000個圖像的訓練和測試集。 開始之前,我們需要進行所有必要的導入。

import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torchvision import datasets, transforms

第2步-準備數據集 (Step 2 — Preparing the Dataset)

Before downloading the data, let us define the hyperparameters and transformations we’ll be using for the experiment we want to perform on our data before feeding it into the pipeline. In other words, these samples are not the same size. Neural networks will require images to be of same dimensions and properties. We do it using torchvision.transforms. Here the number of epochs defines how many times we’ll loop over the complete training dataset, while learning_rate and momentum are hyperparameters for the optimizer we'll be using later on and batch_size is the number of images we want to read in one go.

在下載數據之前,讓我們定義將要用于數據的超參數和轉換,然后再將其輸入管道。 換句話說,這些樣本的大小不同。 神經網絡將要求圖像具有相同的尺寸和屬性。 我們使用torchvision.transforms做到這torchvision.transforms 。 這里的時期數定義了我們將在整個訓練數據集上循環多少次,而learning_rate和momentum是我們稍后將使用的優化程序的超參數,而batch_size是我們要一次性讀取的圖像數。

batch_size = 128
momentum_value = 0.9
epochs = 20
learning_rate = 0.01

For repeatable experiments we have to set random seeds for anything using random number generation, so that when next time I come and run the code it will give me same output.

對于可重復的實驗,我們必須使用隨機數生成為任何對象設置隨機種子,以便下次我運行該代碼時,它會提供相同的輸出。

torch.manual_seed(1)
kwargs = {'num_workers': 1, 'pin_memory': True} if use_cuda else {}train_loader = torch.utils.data.DataLoader(
datasets.MNIST('../data', train=True, download=True,
transform=transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,))
])),
batch_size=batch_size, shuffle=True, **kwargs)test_loader = torch.utils.data.DataLoader(
datasets.MNIST('../data', train=False,
transform=transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,))
])),
batch_size=batch_size, shuffle=True, **kwargs)

datasets.MNIST we are downloading the MNIST dataset for training and testing at path ../data

datasets.MNIST我們正在下載的訓練數據集MNIST和路徑測試../data

transforms.Compose(): This clubs all the transforms provided to it. Compose is applied to the inputs one by one.

transforms.Compose() :這會將所有提供給它的轉換合并在一起。 Compose一一應用于輸入。

transforms.ToTensor() — converts the image into numbers, that are understandable by the system. It separates the image into three color channels (separate images): red, green & blue. Then it converts the pixels of each image to the brightness of their color between 0 and 255. These values are then scaled down to a range between 0 and 1. The image is now a Torch Tensor.

transforms.ToTensor() —將圖像轉換為系統可以理解的數字。 它將圖像分為三個顏色通道(獨立圖像):紅色,綠色和藍色。 然后,它將每個圖像的像素轉換為0到255之間的顏色亮度。然后將這些值縮小到0到1之間的范圍。圖像現在是Torch Tensor。

transforms.Normalize() — normalizes the tensor with a mean and standard deviation which goes as the two parameters respectively.

transforms.Normalize() —使用均值和標準差對張量進行規格化,分別作為兩個參數。

torch.utils.data.DataLoader we make Data iterable by loading it to a loader.

torch.utils.data.DataLoader我們通過將數據加載到加載器來使其可迭代。

shuffle=True Shuffle the training data to make it independent of the order

shuffle=True隨機調整訓練數據,使其與順序無關

步驟3 —建立神經網絡 (Step 3 — Building a Neural Network)

We will be building the following network, as you can see it contains seven Convolution layer, two Max pooling layer two Transition layer followed by Avg pooling layer.

我們將構建以下網絡,您將看到它包含七個Convolution layer ,兩個Max pooling layer兩個Transition layer然后是Avg pooling layer 。

In PyTorch a nice way to build a network is by creating a new class. PyTorch’s torch.nn module allows us to build the above network very simply. It is extremely easy to understand as well.

在PyTorch中,建立網絡的一種好方法是創建一個新類。 PyTorch的torch.nn模塊使我們可以非常簡單地構建上述網絡。 這也是非常容易理解的。

class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()self.conv1 = nn.Conv2d(in_channels=1, out_channels=128,
kernel_size=3, padding=1)
self.bn1 = nn.BatchNorm2d(num_features=128)self.tns1 = nn.Conv2d(in_channels=128, out_channels=4,
kernel_size=1, padding=1)self.conv2 = nn.Conv2d(in_channels=4, out_channels=16,
kernel_size=3, padding=1)
self.bn2 = nn.BatchNorm2d(num_features=16)self.pool1 = nn.MaxPool2d(2, 2)self.conv3 = nn.Conv2d(in_channels=16, out_channels=16,
kernel_size=3, padding=1)
self.bn3 = nn.BatchNorm2d(num_features=16)
self.conv4 = nn.Conv2d(in_channels=16, out_channels=32,
kernel_size=3, padding=1)
self.bn4 = nn.BatchNorm2d(num_features=32)

self.pool2 = nn.MaxPool2d(2, 2)self.tns2 = nn.Conv2d(in_channels=32, out_channels=16,
kernel_size=1, padding=1)

self.conv5 = nn.Conv2d(in_channels=16, out_channels=16,
kernel_size=3, padding=1)
self.bn5 = nn.BatchNorm2d(num_features=16)
self.conv6 = nn.Conv2d(in_channels=16, out_channels=32,
kernel_size=3, padding=1)
self.bn6 = nn.BatchNorm2d(num_features=32)self.conv7 = nn.Conv2d(in_channels=32, out_channels=10,
kernel_size=1, padding=1)
self.gpool = nn.AvgPool2d(kernel_size=7)self.drop = nn.Dropout2d(0.1)def forward(self, x):
x = self.tns1(self.drop(self.bn1(F.relu(self.conv1(x)))))
x = self.drop(self.bn2(F.relu(self.conv2(x))))
x = self.pool1(x)
x = self.drop(self.bn3(F.relu(self.conv3(x))))
x = self.drop(self.bn4(F.relu(self.conv4(x))))
x = self.tns2(self.pool2(x))
x = self.drop(self.bn5(F.relu(self.conv5(x))))
x = self.drop(self.bn6(F.relu(self.conv6(x))))
x = self.conv7(x)
x = self.gpool(x)
x = x.view(-1, 10)
return F.log_softmax(x)

We define our own class class Net(nn.Module) and we inherit nn.Module which is Base class for all neural network modules. Then we define initialize function __init__ after we inherit all the functionality of nn.Module in our class super(Net, self).__init__(). After that we start building our model.

我們定義了自己的類class Net(nn.Module)并繼承了nn.Module,它是所有神經網絡模塊的基類。 然后,在繼承類super(Net, self).__init__()的nn.Module的所有功能之后,定義初始化函數__init__ 。 之后,我們開始構建模型。

We’ll use 2-D convolutional layers. As activation function we’ll choose rectified linear units (ReLUs in short). We use Max pooling of kernel size 2x2 to reduce channel size into half.

我們將使用二維卷積層。 作為激活函數,我們將選擇整流線性單位(簡稱ReLU)。 我們使用2x2內核大小的最大池將通道大小減小一半。

The forward() pass defines the way we compute our output using the given layers and functions.

forward()傳遞定義了使用給定層和函數計算輸出的方式。

x.view(-1, 10) The view method returns a tensor with the same data as the self tensor (which means that the returned tensor has the same number of elements), but with a different shape. First parameter represent the batch_size in our case batch_size is 128 if you don't know the batch_size pass -1 tensor.view method will take care of batch_size for you. Second parameter is the column or the number of neurons you want. Look at the code below.

x.view(-1, 10) view方法返回一個張量,該張量具有與自張量相同的數據(這意味著返回的張量具有相同數量的元素),但形狀不同。 第一個參數表示我們的情況下的batch_size,如果您不知道batch_size傳遞-1 tensor.view方法將為您處理batch_size,則batch_size為128。 第二個參數是所需的列數或神經元數。 看下面的代碼。

步驟4 —檢查GPU并總結模型 (Step 4 — Check for GPU and summerize the model)

Summarize the model help us to give better intuition about each layer of model we build.

匯總模型有助于我們更好地直觀了解所構建模型的每一層。

from torchsummary import summary Torch-summary provides information complementary to what is provided by print(your_model) in PyTorch. summary(your_model, input_data)

from torchsummary import summary Torch-summary提供的信息與PyTorch中print(your_model)提供的信息互補。 summary(your_model, input_data)

torch.cuda.is_available() check for the GPU return True if GPU available else return False

torch.cuda.is_available()檢查GPU返回True(如果GPU可用,否則返回False)

model = Net().to(device) load model to available device

model = Net().to(device)模型加載到可用設備

!pip install torchsummary
from torchsummary import summary
use_cuda = torch.cuda.is_available()
device = torch.device("cuda" if use_cuda else "cpu")
model = Net().to(device)
summary(model, input_size=(1, 28, 28))

Now run the above code to get detailed view of model.

現在運行上面的代碼以獲取模型的詳細視圖。

Layer (type) Output Shape Param #
================================================================
Conv2d-1 [-1, 128, 28, 28] 1,280
BatchNorm2d-2 [-1, 128, 28, 28] 256
Dropout2d-3 [-1, 128, 28, 28] 0
Conv2d-4 [-1, 8, 30, 30] 1,032
Conv2d-5 [-1, 16, 30, 30] 1,168
BatchNorm2d-6 [-1, 16, 30, 30] 32
Dropout2d-7 [-1, 16, 30, 30] 0
MaxPool2d-8 [-1, 16, 15, 15] 0
Conv2d-9 [-1, 16, 15, 15] 2,320
BatchNorm2d-10 [-1, 16, 15, 15] 32
Dropout2d-11 [-1, 16, 15, 15] 0
Conv2d-12 [-1, 32, 15, 15] 4,640
BatchNorm2d-13 [-1, 32, 15, 15] 64
Dropout2d-14 [-1, 32, 15, 15] 0
MaxPool2d-15 [-1, 32, 7, 7] 0
Conv2d-16 [-1, 16, 9, 9] 528
Conv2d-17 [-1, 16, 9, 9] 2,320
BatchNorm2d-18 [-1, 16, 9, 9] 32
Dropout2d-19 [-1, 16, 9, 9] 0
Conv2d-20 [-1, 32, 9, 9] 4,640
BatchNorm2d-21 [-1, 32, 9, 9] 64
Dropout2d-22 [-1, 32, 9, 9] 0
Conv2d-23 [-1, 10, 11, 11] 330
AvgPool2d-24 [-1, 10, 1, 1] 0
================================================================
Total params: 18,738
Trainable params: 18,738
Non-trainable params: 0
----------------------------------------------------------------
Input size (MB): 0.00
Forward/backward pass size (MB): 3.08
Params size (MB): 0.07
Estimated Total Size (MB): 3.15
----------------------------------------------------------------

第5步-訓練和測試功能 (Step 5— Train and Test function)

As you can see our model have less than 20k parameters. Now let’s define the train and test function and run it to check whether we are able to achieve 99.5% accuracy within 20 epochs.

如您所見,我們的模型的參數少于20k。 現在,讓我們定義訓練和測試功能并運行它,以檢查我們是否能夠在20個紀元內達到99.5%的準確度。

from tqdm import tqdmdef train(model, device, train_loader, optimizer, epoch):
model.train()
pbar = tqdm(train_loader)
for batch_idx, (data, target) in enumerate(pbar):
data, target = data.to(device), target.to(device)
optimizer.zero_grad()
output = model(data)
loss = F.nll_loss(output, target)
loss.backward()
optimizer.step()
pbar.set_description(desc= f'epoch: {epoch} loss=
loss.item()} batch_id={batch_idx}')def test(model, device, test_loader):
model.eval()
test_loss = 0
correct = 0
with torch.no_grad():
for data, target in test_loader:
data, target = data.to(device), target.to(device)
output = model(data)
test_loss += F.nll_loss(output, target,
reduction='sum').item() # sum up batch loss
pred = output.argmax(dim=1, keepdim=True)
correct +=pred.eq(target.view_as(pred)).sum().item()
test_loss /= len(test_loader.dataset)print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{}
({:.1f}%)\n'.format(test_loss, correct,
len(test_loader.dataset), 100. * correct /
len(test_loader.dataset)))

tqdm which can mean "progress," Instantly make your loops show a smart progress meter — just wrap any iterable with tqdm(iterable), and you’re done!

tqdm可能表示“進度”,立即使您的循環顯示一個智能進度表-只需用tqdm(iterable)包裝任何可迭代的對象,就完成了!

model.train() By default all the modules are initialized to train mode (self.training = True). Also be aware that some layers have different behavior during train/and evaluation (like Batch Norm, Dropout) so setting it matters. Hence we mention in first line of train function i.e model.train() and in first line of test function i.e model.eval()

model.train()默認情況下,所有模塊都初始化為訓練模式(self.training = True)。 另請注意,某些層在訓練/評估過程中會有不同的行為(例如Batch Norm,Dropout),因此進行設置很重要。 因此,我們在訓練函數的第一行即model.train()和測試函數的第一行即model.eval()

zero_grad clears old gradients from the last step (otherwise you’d just accumulate the gradients from all loss.backward()

zero_grad從最后一步清除舊的漸變(否則,您將僅從所有損失中累積漸變。backward()

loss.backward() computes the derivative of the loss w.r.t. the parameters (or anything requiring gradients) using back propagation.

loss.backward()使用反向傳播計算參數(或任何需要漸變的參數loss.backward()的損耗導數。

optimizer.step() causes the optimizer to take a step based on the gradients of the parameters.

optimizer.step()使優化器根據參數的梯度采取步驟。

To calculate losses in PyTorch, we will use the F.nll_loss we define the negative log-likelihood loss. It is useful to train a classification problem with C classes. Together the LogSoftmax() and NLLLoss() acts as the cross-entropy loss.

為了計算PyTorch中的損失,我們將使用F.nll_loss定義負對數似然損失。 用C類訓練分類問題很有用。 LogSoftmax()和NLLLoss()一起充當交叉熵損失。

第6步-訓練模型 (Step 6— Training Model)

This is where the actual learning happens. Your neural network iterates over the training set and updates the weights. We make use of torch.optim which is a module provided by PyTorch to optimize the model, perform gradient descent and update the weights by back-propagation. Thus in each epoch (number of times we iterate over the training set), we will be seeing a gradual decrease in training loss.

這是實際學習的地方。 您的神經網絡遍歷訓練集并更新權重。 我們使用了torch.optim提供的模塊torch.optim來優化模型,執行梯度下降并通過反向傳播更新權重。 因此,在每個epoch (我們遍歷訓練集的次數),我們將看到訓練損失的逐漸減少。

model = Net().to(device)
optimizer = optim.SGD(model.parameters(), lr=learning_rate, momentum=momentum_value)
for epoch in range(1, epochs):
train(model, device, train_loader, optimizer, epoch)
test(model, device, test_loader)

Let’s run the above code and check the training logs.

讓我們運行上面的代碼并檢查訓練日志。

epoch: 1 loss=0.27045467495918274 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.58it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.1221, Accuracy: 9685/10000 (96.8%)
epoch: 2 loss=0.09988906979560852 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 21.15it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0604, Accuracy: 9823/10000 (98.2%)
epoch: 3 loss=0.20125557482242584 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.85it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0480, Accuracy: 9843/10000 (98.4%)
epoch: 4 loss=0.0712851956486702 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 21.22it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0371, Accuracy: 9890/10000 (98.9%)
epoch: 5 loss=0.04961127042770386 batch_id=468: 100%|██████████| 469/469 [00:21<00:00, 21.45it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0321, Accuracy: 9897/10000 (99.0%)
epoch: 6 loss=0.054023560136556625 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 21.16it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0271, Accuracy: 9913/10000 (99.1%)
epoch: 7 loss=0.07397448271512985 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 21.32it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0273, Accuracy: 9909/10000 (99.1%)
epoch: 8 loss=0.05811620131134987 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.65it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0239, Accuracy: 9928/10000 (99.3%)
epoch: 9 loss=0.08609984070062637 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.86it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0222, Accuracy: 9930/10000 (99.3%)
epoch: 10 loss=0.10347550362348557 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 21.04it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0234, Accuracy: 9921/10000 (99.2%)
epoch: 11 loss=0.10419472306966782 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.88it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0196, Accuracy: 9930/10000 (99.3%)
epoch: 12 loss=0.004044002387672663 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.97it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0223, Accuracy: 9930/10000 (99.3%)
epoch: 13 loss=0.05143119767308235 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.56it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0201, Accuracy: 9930/10000 (99.3%)
epoch: 14 loss=0.03383662924170494 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.86it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0187, Accuracy: 9940/10000 (99.4%)
epoch: 15 loss=0.037076253443956375 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.42it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0209, Accuracy: 9935/10000 (99.3%)
epoch: 16 loss=0.009786871261894703 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.50it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0190, Accuracy: 9944/10000 (99.4%)
epoch: 17 loss=0.024468591436743736 batch_id=468: 100%|██████████| 469/469 [00:23<00:00, 20.36it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0177, Accuracy: 9946/10000 (99.5%)
epoch: 18 loss=0.030203601345419884 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.40it/s]
0%| | 0/469 [00:00<?, ?it/s]
Test set: Average loss: 0.0171, Accuracy: 9937/10000 (99.4%)
epoch: 19 loss=0.04640066251158714 batch_id=468: 100%|██████████| 469/469 [00:22<00:00, 20.72it/s]
Test set: Average loss: 0.0179, Accuracy: 9938/10000 (99.4%)

HURRAY! We have over 99.5% accuracy. We don’t need to train the model every time. PyTorch has a functionality that can save our model so that in the future, we can load it and use it directly.

歡呼! 我們的準確率超過99.5%。 我們不需要每次都訓練模型。 PyTorch具有可以保存我們的模型的功能,以便將來我們可以加載它并直接使用它。

torch.save(model, 'path/to/save/my_mnist_model.pth')

Check entire notebook here.

在這里檢查整個筆記本。

結論 (Conclusion)

In summary we built a new environment with PyTorch and TorchVision, used it to classify handwritten digits from the MNIST dataset and hopefully developed a good intuition using PyTorch. For further information the official PyTorch documentation is really nicely written and the forums are also quite active!

總而言之,我們使用PyTorch和TorchVision構建了一個新環境,用它對MNIST數據集中的手寫數字進行分類,并希望使用PyTorch可以開發出良好的直覺。 有關更多信息, PyTorch官方文檔編寫得非常好, 論壇也非常活躍!

翻譯自: https://medium.com/@ravivaishnav20/handwritten-digit-recognition-using-pytorch-get-99-5-accuracy-in-20-k-parameters-bcb0a2bdfa09

總結

以上是生活随笔為你收集整理的使用PyTorch进行手写数字识别,在20 k参数中获得99.5%的精度。的全部內容,希望文章能夠幫你解決所遇到的問題。

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

久久99久久精品国产 | 久久69精品 | 天天干天天做天天爱 | 六月丁香婷婷久久 | 亚州av网站大全 | av电影不卡在线 | 国产一区在线精品 | 日本天天色| 国产成人一二三 | 中文字幕在线免费观看 | 亚洲精品白浆高清久久久久久 | 一区中文字幕在线观看 | 久草在线观看 | 久草在线中文888 | 夜夜爽天天爽 | 99精品视频在线观看视频 | 黄色的片子| 日韩高清在线不卡 | 国产一区二区日本 | 欧美色精品天天在线观看视频 | 欧美精品第一 | 成年人视频免费在线播放 | 怡红院av久久久久久久 | 午夜av电影 | 日韩av成人在线观看 | 91重口视频 | avwww在线观看| 日韩成人不卡 | 又黄又爽又色无遮挡免费 | 成人av资源网站 | 中文字幕不卡在线88 | 精品美女久久久久 | 狠狠色丁香婷婷综合视频 | 国产高清视频在线免费观看 | 国产精品久久伊人 | 亚洲成a人片77777kkkk1在线观看 | 久久综合久久综合九色 | 日韩专区在线 | 久久视频在线看 | 丁香花中文字幕 | 中文在线最新版天堂 | 免费在线色视频 | 97国产小视频 | 麻豆成人精品视频 | 91麻豆免费视频 | 国产亚洲在线视频 | 青青河边草观看完整版高清 | 一区二区视频电影在线观看 | 久久男人免费视频 | 国产精品久久久av | 91精品无人成人www | 婷婷香蕉 | 色婷婷视频网 | 国产大尺度视频 | 成人黄色电影免费观看 | 国产精品久久久毛片 | 久久er99热精品一区二区 | 在线视频1卡二卡三卡 | 日本在线视频一区二区三区 | 一级黄色免费网站 | 国产精品一区二区久久精品爱微奶 | 亚洲激情综合网 | 欧美成人精品欧美一级乱 | 久久九九久久精品 | 日韩超碰 | 国产一级免费片 | 久久免费精彩视频 | 国产精品久久久久久久免费大片 | 日本韩国精品一区二区在线观看 | 91人人澡人人爽人人精品 | 99亚洲国产精品 | 色综合久久88色综合天天人守婷 | 日韩精品黄 | 97色在线视频 | 国产精品永久久久久久久www | 日韩亚洲国产中文字幕 | 久久精品韩国 | 91精品夜夜 | 亚洲日韩精品欧美一区二区 | 婷婷久久五月 | 黄色毛片大全 | 日韩在线视频免费看 | 亚洲精品色婷婷 | 美州a亚洲一视本频v色道 | 亚洲午夜久久久久久久久久久 | 亚洲在线观看av | 亚洲精品色视频 | 国产中文字幕视频 | 欧美色综合天天久久综合精品 | 最新日韩视频在线观看 | 视频成人 | 国内久久精品 | 91在线精品播放 | 精品久久久久久久久久 | 91成人午夜 | 久精品视频 | 在线观看91av| 久久精品国产精品亚洲 | av电影一区二区 | 视频 国产区 | 国产精品久久久久永久免费观看 | 欧美日韩中文国产一区发布 | 久久在线影院 | 亚洲午夜精品久久久 | 国产一区二区在线影院 | 久久不卡国产精品一区二区 | 国产日产精品一区二区三区四区 | 天天爽天天搞 | 91精品国产综合久久久久久久 | 六月婷操| 在线播放av网址 | 五月天狠狠操 | 91看片淫黄大片一级在线观看 | 爱干视频| 在线一区观看 | 96亚洲精品久久 | 又色又爽又黄高潮的免费视频 | 91理论片午午伦夜理片久久 | 四虎成人网 | 成人av手机在线 | 99精彩视频在线观看免费 | 97人人人人 | 久久久久久福利 | 九九激情视频 | 在线看黄色av| 日本 在线 视频 中文 有码 | 久久精品中文字幕 | 在线观看一区 | 日韩国产欧美在线视频 | 九九热视频在线免费观看 | 欧美日韩在线第一页 | 99久久久国产精品免费99 | 午夜精品一区二区三区在线观看 | 久久免费看a级毛毛片 | www五月天| 丁香六月激情 | 91精品国产成 | 欧美天堂影院 | 国产 欧美 日韩 | 国产精品手机在线观看 | 91麻豆精品国产91久久久久久久久 | 97视频免费在线观看 | 亚洲成人午夜在线 | 97国产精品亚洲精品 | 四虎影视成人永久免费观看视频 | 天天色成人网 | 精品久久久久久一区二区里番 | 免费视频久久 | 精品国产区 | 久久精品在线视频 | 久久国产免费看 | 国内精品亚洲 | 精品国产电影一区二区 | 日韩免费电影一区二区 | 精品视频在线看 | 久久久久久精 | 久久不射影院 | 国产又黄又爽无遮挡 | 国产精品麻豆99久久久久久 | 国产精品美女999 | 国产999精品久久久久久绿帽 | 国产精品久久久影视 | 免费高清在线一区 | 99产精品成人啪免费网站 | 怡红院成人在线 | 天天操天天舔天天干 | 久操中文字幕在线观看 | 啪啪小视频网站 | 天天操天天色天天射 | av大全在线看 | 一级特黄aaa大片在线观看 | 日韩一级成人av | 国产精品免费在线播放 | 干天天 | 不卡av电影在线 | 久久人人爽人人 | 美女免费电影 | 日韩久久精品一区二区三区下载 | 久草视频免费看 | 91精品视频免费在线观看 | 久久精品欧美 | 国产精品av久久久久久无 | 免费开视频 | 九色91在线视频 | 久久久久久久久国产 | 精品国产精品久久 | 手机av在线网站 | 欧美日韩一二三四区 | 天天色天天| 久久情侣偷拍 | 在线黄网站 | 亚洲亚洲精品在线观看 | 国产经典 欧美精品 | 日本在线观看一区 | 丁香婷婷久久 | 免费看的黄色的网站 | 亚洲婷婷综合色高清在线 | 精品国产一区二区三区久久 | 麻豆国产露脸在线观看 | 蜜桃视频在线视频 | 91香蕉视频 | 午夜精品久久久99热福利 | 久久久久激情 | 亚洲最大av网站 | 麻豆精品视频在线观看免费 | 亚洲精品国产精品久久99 | 亚洲aⅴ久久精品 | 精精国产xxxx视频在线播放 | 国产精品a久久 | 在线观看色网站 | www.色国产| 97av精品| 97人人超碰在线 | 一级片免费视频 | 黄色特一级片 | 久久精品国产成人精品 | 五月天天天操 | 久久手机精品视频 | 久久久久久久久久久久影院 | 91人人爽人人爽人人精88v | 99视频在线观看视频 | 九色琪琪久久综合网天天 | 91亚洲精品久久久 | 成人全视频免费观看在线看 | 一区二区三区www | 91麻豆精品国产91久久久久久 | 亚洲一区二区视频在线播放 | 在线观看免费高清视频大全追剧 | av一级在线观看 | 涩涩网站免费 | 久久久精品视频成人 | 亚洲 欧美 另类人妖 | 成片人卡1卡2卡3手机免费看 | 成人av高清 | 天操夜夜操 | 精品国产自 | 国产xxxx做受性欧美88 | 日韩二三区 | 最近日韩中文字幕中文 | 狠狠干2018 | 免费观看91视频大全 | 亚洲成a人片在线www | 天天性天天草 | 91麻豆免费视频 | 日韩 国产 | 亚洲国产精品99久久久久久久久 | 中文字幕视频网站 | 97香蕉久久国产在线观看 | 中文字幕电影高清在线观看 | 香蕉视频日本 | 久草av在线播放 | 国产粉嫩在线 | 日韩av三区 | 久久久国内精品 | 伊人电影天堂 | 日韩欧美在线免费观看 | 亚洲精品乱码久久久久v最新版 | 在线中文字幕电影 | 久久精品专区 | 99精品久久精品一区二区 | 99热在线网站| 免费看一级 | 国产精品av电影 | 久草视频在线资源站 | 久久久综合香蕉尹人综合网 | 日本精油按摩3 | 国产福利一区二区三区在线观看 | 日韩视频免费观看高清完整版在线 | 国产精品毛片一区二区在线看 | 久久av黄色 | 色多多污污在线观看 | 欧美在线视频a | av成人资源 | 欧美男同视频网站 | 日本久久影视 | 国产美女精品视频免费观看 | 国产精品a级 | 欧美一级性生活片 | 国内毛片毛片 | 免费影视大全推荐 | 久久乐九色婷婷综合色狠狠182 | 中文区中文字幕免费看 | 国产成人一区二区三区久久精品 | 国产一区二区精品久久 | 国产精品女同一区二区三区久久夜 | 最近字幕在线观看第一季 | 免费观看一区二区三区视频 | 精品一区二三区 | 999国产在线 | 91麻豆国产福利在线观看 | 国产高清免费在线播放 | 五月激情丁香婷婷 | 国产在线观看你懂的 | 亚洲国产精品va在线看黑人动漫 | 国内精品视频一区二区三区八戒 | 精品影院| 久久艹在线| 成年人黄色免费看 | 99精品色| 欧美精品中文字幕亚洲专区 | 天天射天天射天天射 | 国产色区 | 草久久影院 | 国产一级黄色免费看 | 久久综合99 | 亚洲在线视频网站 | 91麻豆精品国产91久久久无需广告 | 亚洲精品www久久久 www国产精品com | 欧美一级视频一区 | 国产一区二区高清 | 国产精品精品久久久久久 | 青青草国产成人99久久 | av片子在线观看 | 色偷偷88欧美精品久久久 | 午夜精品一区二区三区在线视频 | 97狠狠操| 最新av网址在线 | 国产精品毛片一区二区 | 国产精品嫩草影院9 | 91大神精品视频在线观看 | 久久久96 | 最近字幕在线观看第一季 | 亚洲精品视频在线免费播放 | 国产精品久久久久av免费 | 国产亚洲婷婷免费 | 国产精品亚 | 精品专区一区二区 | 国产精品成人久久 | 色综合小说 | 久久久久久久久久久久影院 | 91色视频 | 国产精品久久久久久欧美 | 亚洲激情综合网 | 在线观看视频一区二区 | 玖玖玖精品 | 中文字幕成人 | 亚洲国产中文字幕在线 | 粉嫩av一区二区三区四区五区 | www.久久久.cum | 成人亚洲精品久久久久 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 97av免费视频 | 久久a v电影| 欧美 国产 视频 | 天天干,天天干 | 国产高清在线a视频大全 | av线上看| 亚洲片在线观看 | 亚洲闷骚少妇在线观看网站 | 精品视频免费在线 | 亚洲精品欧美成人 | 国产一级a毛片视频爆浆 | 欧洲精品久久久久毛片完整版 | www.狠狠操.com| 日韩理论在线观看 | 综合天天网 | 日韩视频免费观看高清完整版在线 | 超碰免费在线公开 | 亚洲涩涩涩涩涩涩 | 88av网站| 操操操影院 | 粉嫩av一区二区三区四区在线观看 | 最新精品视频在线 | 黄p在线播放 | 91精品国产亚洲 | 久久精品视频网址 | 91一区啪爱嗯打偷拍欧美 | 亚洲精品男人天堂 | 成人毛片在线视频 | 日韩中文在线观看 | 婷婷天天色| 黄色av电影一级片 | 夜夜狠狠 | 国产精品久久久久久久久久了 | 夜夜天天干 | 视频国产精品 | av官网在线 | 香蕉成人在线视频 | 丁香激情网| 成人av高清在线观看 | 免费欧美精品 | 91九色视频导航 | 欧美一级性 | 久久久久欠精品国产毛片国产毛生 | 久久久久黄 | www夜夜操com | 色视频在线 | 国产一区二区视频在线 | 中文字幕亚洲精品日韩 | 欧美日韩久久不卡 | 黄色www| 精品99在线观看 | 69视频永久免费观看 | 欧美日韩中 | 免费av看片 | 国产伦理剧 | 国内精品视频久久 | 国产xx视频| 中文字幕在线精品 | 成人在线网站观看 | 亚洲精品网站 | 久久亚洲国产精品 | av蜜桃在线 | www91在线观看 | 午夜精品在线看 | 综合天天久久 | 日韩爱爱网站 | 日韩久久片| 日韩电影在线观看一区二区三区 | 国产一区在线免费 | 婷婷中文字幕综合 | 午夜精品久久久久久久久久 | 日韩精品视频在线免费观看 | 欧美尹人| 六月婷婷久香在线视频 | 国产亚洲成av片在线观看 | www.色婷婷 | www.成人久久 | 久久国产精品一国产精品 | 1区2区3区在线观看 三级动图 | 国产亚洲aⅴaaaaaa毛片 | 欧美福利网站 | 午夜精品久久久久久久久久久久久久 | 91成人在线免费观看 | av黄色成人 | 狠狠色丁香婷婷综合久久片 | 91精品久久久久久久久久久久久 | 91成人天堂久久成人 | 久草视频网 | 久久精品久久综合 | 国产精品mv在线观看 | 91一区二区在线 | 久久极品 | 99视频在线免费看 | 免费看一级特黄a大片 | av三级av | av千婊在线免费观看 | 日日夜夜av | 成人超碰在线 | 92精品国产成人观看免费 | www.久久99 | 亚洲精品久久在线 | 亚洲最大色 | 精品在线观看一区二区 | 国内少妇自拍视频一区 | 中文字幕一区2区3区 | 在线视频 日韩 | 亚洲精品久久久久中文字幕m男 | 久久99免费视频 | 伊人色综合久久天天网 | 精品国产自 | 2023亚洲精品国偷拍自产在线 | 色婷婷国产精品 | 亚洲三级av | 97超碰中文字幕 | 嫩草av在线| 51久久成人国产精品麻豆 | 免费看黄色小说的网站 | 久久欧美综合 | 九九精品视频在线看 | 操操综合| 91福利影院在线观看 | 久久女同性恋中文字幕 | 91日韩精品| av动图| 国产中文字幕国产 | 美女视频黄免费 | 国产黄色片免费在线观看 | 精品欧美一区二区在线观看 | 国产91aaa | 99产精品成人啪免费网站 | 992tv人人草| 国产免费高清 | 国产福利在线免费观看 | 国产99久久久国产精品 | 毛片一级免费一级 | 久久久久成人精品免费播放动漫 | 一级做a视频 | 天堂网一区二区三区 | 欧美日韩一区二区在线观看 | 亚洲伊人av | 日韩亚洲欧美中文字幕 | 日日夜夜精品视频天天综合网 | 91视频 - v11av | www.成人精品 | 欧美爽爽爽 | 性色大片在线观看 | 久久精品国产免费看久久精品 | 日韩有码中文字幕在线 | 国产乱码精品一区二区三区介绍 | 欧美久久久影院 | 黄色小网站免费看 | 国产一区二区久久精品 | 嫩嫩影院理论片 | 精品福利在线视频 | 国产精品中文字幕在线播放 | 麻豆影视在线观看 | 午夜色站 | 欧美日韩视频在线 | 国产精品乱码一区二三区 | 91在线免费观看网站 | 又色又爽又黄高潮的免费视频 | 精品久久久久久国产91 | 亚洲国产精品资源 | 日韩在线视频网 | 成人av资源在线 | 97精品欧美91久久久久久 | 99 色| 99热国内精品 | 久久香蕉国产精品麻豆粉嫩av | av中文字幕日韩 | 国产一区福利在线 | 国产偷国产偷亚洲清高 | 国产色拍 | 国产不卡在线视频 | 国产精品免费成人 | 久久精品视频播放 | 日韩欧美xxxx| 视频精品一区二区三区 | 成人91av| 亚洲精品成人av在线 | 制服丝袜在线91 | 亚洲精品国产第一综合99久久 | 丁香九月激情综合 | 中文字幕一区二区三区乱码在线 | 欧美精品国产综合久久 | 欧美国产日韩在线视频 | www.夜夜爽| 91传媒在线观看 | 国产精品久久久久久久久免费 | 国内外成人在线 | 91九色视频观看 | 国产精品精品国产 | 成人黄色免费在线观看 | 国产首页 | 国产在线第三页 | 亚洲成熟女人毛片在线 | 国产网红在线观看 | 操处女逼 | 中文字幕色站 | 99久热在线精品视频 | 欧美伦理一区 | 免费视频97 | 国产九色91 | 国产美女网站视频 | 激情图片区 | 久久影视一区 | 四虎成人精品在永久免费 | 私人av| 日韩欧美一区二区三区视频 | 国内成人精品视频 | 人人爽影院 | 国产精品嫩草影视久久久 | 成人精品国产 | 狠狠狠的干| 国产a级免费 | 欧美天天综合 | 97碰碰碰 | 国产不卡免费 | 成人久久免费视频 | 日韩av网站在线播放 | 操操操com | 国产第一福利 | 狠狠操导航 | 色婷婷www | 精品久久久久久久久久岛国gif | 一区二区不卡在线观看 | 中文亚洲欧美日韩 | 正在播放久久 | 一区二区三区电影大全 | 最新动作电影 | 欧美男同视频网站 | 欧美日韩国产高清视频 | 99视频在线 | 波多野结衣综合网 | 久久免费国产精品 | 少妇bbbb搡bbbb桶 | a亚洲视频| 成年人精品 | 日本精品一区二区三区在线观看 | 欧美国产日韩中文 | 国产精品欧美一区二区三区不卡 | 日韩在线不卡av | 国产精品岛国久久久久久久久红粉 | 亚洲黄色av网址 | 色中色亚洲| 国产亚洲精品久久久久久久久久久久 | 国产视频在线观看一区 | av免费电影在线 | 69精品久久 | 久久精品—区二区三区 | 狠狠色噜噜狠狠 | 中文字幕观看av | av天天在线观看 | 日韩精品视 | 激情狠狠干 | 又污又黄的网站 | 97超级碰碰碰碰久久久久 | 精品国内自产拍在线观看视频 | 欧美一区日韩精品 | 高清一区二区三区 | 九九九九九精品 | 91麻豆精品一区二区三区 | 不卡的av在线播放 | 欧美一级网站 | 婷婷夜夜 | 久久精品免费播放 | 国产亚洲人成网站在线观看 | 国产精品毛片一区二区 | 国产精品久久二区 | 欧美少妇bbwhd | 精品久久久久久久久久国产 | 毛片在线网| 丁香网五月天 | 在线观看成人小视频 | 成年人免费看片网站 | 在线电影日韩 | 国产一级黄 | 手机在线中文字幕 | 亚洲午夜久久久影院 | 成人a视频在线观看 | 精品一区二区三区久久 | 日韩欧美视频在线 | 91视频在线免费下载 | 精品视频资源站 | 精品久久久久久国产91 | 成人国产在线 | 激情视频一区二区三区 | 亚洲综合欧美日韩狠狠色 | 五月天中文字幕 | 99热播精品 | 五月婷丁香网 | 在线观看国产日韩欧美 | 亚洲最新合集 | 国产精品一区二区久久久 | www.久久久久| 一级做a视频 | 偷拍久久久 | 日日干天天射 | 日韩av一区二区在线播放 | 伊人国产在线观看 | 国内精品久久久 | 精品在线观看一区二区 | 精品久久免费看 | 91爱在线| av免费在线观看网站 | 国产精品免费高清 | 国产精品成人品 | 处女av在线 | 国产精品一区二区麻豆 | 九九热中文字幕 | 亚洲经典精品 | 欧美日韩国产网站 | 久久九九久久九九 | 日p视频在线观看 | 日韩免费观看一区二区 | 久久国产系列 | 午夜少妇 | 精品1区2区3区| 国产午夜精品一区二区三区欧美 | 亚洲国产无 | 成人免费视频免费观看 | 日韩专区在线播放 | 欧美日韩一区二区在线 | 久久久久电影网站 | 一区二区三区在线观看免费 | 91精品秘密在线观看 | 久久精品1区2区 | 四虎影视国产精品免费久久 | 韩国一区二区三区视频 | 日韩a级黄色| 日韩精品免费一线在线观看 | 中文字幕在线免费 | 天天搞天天 | 91高清完整版在线观看 | 韩日电影在线免费看 | 欧美性视频网站 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产午夜一区二区 | 欧美analxxxx | 精品国产91亚洲一区二区三区www | 成人动漫一区二区 | 久久老司机精品视频 | 亚洲一级电影在线观看 | 久久久精品福利视频 | 日韩中文在线观看 | 中文字幕亚洲欧美 | 欧美日韩精品区 | 91在线欧美| 在线播放你懂 | 国产精品久久久久久久久久久久冷 | 国产一级不卡毛片 | 欧美精品v国产精品 | 久久精品一区二区 | 日韩v欧美v日本v亚洲v国产v | 国产女人免费看a级丨片 | 日韩在线视频精品 | 午夜精品999 | 黄色综合 | 天天插综合网 | 天堂av最新网址 | 丁香网五月天 | 国产v亚洲v | 欧美日韩视频 | 亚洲精品网站 | 国产精品青草综合久久久久99 | 色五月色开心色婷婷色丁香 | 欧美午夜久久久 | 在线观看国产日韩欧美 | 久久试看| 天天操夜夜看 | 狠狠色丁香久久婷婷综合_中 | 欧美小视频在线观看 | 99久国产| 国产老熟 | 五月婷婷丁香激情 | 啪啪激情网 | 国产精品一区二区三区在线免费观看 | 91激情小视频 | 国产小视频你懂的 | 国产成人av在线影院 | 9999精品免费视频 | 成人黄色大片 | 亚洲成 人精品 | 人人射网站 | 久久久首页 | 欧美福利视频 | 国产一区久久 | 日韩美视频 | 精品国产视频一区 | 蜜臀久久99精品久久久无需会员 | 天堂资源在线观看视频 | 国产成人av一区二区三区在线观看 | 91人人澡 | 黄网站色欧美视频 | 97超碰在线久草超碰在线观看 | 美女网站一区 | 天天艹天天 | 青青河边草观看完整版高清 | 中文在线字幕免费观 | 中文字幕成人在线观看 | 日韩精品一区二区三区三炮视频 | 欧美色精品天天在线观看视频 | 国内成人综合 | 天天操天天干天天玩 | 蜜桃久久久 | 福利视频区 | 在线观看中文字幕网站 | 九九热只有这里有精品 | 久久精品国产美女 | 最新国产精品久久精品 | 久久久资源网 | 不卡的av片 | 在线小视频国产 | 亚洲精品乱码久久久久v最新版 | 久久久免费电影 | 在线视频观看91 | 亚州日韩中文字幕 | 可以免费观看的av片 | 五月婷婷久久丁香 | 日韩欧美成 | 国产一级免费电影 | 国产日韩欧美中文 | 亚洲免费国产视频 | 国产乱码精品一区二区三区介绍 | 成人在线电影观看 | 久久久国内精品 | 久久国产香蕉视频 | 日韩影视精品 | 国产又粗又硬又爽的视频 | 99在线免费视频 | 丁香婷婷在线观看 | 免费中文字幕 | 99在线免费视频观看 | 在线视频观看亚洲 | 国产精品一区二区麻豆 | 狠狠干婷婷 | 久久久久免费精品国产小说色大师 | 中文字幕亚洲在线观看 | 国产精品午夜久久久久久99热 | 欧美十八 | 欧美另类高清 | 免费在线观看成年人视频 | 免费av片在线 | 四虎影视国产精品免费久久 | 国产淫片免费看 | 美女黄网久久 | 免费高清男女打扑克视频 | 色婷婷伊人 | 一区二区三区日韩视频在线观看 | 日韩av资源在线观看 | 国产剧情在线一区 | h动漫中文字幕 | 中文字幕成人网 | 在线观看免费福利 | 最新av在线播放 | av先锋中文字幕 | 最近最新mv字幕免费观看 | 天天操夜夜操夜夜操 | 欧美精品网站 | 成人a免费看 | 999成人国产 | 亚洲精品福利视频 | 天天舔夜夜操 | 亚洲高清在线视频 | 91在线视频 | 免费看特级毛片 | 狠狠操在线| 国产成人专区 | 中文字幕在线视频精品 | 久久久av电影 | 久久精品视频网 | 97天堂| 欧美精品久久久久久久亚洲调教 | 精品国产人成亚洲区 | www.天天干 | 中文字幕 二区 | 激情亚洲综合在线 | 亚洲精品在线免费观看视频 | 久久免费视频5 | 丁香综合 | 超碰在线免费97 | 国产在线视频一区 | 99精品一区 | 五月婷婷激情六月 | 国产精品一区二区吃奶在线观看 | 亚洲视频分类 | 午夜精品久久久久久久99无限制 | 日韩在线免费小视频 | 69国产盗摄一区二区三区五区 | 日韩美在线| 日日干夜夜干 | 日批视频在线 | 九九激情视频 | 日韩在线中文字幕视频 | 欧美久久九九 | 国产亚洲精品成人 | 天天爽夜夜爽精品视频婷婷 | 99综合影院在线 | 一区二区三区在线观看中文字幕 | 日韩电影在线观看一区二区 | 天天操狠狠操网站 | 中文字幕亚洲字幕 | 99视频精品全部免费 在线 | 欧美高清成人 | 国产精品涩涩屋www在线观看 | 人人看黄色 | 91免费观看网站 | 天堂va在线观看 | 亚洲视频 视频在线 | 丁香婷婷激情国产高清秒播 | 日韩精品不卡在线 | 久久国产午夜精品理论片最新版本 | 91手机视频| 天天天操操操 | 在线播放一区二区三区 | 91成人在线观看喷潮 | 日韩久久久久久 | 毛片永久新网址首页 | 极品中文字幕 | 久久精品视频18 | 婷婷中文字幕在线观看 | 亚洲电影黄色 | 黄网站app在线观看免费视频 | 黄影院| 亚洲国产免费看 | 久久怡红院 | 国产麻豆精品一区 | 国内一级片在线观看 | 日韩欧美区 | 国产视频黄 | 91久色蝌蚪 | 国产91精品久久久久 | 亚洲中字幕 | 日韩影视精品 | av片中文字幕 | 98涩涩国产露脸精品国产网 | 日韩视频免费播放 | 黄色片软件网站 | 日韩电影在线视频 | 久久久久久久久综合 | 国产专区精品视频 | 国产xx在线| 97视频亚洲 | 久久国产精品久久精品国产演员表 | 91传媒免费观看 | 三三级黄色片之日韩 | 香蕉一区 | 成人av电影免费在线播放 | 色噜噜噜| 日本黄色片一区二区 | 在线免费观看国产精品 | 午夜成人免费影院 | 99视频免费看 | 91探花在线| 国产精美视频 | 欧美一级在线看 | 91精品久久久久久久久久久久久 | 亚洲男男gaygay无套 | 亚洲国产成人在线观看 | av黄色成人 | 日本在线观看中文字幕 | 午夜久操 | 最近免费观看的电影完整版 | 国产精品永久在线观看 | 日韩最新在线视频 | 国产韩国精品一区二区三区 | 国产成人精品日本亚洲999 | 国产一区欧美在线 | 欧美在线a视频 | 亚洲天天 | 久久网址 | 中文字幕日韩一区二区三区不卡 | 亚洲欧美乱综合图片区小说区 | av7777777| 久久天天躁狠狠躁亚洲综合公司 | 亚洲欧美国产视频 | 天天综合久久综合 | 欧美国产日韩激情 | 国产精品黑丝在线观看 | 九九热久久久 | 日韩精品不卡在线观看 | 一区 在线观看 | 91精品国产综合久久久久久久 | 中文字幕一区二区在线播放 | 午夜精品久久久久久久99热影院 | 天天干天天操人体 | 久久国产精品精品国产色婷婷 | 99久久爱| 国产91免费在线观看 | 麻豆mv在线观看 | 人人爽人人爽人人爽人人爽 | 91av福利视频| 日韩在线 | 91网页版在线观看 | 国产一在线精品一区在线观看 | 久久精品一区二区三区四区 | 一区二区三区四区在线 | 欧美热久久 | 亚洲成人免费在线 | 91欧美精品| 尤物一区二区三区 | 久久久久亚洲精品 | 日韩精品一区二区在线观看视频 | 亚洲va综合va国产va中文 | 久草电影在线观看 | 久久精品99国产国产精 | 久日视频 | 四虎成人免费观看 | 99久久久国产精品免费观看 | 一级黄色大片 | 国产激情免费 | 国产精品久久久久久一区二区 | 91av精品 | 一级片在线 | 麻豆传媒视频观看 | 久久理论影院 | 亚洲综合色丁香婷婷六月图片 | 欧美日韩国产综合一区二区 | 天天插天天狠 | 亚洲一区网 | 欧美污在线观看 | 日韩在线免费视频观看 | 狠狠ri| 日本性生活免费看 | 色就色,综合激情 | 久久不卡国产精品一区二区 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 伊人久久精品久久亚洲一区 | 亚洲经典中文字幕 | 精品免费在线视频 | 99热这里只有精品在线观看 | 国产又粗又猛又色又黄视频 | 91九色蝌蚪| 久久字幕 | 美女视频又黄又免费 | 国产中年夫妇高潮精品视频 | www国产精品com | 欧美一级性生活片 | 久久精品视频免费观看 | 国产精品区一区 | 日日碰狠狠添天天爽超碰97久久 | 伊人激情综合 | 亚洲男男gaygay无套同网址 | 国产精品观看在线亚洲人成网 | mm1313亚洲精品国产 | 999成人免费视频 | 99视频网站 | 日韩字幕 | 一区精品久久 | 亚洲国产日韩欧美 | av高清一区二区三区 | 97狠狠操 | 免费黄色看片 | 亚洲欧美视频一区二区三区 | 亚洲麻豆精品 | 奇米影视8888 | 激情小说 五月 |