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

全連接神經(jīng)網(wǎng)絡(luò)的原理及Python實(shí)現(xiàn)

共 19771字,需瀏覽 40分鐘

 ·

2022-08-08 19:57

點(diǎn)擊上方小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂

重磅干貨,第一時(shí)間送達(dá)

?

作者:李小文,先后從事過(guò)數(shù)據(jù)分析、數(shù)據(jù)挖掘工作,主要開(kāi)發(fā)語(yǔ)言是Python,現(xiàn)任一家小型互聯(lián)網(wǎng)公司的算法工程師。

Github: https://github.com/tushushu

1. 原理篇

我們用人話而不是大段的數(shù)學(xué)公式來(lái)講講全連接神經(jīng)網(wǎng)絡(luò)是怎么一回事。

1.1 網(wǎng)絡(luò)結(jié)構(gòu)

靈魂畫師用PPT畫個(gè)粗糙的網(wǎng)絡(luò)結(jié)構(gòu)圖如下:

1.2 Simoid函數(shù)

Sigmoid函數(shù)的表達(dá)式是:

不難得出:

所以,Sigmoid函數(shù)的值域是(0, 1),導(dǎo)數(shù)為y * (1 - y)

1.3 鏈?zhǔn)角髮?dǎo)

z = f(y)
y = g(x)

dz / dy = f'(y)
dy / dx = g'(x)

dz / dz = dz / dy * dy / dx = f'(y) * g'(x)

1.4 向前傳播

將當(dāng)前節(jié)點(diǎn)的所有輸入執(zhí)行當(dāng)前節(jié)點(diǎn)的計(jì)算,作為當(dāng)前節(jié)點(diǎn)的輸出節(jié)點(diǎn)的輸入。

1.5 反向傳播

將當(dāng)前節(jié)點(diǎn)的輸出節(jié)點(diǎn)對(duì)當(dāng)前節(jié)點(diǎn)的梯度損失,乘以當(dāng)前節(jié)點(diǎn)對(duì)輸入節(jié)點(diǎn)的偏導(dǎo)數(shù),作為當(dāng)前節(jié)點(diǎn)的輸入節(jié)點(diǎn)的梯度損失。

1.6 拓?fù)渑判?/strong>

假設(shè)我們的神經(jīng)網(wǎng)絡(luò)中有k個(gè)節(jié)點(diǎn),任意一個(gè)節(jié)點(diǎn)都有可能有多個(gè)輸入,需要考慮節(jié)點(diǎn)執(zhí)行的先后順序,原則就是當(dāng)前節(jié)點(diǎn)的輸入節(jié)點(diǎn)全部執(zhí)行之后,才可以執(zhí)行當(dāng)前節(jié)點(diǎn)。

2. 實(shí)現(xiàn)篇

本人用全宇宙最簡(jiǎn)單的編程語(yǔ)言——Python實(shí)現(xiàn)了全連接神經(jīng)網(wǎng)絡(luò),便于學(xué)習(xí)和使用。簡(jiǎn)單說(shuō)明一下實(shí)現(xiàn)過(guò)程,更詳細(xì)的注釋請(qǐng)參考本人github上的代碼。

2.1 創(chuàng)建BaseNode抽象類

將BaseNode作為各種類型Node的父類。包括如下屬性:

  1. name -- 節(jié)點(diǎn)名稱

  2. value -- 節(jié)點(diǎn)數(shù)據(jù)

  3. inbound_nodes -- 輸入節(jié)點(diǎn)

  4. outbound_nodes -- 輸出節(jié)點(diǎn)

  5. gradients -- 對(duì)于輸入節(jié)點(diǎn)的梯度

class BaseNode(ABC):
    def __init__(self, *inbound_nodes, name=None):
        self.name = name
        self._value = None
        self.inbound_nodes = [x for x in inbound_nodes]
        self.outbound_nodes = []
        self.gradients = dict()
        for node in self.inbound_nodes:
            node.outbound_nodes.append(self)

    def __str__(self):
        size = str(self.value.shape) if self.value is not None else "null"
        return "<Node name: %s, Node size: %s>" % (self.name, size)

    @property
    def value(self)->ndarray:
        return self._value

    @value.setter
    def value(self, value):
        err_msg = "'value' has to be a number or a numpy array!"
        assert isinstance(value, (ndarray, int, float)), err_msg
        self._value = value

    @abstractmethod
    def forward(self):
        return

    @abstractmethod
    def backward(self):
        return

2.2 創(chuàng)建InputNode類

用于存儲(chǔ)訓(xùn)練、測(cè)試數(shù)據(jù)。其中indexes屬性用來(lái)存儲(chǔ)每個(gè)Batch中的數(shù)據(jù)下標(biāo)。

class InputNode(BaseNode):
    def __init__(selfvalue: ndarray, name=None):
        BaseNode.__init__(self, name=name)
        self.value = value
        self.indexes = None

    @property
    def value(self):
        err_msg = "Indexes is None!"
        assert self.indexes is not None, err_msg
        return self._value[self.indexes]

    @value.setter
    def value(selfvalue: ndarray):
        BaseNode.value.fset(self, value)

    def forward(self):
        return

    def backward(self):
        self.gradients = {self: 0}
        for node in self.outbound_nodes:
            self.gradients[self] += node.gradients[self]

2.3 創(chuàng)建LinearNode類

用于執(zhí)行線性運(yùn)算。

  1. Y = WX + Bias

  2. dY / dX = W

  3. dY / dW = X

  4. dY / dBias = 1

class LinearNode(BaseNode):
    def __init__(selfdata: BaseNode, weights: WeightNode, bias: WeightNode, name=None):
        BaseNode.__init__(self, data, weights, bias, name=name)

    def forward(self):
        data, weights, bias = self.inbound_nodes
        self.value = np.dot(data.value, weights.value) + bias.value

    def backward(self):
        data, weights, bias = self.inbound_nodes
        self.gradients = {node: np.zeros_like(node.value) for node in self.inbound_nodes}
        for node in self.outbound_nodes:
            grad_cost = node.gradients[self]
            self.gradients[data] += np.dot(grad_cost, weights.value.T)
            self.gradients[weights] += np.dot(data.value.T, grad_cost)
            self.gradients[bias] += np.sum(grad_cost, axis=0, keepdims=False)

2.4 創(chuàng)建MseNode類

用于計(jì)算預(yù)測(cè)值與實(shí)際值的差異。

  1. MSE = (label - prediction) ^ 2 / n_label

  2. dMSE / dLabel = 2 * (label - prediction) / n_label

  3. dMSE / dPrediction = -2 * (label - prediction) / n_label

class MseNode(BaseNode):
    def __init__(selflabel: InputNode, pred: LinearNode, name=None):
        BaseNode.__init__(self, label, pred, name=name)
        self.n_label = None
        self.diff = None

    def forward(self):
        label, pred = self.inbound_nodes
        self.n_label = label.value.shape[0]
        self.diff = (label.value - pred.value).reshape(-11)
        self.value = np.mean(self.diff**2)

    def backward(self):
        label, pred = self.inbound_nodes
        self.gradients[label] = (2 / self.n_label) * self.diff
        self.gradients[pred] = -self.gradients[label]

2.5 創(chuàng)建SigmoidNode類

用于計(jì)算Sigmoid值。

  1. Y = 1 / (1 + e^(-X))

  2. dY / dX = Y * (1 - Y)

class SigmoidNode(BaseNode):
    def __init__(selfinput_node: LinearNode, name=None):
        BaseNode.__init__(self, input_node, name=name)

    @staticmethod
    def _sigmoid(arr: ndarray) -> ndarray:
        return 1. / (1. + np.exp(-arr))

    @staticmethod
    def _derivative(arr: ndarray) -> ndarray:
        return arr * (1 - arr)

    def forward(self):
        input_node = self.inbound_nodes[0]
        self.value = self._sigmoid(input_node.value)

    def backward(self):
        input_node = self.inbound_nodes[0]
        self.gradients = {input_node: np.zeros_like(input_node.value)}
        for output_node in self.outbound_nodes:
            grad_cost = output_node.gradients[self]
            self.gradients[input_node] += self._derivative(self.value) * grad_cost

2.6 創(chuàng)建WeightNode類

用于存儲(chǔ)、更新權(quán)重。

class WeightNode(BaseNode):
    def __init__(selfshape: Union[Tuple[int, int], int], name=None, learning_rate=None):
        BaseNode.__init__(self, name=name)
        if isinstance(shape, int):
            self.value = np.zeros(shape)
        if isinstance(shape, tuple):
            self.value = np.random.randn(*shape)
        self.learning_rate = learning_rate

    def forward(self):
        pass

    def backward(self):
        self.gradients = {self: 0}
        for node in self.outbound_nodes:
            self.gradients[self] += node.gradients[self]
        partial = self.gradients[self]
        self.value -= partial * self.learning_rate

2.7 創(chuàng)建全連接神經(jīng)網(wǎng)絡(luò)類

class MLP:
    def __init__(self):
        self.nodes_sorted = []
        self._learning_rate = None
        self.data = None
        self.prediction = None
        self.label = None

2.8 網(wǎng)絡(luò)結(jié)構(gòu)

def __str__(self):
    if not self.nodes_sorted:
        return "Network has not be trained yet!"
    print("Network informantion:\n")
    ret = ["learning rate:", str(self._learning_rate), "\n"]
    for node in self.nodes_sorted:
        ret.append(node.name)
        ret.append(str(node.value.shape))
        ret.append("\n")
    return " ".join(ret)

2.9 學(xué)習(xí)率

存儲(chǔ)學(xué)習(xí)率,并賦值給所有權(quán)重節(jié)點(diǎn)。

@property
def learning_rate(self) -> float:
    return self._learning_rate

@learning_rate.setter
def learning_rate(self, learning_rate):
    self._learning_rate = learning_rate
    for node in self.nodes_sorted:
        if isinstance(node, WeightNode):
            node.learning_rate = learning_rate

2.10 拓?fù)渑判?/strong>

實(shí)現(xiàn)拓?fù)渑判颍瑢⒐?jié)點(diǎn)按照更新順序排列。

def topological_sort(self, input_nodes):
    nodes_sorted = []
    que = copy(input_nodes)
    unique = set()
    while que:
        node = que.pop(0)
        nodes_sorted.append(node)
        unique.add(node)
        for outbound_node in node.outbound_nodes:
            if all(x in unique for x in outbound_node.inbound_nodes):
                que.append(outbound_node)
    self.nodes_sorted = nodes_sorted

2.11 前向傳播和反向傳播

def forward(self):
    assert self.nodes_sorted is not None, "nodes_sorted is empty!"
    for node in self.nodes_sorted:
        node.forward()

def backward(self):
    assert self.nodes_sorted is not None, "nodes_sorted is empty!"
    for node in self.nodes_sorted[::-1]:
        node.backward()

def forward_and_backward(self):
    self.forward()
    self.backward()

2.12 建立全連接神經(jīng)網(wǎng)絡(luò)

def build_network(selfdata: ndarray, label: ndarray, n_hidden: int, n_feature: int):
    weight_node1 = WeightNode(shape=(n_feature, n_hidden), name="W1")
    bias_node1 = WeightNode(shape=n_hidden, name="b1")
    weight_node2 = WeightNode(shape=(n_hidden, 1), name="W2")
    bias_node2 = WeightNode(shape=1, name="b2")
    self.data = InputNode(data, name="X")
    self.label = InputNode(label, name="y")
    linear_node1 = LinearNode(
        self.data, weight_node1, bias_node1, name="l1")
    sigmoid_node1 = SigmoidNode(linear_node1, name="s1")
    self.prediction = LinearNode(
        sigmoid_node1, weight_node2, bias_node2, name="prediction")
    MseNode(self.label, self.prediction, name="mse")
    input_nodes = [weight_node1, bias_node1,
                    weight_node2, bias_node2, self.data, self.label]
    self.topological_sort(input_nodes)

2.13 訓(xùn)練模型

使用隨機(jī)梯度下降訓(xùn)練模型。

def train_network(self, epochs: int, n_sample: int, batch_size: int, random_state: int):
    steps_per_epoch = n_sample // batch_size
    for i in range(epochs):
        loss = 0
        for _ in range(steps_per_epoch):
            indexes = choice(n_sample, batch_size, replace=True)
            self.data.indexes = indexes
            self.label.indexes = indexes
            self.forward_and_backward()
            loss += self.nodes_sorted[-1].value
        print("Epoch: {}, Loss: {:.3f}".format(i + 1, loss / steps_per_epoch))
    print()

2.14 移除無(wú)用節(jié)點(diǎn)

模型訓(xùn)練結(jié)束后,將mse和label節(jié)點(diǎn)移除。

def pop_unused_nodes(self):
    for _ in range(len(self.nodes_sorted)):
        node = self.nodes_sorted.pop(0)
        if node.name in ("mse""y"):
            continue
        self.nodes_sorted.append(node)

2.15 訓(xùn)練模型

def fit(self, data: ndarray, label: ndarray, n_hidden: int, epochs: int,
        batch_size: int, learning_rate: float):
    label = label.reshape(-11)
    n_sample, n_feature = data.shape
    self.build_network(data, label, n_hidden, n_feature)
    self.learning_rate = learning_rate
    print("Total number of samples = {}".format(n_sample))
    self.train_network(epochs, n_sample, batch_size)
    self.pop_unused_nodes()
2.16 預(yù)測(cè)多個(gè)樣本
def predict(selfdata: ndarray) -> ndarray:
    self.data.value = data
    self.data.indexes = range(data.shape[0])
    self.forward()
    return self.prediction.value.flatten()

3 效果評(píng)估

3.1 main函數(shù)

使用著名的波士頓房?jī)r(jià)數(shù)據(jù)集,按照7:3的比例拆分為訓(xùn)練集和測(cè)試集,訓(xùn)練模型,并統(tǒng)計(jì)準(zhǔn)確度。

@run_time
def main():
    print("Tesing the performance of MLP....")
    data, label = load_boston_house_prices()
    data = min_max_scale(data)
    data_train, data_test, label_train, label_test = train_test_split(
        data, label, random_state=20)
    reg = MLP()
    reg.fit(data=data_train, label=label_train, n_hidden=8,
            epochs=1000, batch_size=8, learning_rate=0.0008)
    get_r2(reg, data_test, label_test)
    print(reg)

3.2 效果展示

擬合優(yōu)度0.803,運(yùn)行時(shí)間6.9秒。
效果還算不錯(cuò)~

3.3 工具函數(shù)

本人自定義了一些工具函數(shù),可以在github上查看

https://github.com/tushushu/imylu/tree/master/imylu/utils

1、run_time - 測(cè)試函數(shù)運(yùn)行時(shí)間
2、load_boston_house_prices - 加載波士頓房?jī)r(jià)數(shù)據(jù)
3、train_test_split - 拆分訓(xùn)練集、測(cè)試集
4、get_r2 - 計(jì)算擬合優(yōu)度

總結(jié)

矩陣乘法
鏈?zhǔn)角髮?dǎo)
拓?fù)渑判?br style="box-sizing: border-box;font-size: inherit;color: inherit;line-height: inherit;">梯度下降

好消息!

小白學(xué)視覺(jué)知識(shí)星球

開(kāi)始面向外開(kāi)放啦??????




下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。

下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目52講
小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。

下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

交流群


歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


瀏覽 48
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

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

手機(jī)掃一掃分享

分享
舉報(bào)

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 亚洲秘AV无码一区二区qq群| 内射视频免费看| 波多野结衣无码高清| 亚洲操逼逼| 国产欧美日韩在线视频| 大蕉伊人网| 天天撸天天干天天日| 日韩A视频| 久久婷婷亚洲| 中文字幕高清| AV中文无码| 干日本少妇| 91视频在线观看免费| www.17c嫩嫩草色蜜桃网站| 波多野结衣无码在线视频| 久久黄片视频| 欧美第一网站| 日比视频| 久久婷婷国产| 操屄视频在线| 成人久久综合| 亚洲天堂三级片| 日本黄A级A片国产免费| 国产成人亚洲日韩| 亚洲一二三四| 超碰一级片| 国产人妻精品一二三区| 亚洲无码在线观看网站| 午夜一区二区三区免费| 国产一区二区三区免费播放| 黄色动漫在线免费观看| 日韩午夜片| 亚洲乱论| 怡春院综合成人社区| 欧美狠狠| 熟女人妻人妻の视频| 中文字幕第315页| 五月婷婷色播| 大香蕉综合在线观看| 无码人妻一区二区一牛影视| 亚洲特级毛片| 内射婷婷| 亚洲乱码一区二区三区| A级视频免费观看| 欧美一级特黄AAAAAA片在线视频| 91视频在线观看网| 波多野结衣视频网站| 国产欧美精品一区二区| 免费看18禁| 国产黄色视频在线免费看| 九色PORNY国产成人| 波多野吉衣中文字幕| 亚洲精品日日夜夜| 中文字幕日韩一| 蜜臀久久99精品久久久巴士| 国产伦子伦一级A片免费看小说| 日本操逼电影| 欧美成人性爱网站| 日韩午夜电影| 日韩一级免费电影| 亚洲AV成人无码精品区| 懂色av蜜臀av粉嫩av分| 亚洲成人视频网| free性欧美| 中日美朝美女一级片免费看| 中文字幕在线看| 欧美在线不卡| 日韩无码网址| 久久久国产91桃色一区二区三区| 亚洲欧美视频在线| 人人草人人看| 香蕉三级片| 亚洲高清无码免费观看| 欧美口爆视频| 中文字幕操逼| 色欲五月天| 无码乱码在线观看| 日本一级特级毛片视频| 欧美MV日韩MV国产网站| 精品国产精品三级精品AV网址| 激情黄色毛片| 黄色插逼视频| 豆花无码视频一区二区| 久久久久久无码视频| 青榴视频免费观看| 欧美三级片在线观看| 东京热免费视频| 无码v| 亚洲激情综合网| 国产欧美精品一区二区色综合 | 欧美性爱XXXX黑人XYX性爽| 久久电影精品| 国产色婷婷精品综合在线播放| 亚洲欧美日韩在线| 亚洲波多野结衣| 亚洲精品自拍视频| 亚洲三级无码在线观看| 人人看人人摸人人插| av黄色网| 欧美后门菊门交4| 国产精品日韩| 国产福利美女网站| 亚洲日韩网站| 在线不卡无码| 精品人人操| 成人免费无码激情AV片| 16一17女人毛片| 日韩无码波多野结衣| 亚洲无码一区二区三区蜜桃| 亚洲免费观看A∨中文| 成人视频黄片| 日韩激情视频在线观看| a在线| 天天射天天干天天| 嗯啊在线视频| 啊啊啊在线| 91大神在线免费观看| 中文字幕五月天| 波多野结衣福利视频| 黑人精品XXX一区一二区| 久久久在线视频| 亚洲三级AV| 99热高清| 美女国产精品| 51妺嘿嘿午夜福利视频| 国产三级视频在线| 色欲影音| 青娱乐av在线| 久久国产综合| 伊人激情五月天| 黄页网站免费在线观看| 水蜜桃一区| 亚洲激情五月天| 成人三级在线| 免费在线观看av| 永井玛丽亚av无码中出流出 | 麻豆精品视频| 亚洲成人在线| 久久成人综合网| 欧美日本一区二区三区| 操干视频| 欧美大胆视频| 91大神久久| 一级黄色录相片| 欧美性猛交XXXX乱大交| 亚洲美女网站| 亚洲天堂在线播放| AV无码精品| 安徽妇搡BBBB搡BBBB| 人操人操人操| 思思热思思操免费视频| 精品无码免费| 成人视频你懂的| 人妖黃色一級A片| 亚洲人成777| 国产欧美性爱| 91看片看婬黄大片Videos| 亚洲AAA| 99精品在线观看视频| 亚洲无码乱码精品| gogogo视频在线观看黑人| avwww| 少妇久久久久久久久久| 亚洲成人免费福利| AV免费在线播放| 91人人妻人人澡人人爽人人精品| 国产高清自拍| 91久久视频| 国产精品XXX视频| 少妇搡BBBB搡BBB搡18禁| 国产51视频| 久艹| 成人av一区| 日本色电影在线观看| 国产真人无码| 亚洲色逼图片| 今天成全在线观看高清| 亚洲久久在线| 性猛交AAAA片免费观看直播 | 这里只有精品视频| 闺蜜av| 亚洲日韩成人AV| 麻豆乱码国产一区二区三区| 蜜桃精品视频在线观看| 四川少BBB搡BBB爽爽爽| 99大香蕉视频| 99热网站| 91福利视频网站| 无码蜜桃一区二区| 午夜精品18视频国产| 人人插人人澡| 亚洲视频456| 日本处女性高潮喷水视频| 婷婷五月天影院| 精品一区二区ww| 亚洲无码三级视频| 日韩中文毛片| 超碰人妻在线| 国产在线拍揄自揄拍无码网站新闻| 蝌蚪窝久久| 影音先锋在线成人| 欧美极品少妇| 美女av免费| 亚洲久热| 日韩高清一级| 日韩AV成人电影| 91欧美精品成人AAA片| 国产无套在线| 黄色三级在线观看| 黄片网页| 婷婷五月天丁香网| 黄色大片免费网站| 一级黄片学生妹| 波多野结衣无码视频在线观看| 国产成人在线精品| 夜夜骑天天操| 特级婬片AAAAAAA级| 91久久午夜无码鲁丝片久久人妻| 毛片黄片| 亚洲无码人妻| 人人澡人人澡| 久久大| 开心老牛熟| 国产一区一区| 日韩AⅤ无码一区二区三区| 男女日皮视频| 日本免费黄色电影| 精品乱子伦一区二区三区免费播放 | 亚洲免费视频在线| 久久久久久久网站| 色综合久久久无码中文字幕999| 色色网的五月天| 96精品久久久久久久久久| 成人av小说网站| 操逼免费观看| 精品久久久久久久久久| 草B视频| 怡红院成人av| 日本黄色高清视频| 三级AV在线观看| 亚洲国产精品18久久久久久 | 中文字幕一区二区三区四虎在线| 色婷婷在线无码精品秘人口传媒| 欧美后门菊门交3p| 婷婷综合一区| 亚洲AV无码久久久| 69成人精品| 一本色道久久综合狠狠| 2014亚洲天堂| 色接久久| 免费性爱视频网站| 一区二区三区高清无码| 色色资源网| 欧美狂操| 日本特黄AA片免费视频| 日韩综合在线视频| 大香蕉在线看| 久久久久久久久久国产精品| 日韩一区二| 成人永久免费视频| 无码专区亚洲| 极品久久久久| 日韩av在线看| 黄色视频免费观看| 人人操人人爽人人爱| 中文字幕视频一区日日骚| 日韩中文视频| 在线无码播放| 日韩一区二区在线观看| 免费亚洲婷婷| 北条麻妃视频在线观看| 在线无码免费| 色老板在线观看| www.四虎成人网站| 亚洲一区二区三区无码| 欲色av| 免费在线a| 翔田千里无码XXXXXX| 国产精品A片守望| 日韩国产高清无码| 男人的天堂视频| 成人性生活免费视频| 国产电影一区二区三区| 日韩AV电影在线观看| 一区二区三区视频在线观看| 九色在线视频| 精品久久国产| 男人天堂99| 黄色av无码| 国产乱婬AV片免费| 欧美日韩三级在线| 青青草综合视频| 日韩美女在线视频| 最新亚洲无码在线观看| 成人影视在线免费观看| 狠狠躁日日躁夜夜躁A片男男视频| 免费91| 日韩av小电影| 激情五月天在线观看| 18禁网站禁片免费观看| 国产高清一区二区| 国产成人AV在线| 麻豆一区二区三区| 操一炮在线视频| 久久久国产一区二区三区| 精品久久三级片| 亚洲日韩精品欧美一区二区yw| www.777熟女人妻| 久久亚洲一区| 天堂a√在线8| 五月婷婷综合在线| 在线免费观看毛片| 日韩视频在线免费观看| 成人播放视频| 动漫日逼| 综合AV在线| 无码专区中文字幕| 国产116页| 成人精品午夜无码免费| 91综合在线| 日韩成人视屏| 久久六月天| 91白丝喷水自慰网站| 国产九九九视频| 自拍偷拍一区二区| 性无码一区二区三区无码免费| 成人欧美大片黄18| 肏逼网| 嫖中国站街老熟女HD| 男人天堂资源网| 校园春色亚洲无码| 国精产品一品二品国精| 你懂的视频在线| 狠狠爱av| 日韩黄色片在线观看| 小明看台湾成人永久免费视频网站| 日韩成人观看| 日韩亚洲在线| 嫩草在线观看| 欧美性爱免费在线视频| 国产91探花精品一区二区| 69视频免费观看| 免费的黄色视频| www.黄色| 五月丁香中文| 精品一区二区三区免费| 婷婷伊人大香蕉| 桃色av| 人人草在线| 无码五区| 骚逼综合| 色婷婷天天操天天干| 波多野结衣视频在线观看| 91麻豆精品无码人妻| 久99久热| 综合婷婷| 亚洲电影免费观看| 一二三区免费视频| 国内自拍第一页| 国产免费观看av| 日本精品视频一区二区| 婷婷五月影院| 欧美成人A片在线观看| 免费观看一级黄片| 久久99久久99| 亚洲无码福利| 色狠狠AV| 波多野结衣一级| 国产人妻精品| 亚洲精品视频在线观看网站 | 日韩一级在线观看| 996精品视频| 久久免费国产视频| 东京热免费视频| 五月天久久综合| 黄色一级免费电影| 欧美成人综合| 人妻国产| 日韩欧美小视频| 日韩大片免费观看| 亚洲精品久久久久毛片A级绿茶| 欧美久草| 99久久久久久久无码| 一插菊花综合视频| 欧美一级婬片A片免费软件| 久久精彩| 精品国产重口乱子伦| 成人AV天堂| 久久久久久久久免费视频| 黄色免费在线观看| 国产精品视频免费观看| 五月天综合在线| 无码人妻精品一区二区三| 正在播放ADN156松下纱荣子| h视频| 国产黄色三级片| 蜜桃精品一区二区| 伊人成人大香蕉| 午夜免费播放观看在线视频| 亚洲无码你懂的| 人人草人人澡| 俺来也官网欧美久久精品| 99热免费精品| 欧美一区二区在线| 免费在线观看Av| AV一级片| 中文字幕日韩乱伦| 黄色三级在线| 五月天激情网址| 黄色电影网站在线观看| 中文字幕在线观看完整av| 夫妻-ThePorn| 天堂资源| 日本成人电影一区二区三区| 欧美成人视频网站| 四虎av在线播放| 国产小电影在线| 亚洲黄色视频免费| 韩国三级HD久久精品HD| 亚洲精品综合| 中文字幕在线日本| 日韩在线免费观看视频| 日韩AV电影网站| 苍井空无码| 亚洲精品成人AV| www.水蜜桃| 亚洲成人大片| 五月婷婷在线视频| 人妻少妇偷人精品久久| 黄色无码网站| 四虎亚洲| 国产熟女乱伦视频| 丁香六月婷| 日韩高清中文字幕| 91网站观看| 东京热AV在线| www.俺去啦| 五月天丁香社区| 91久久婷婷亚洲精品成人| 亚洲第一天堂| 7x7x7x人成免费观学生视频 | 91av免费| 中文字幕高清视频| 欧美动态视频| 亚洲内射无码| 成人无码免费| 亚洲xx网| 好吊一区二区三区| 中文字幕一二三区| 天天爽夜夜爽AA片免费| 日本在线视频一区二区| 中国人妻HDbute熟睡| 国产17c精品视频一二三区| 男人天堂网AV| 久草综合视频| 口工视频| 99精品六月婷婷综合在线| 91九色首页| 成人黄色在线观看视频| 日本人人操| 久久四区| 日韩成人无码全裸视频| 成人亚洲在线| 成人操b视频| 国产有码视频| 性爱黄色视频| 激情五月天小说网| 黄色成人网站在线观看免费| 国精品无码一区二区三区在线| 国产资源av| 三浦恵子一级婬片A片| 热久久亚洲中文字幕| 四虎成人精品无码永久在线的客服| 久久思热国产| 丁香五月中文字幕| 欧美色视频一区二区三区在线观看| 午夜久操| 日韩无码A片| 国产高清小视频| 影音先锋人妻资源| 欧美精品久久| 在线观看视频国产| 一区二区三区四区不卡| 国产精品A片守望| 三浦恵子一级婬片A片| 秋霞一区二区三区无码| 青青草在线播放| 亚洲伊人影院| 男人天堂手机视频| 91在线无码精品秘蜜桃入口| av免费观看网址| 毛片A级成人片| 少妇bbw搡bbbb搡bbbb| 日本国产欧美| 香蕉漫画在线观看18| 人人干人人干人人| 2025中文字幕在线| 污污污污污www网站免费民国| 久久AV片| eeuss一区二区| 一级片在线免费看| 亚洲三级视频| 中文字幕第6页| 久久久久亚洲AV无码网影音先锋| 在线免费观看国产| 人人摸人人干人人操| 国产高清A片| 影音先锋91| 欧美五月在线网址| 天天日天天干天天日| 国产黄色视频网站在线观看| A色片| 麻豆蜜桃wwww精品无码| 成人国产在线| jizzjizz欧美| 国产aaaaaa| 日韩无码砖区| jizzjizz国产| 无码囯无精品毛片大码| 在线香蕉| 久热中文在线观看精品视频| 蕉久中文字慕| 大鸡巴久久久| 久久成人无码| 91免费成人视频| 丰满人妻一区二区免费看| 欧美69视频| 福利视频二区| 久久免费视频6| 东京热视频网址| 色五月国产| 国产精品电影大全| 无码精品一区二区| 国产在线毛片| 99操逼网| 狠狠艹狠狠干| 精品成人Av一区二区三区 | 国产一区二| 免费日韩视频| 三级片亚洲无码| 中文字幕在线高清| 一级黄色AV片| 免费a在线| 26∪u∪成人网站| 亚洲毛片在线| 91成人网站| 91插插插插| 五月天福利网| 中国黄色一级A片| 亚洲在线视频| 日韩成人免费| 丁香五月AV| 欧美三级电影在线观看| 激情深爱五月| 亚欧洲精品在线视频| 色播欧美| 337P大胆粉嫩银噜噜噜| 国产精品毛片一区视频播| 欧美国产日韩综合在线观看170| 亚州成熟少妇视频在线观看| 在线国产小视频| 精品A区| 色色播播| 香蕉视频毛片| 亚洲综合色网站| 午夜爱爱爱| 一级a片在线播放| 久久高清亚洲| 97免费在线视频| 丁香激情视频| 8050午夜一级免费| 91无码一区二区三区在线| 日韩欧美高清| 波多野结衣一区二区| 91狠狠综合| 免费国产黄色| 午夜精品无码| 欧美午夜成人| 影音先锋成人av| 亚洲AV男人天堂| 美女黄色视频网站| 亚洲aa| 久久穴| 手机成人在线视频| 热久久免费| 超碰女人| 91丝袜| 无码777| 69AV在线播放| 99久久久国产精品无码| 中文字幕在线观看网址最新地址| 噜噜噜av| 超碰在线看| 99热免费在线观看| 3D动漫精品啪啪一区二区下载| 日逼免费网站| 在线操| 欧美成人视频在线观看| 无码中文字幕在线观看| 午夜性爱福利| 撸一撸成人在线做爱视频。| 欧美日韩群交| 国产啊啊啊| 色色视频在线观看| aaa久久| 99久在线精品99re8| 一本色道久久综合狠狠躁的推荐| 无码成人AV| 日韩免费无码视频| 伊人成色| 日韩精品成人| 中文字幕免费在线看一区七区| 伊人AV在线| 亚洲天堂在线观看网站| 男人天堂无码成人| 久9久9久9久9久9久9| 熟女资源网| 久热九九| 天天做天天爽| 韩国无码一区二区三区| 久久精品国产视频| 少妇一区二区三区| 亚洲s在线| 日韩AV电影网| 国产做受精品网站在线观看| 国产激情无码免费| 欧美自拍视频在线观看| 一本一道久久a久久精品蜜桃| 日本三级网站| 国产综合色婷婷精品久久| 韩日午夜| 日本无码视频在线| 在线视频污| 亚洲AV小说| 中文字幕无码Av在线看| 欧美日韩中文字幕无码| 中文字幕视频一区| 欧美性受XXXX黑人XYX性爽一| sm国产在线调教视频| 手机看片1024国产| 一级色情片| 无码视频网站| 91丨豆花丨成人熟女| 内射一区二区| 国产亲子乱XXXXimim/| 中文字幕第315页| 天天干天天看| 色色激情视频| 亚洲天堂2016| 日日躁夜夜躁| 黑人人妻黑人ThePorn| 在线观看黄色片| 无码av无码AV| 蜜桃无码视频小说网站| 国内精品久久久久久久久久| 欧美日韩精品在线视频| 亚洲精品资源| 木牛AV| 一级黄片免费视频| 在线a| 嫩草亚洲小泬久久夂| 亚洲高清国产欧美综合s8| 国产熟女AV| 超碰人人操在线| 黃色一级A一片人与| 成人做爱免费网站| 久久福利电影| 精东AV| 动漫3d啪啪成人h动漫| www、久久| 免费播放黄色成人片| 嫩草视频在线观看| 无码视频网站| 国产A毛片| av东方在线| 国产精品99久久久久的广告情况| 无码人妻日本| 欧美一区二区三区系列电影| 国产亚洲91| 狼人久久| 欧美色图亚洲另类| 亚洲欧美影院| 亚洲精品高清无码| 亚洲高清视频一区| 九一亚洲精品| 99er视频| 做爱网站在线观看| 自拍视频一区| 狠狠操AV| 日韩无码人妻系列| 亚洲黄色毛片| 制服丝袜乱伦| 操大逼视频免费国产| 美女扣穴| 成人在线视频免费| 亚洲最新AV在线| 日本一区二区三区在线播放| 成人精品在线观看| 亚洲秘无码一区二区| 依人综合网| 亚洲欧美视频| 嫩草嫩草69| 你懂的在线观看视频| 在线不卡免费Av| av久操| 精品久久久久久久久久| 日本成人免费电影| 亚洲免费一级| 做爱激情视频网站| 日韩AV无码成人精品| 国产91白丝在一线播放| 天天干在线观看视频| 人人摸人人插| 亚洲天堂AB| 激情婷婷网| 人人色人人爱| AAA亚洲| 高清无码波多野结衣| 天天躁狠狠躁av| 成人视频你懂的| 欧美亚洲天堂| 日本国产视频| 国产福利91精品一区二区三区 | www.AV在线| www.sese| 国产v亚洲| 高清无码在线观看18| 国产性播放| avwww| 米奇7777狠狠狠狠| 国产男女视频| 操久久| 久久狼人| 豆花视频在线观看| 99久久精品国产一区二区三区| 性爱视频网址| 97国产精品视频人人做人人爱| 无码视频一区二区| 五月丁香综合在线| 亚洲免费视频在线播放| 无码人妻AⅤ一区二区三区| 国产精品国产精品国产专区不片 | 欧美在线一区二区| 免费无码婬片aaaa| 日韩激情网| 日韩三级在线播放| 欧美精品久久久久久久多人混战| 成人毛片av| 狼友在线视频| 超碰伊人大香蕉| 亚洲品久久久蜜| 亚洲精品女人久久久| 色丁香视频在线观看的| 久久久精品久久久| 亚洲字幕| 国产学生妹| 国产av一二三区| 亚洲国产精品成人久久蜜臀| 黄频在线免费观看| 成人国产AV| 69成人精品| 久久久久久久久久久高清毛片一级 | 日韩精品成人av| 久久九九99| 97人妻精品一区二区三区图片| 日韩无任何视频在线观看| avwww| aaa精品| 东北毛片| 国产欧美日韩在线视频| 中文字幕高清在线中文字幕中文字幕| 午夜精东影业传媒在线观看| 国产精品亚洲一区| 18禁黄网| 婷婷福利导航| 欧美不卡在线播放| av无码中文| 69国产成人精品二区| 特级WWW444至码| 久久黄色视频免费观看| 美国操逼片| 欧美日韩东京热| 大香蕉九九| 成人AV天堂| ww毛片| 亚洲国产成人精品午夜| 狠狠操综合| 91污视频在线观看| 韩国三级中文字幕HD久久精品| 无码免费一区| 午夜专区| 亚洲一区二区黄色电影视频网站| 伊人狠狠蜜桃亚洲综合| 九九热99视频| 99热这里有精品| 久久免费视频播放| 一级无码免费| 国产黄色电影| 国产精品久久久久久久久久久久久久 | 日韩精品一区二区三区中文在线| 95四川乱子伦视频国产| 婷婷综合在线| 视频一区二区三区在线观看| 99re在线精品| 高清中字无码| 欧美亚洲天堂网| 亚洲午夜av| 老女人操屄| 成人香蕉网| 成人视频你懂的| 色久影院| 操逼视频在线观看| 国产精品一区二区性色AV| 中文字幕无码观看| 免费看欧美成人A片| 欧美成人无码A片免费| 日韩三级av| 一卡二卡在线视频| 五月色婷婷撸| 玩弄人妻少妇500系列视频| 先锋影音资源AV| 成人做爰黄级A片免费看土方| 成人在线免费观看视频| 一级特黄大片色| 99热免费精品| 国产a毛一级,a毛一级| 亚洲成人在线| 青娱乐91| 大荫蒂视频另类XX| 天堂国产一区二区三区| 欧美一区二区三区激情| 国产乱妇无码毛片A片在线看下载| 欧美综合第一页| www.豆花社区成人| 亚洲国产成人自拍| 好叼操| 一区二区网站| 一级无码在线观看| 九色丨蝌蚪丨老版熟女| 偷拍九九热| 91成人精品一区在线播放| a片在线免费看| 黄色A片免费观看| 北条麻妃二区三区| 中文视频免费播放| 江苏妇搡BBBB搡BBBB小说 | 99久久国产热无码精品免费| 91大熟女91大腚女人| 躁BBB躁BBB躁BBBBBB日| 日韩色| 国产在线无码视频| 处破女初破全过免费看| 乱伦激情视频| 大香蕉九九| 国产真人一级a爱做片| 久操影视| 蜜桃传媒一区二区亚洲AV| 北条麻妃无码精品| 91精品国产乱码香蕉黄瓜草莓 | 乱子伦国产精品www| 久久国产乱子伦精品免费午夜... 国产毛片精品一区二区色欲黄A片 | 成人在线精品| AV一区二区三区四区| 国产97在线观看| 又黄又色的视频| 好好日视频| 无码日批| 特级西西444WWW高清大视频| 日韩免费高清在线视频| 嫩BBB槡BBBB槡BBB| 亚洲最大视频| 亚洲日韩欧美一区二区天天天| 激情国产AV| 欧美在线视频一区二区| 九七无码| 中文无码字幕视频| 黄色福利网址| a亚洲天堂| 九色视频在线观看| 中文字幕成人在线| 亚洲在线免费视频| 亚洲免费视频在线| 成人在线小视频| www.亚洲精品| 亚洲色综合久久五月| 婷婷五月欧美| 日本乱伦网| 日本韩国无码视频| 亚洲少妇人妻| 99在线精品视频观看| 色播欧美| 丰满人妻一区二区三区四区不卡| AV牛牛| 黄色国产视频在线观看| 手机看片欧美+日韩+国产| 亚洲乱乱| 走光无码一区二区三区| 嫩BBB搡BBB搡BBB四川| 一起操在线视频| 亚洲日韩在线视频观看|