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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Bert源代码(二)模型

發布時間:2023/12/16 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bert源代码(二)模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Bert源代碼(二)模型

  • 模型訓練、評估和預測流程
  • Bert模型
    • Transformer模型
    • Bert模型
  • Bert模型代碼解析
  • 參考文獻

export BERT_BASE_DIR=/path/to/bert/uncased_L-12_H-768_A-12 export GLUE_DIR=/path/to/glue python run_classifier.py \--task_name=MRPC \--do_train=true \--do_eval=true \--data_dir=$GLUE_DIR/MRPC \--vocab_file=$BERT_BASE_DIR/vocab.txt \--bert_config_file=$BERT_BASE_DIR/bert_config.json \--init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \--max_seq_length=128 \--train_batch_size=32 \--learning_rate=2e-5 \--num_train_epochs=3.0 \--output_dir=/tmp/mrpc_output/

模型訓練、評估和預測流程

和上一篇文章的預訓練類似。

  • 使用ColaProcessor,MnliProcessor,MrpcProcessor,XnliProcessor四種processor處理輸入相應輸入格式數據,獲得當前句text_a和下一句text_b,再通過FullTokenizer來token化。最后通過TFRecordWriter將數據保存為tfrecord文件。
  • 定義input_fn函數file_based_input_fn_builder
  • 定義RunConfig配置run_config
  • 創建model_fn:從傳入的init_checkpoint初始化bert模型、AdamWeightDecayOptimizer,返回TPUEstimatorSpec
  • 結合model_fn、run_config和input_fn使用TPUEstimator進行訓練、評估、預測
  • Bert模型

    先上幾張圖:

    Transformer模型




    上面的圖展示了Transformer結構:Transformer是一種Seq2Seq模型,由encoder和decoder組成。encoder端由Nx個基礎單元疊加,每個基礎單元為:Multi-head的Self-Attention和Feed Forward串聯;decoder端由Nx個基礎單元疊加,每個基礎單元為:輸出端的Masked Multi-head Self-Attention和encoder-decoder的Multi-head Attention和Feed Forward串聯。當然encoder和decoder端都會加入短連接Resnet和Normalization。輸入輸出端都在原來Inputs和Outputs上接一層Embedding層,再加入Position的Embedding來補償位置信息(相對于RNN而言,距離始終為1,避免了RNN長距離依賴的問題。用Position Embedding來補償距離信息。)

    Bert模型

    Bert模型在Input Embedding基礎上加入Token Embedding、Segment Embedding、Position Embedding。引入了Deep Bidirectional Masked Lm和Next Prediction Sentence(這兩個創新點在上一篇文章中已經結合代碼詳細介紹了)。

    Bert模型代碼解析

    我們來逐步解析代碼:

    with tf.variable_scope(scope, default_name="bert"):with tf.variable_scope("embeddings"):# 輸入Embedding# Perform embedding lookup on the word ids.(self.embedding_output, self.embedding_table) = embedding_lookup(input_ids=input_ids,vocab_size=config.vocab_size,embedding_size=config.hidden_size,initializer_range=config.initializer_range,word_embedding_name="word_embeddings",use_one_hot_embeddings=use_one_hot_embeddings)# Add positional embeddings and token type embeddings, then layer# normalize and perform dropout.# 1. 添加Position Embedding和Token Embeddingself.embedding_output = embedding_postprocessor(input_tensor=self.embedding_output,use_token_type=True,token_type_ids=token_type_ids,token_type_vocab_size=config.type_vocab_size,token_type_embedding_name="token_type_embeddings",use_position_embeddings=True,position_embedding_name="position_embeddings",initializer_range=config.initializer_range,max_position_embeddings=config.max_position_embeddings,dropout_prob=config.hidden_dropout_prob)with tf.variable_scope("encoder"):# This converts a 2D mask of shape [batch_size, seq_length] to a 3D# mask of shape [batch_size, seq_length, seq_length] which is used# for the attention scores.attention_mask = create_attention_mask_from_input_mask(input_ids, input_mask)# Run the stacked transformer.# `sequence_output` shape = [batch_size, seq_length, hidden_size].# 2. 創建transformer模型self.all_encoder_layers = transformer_model(input_tensor=self.embedding_output,attention_mask=attention_mask,hidden_size=config.hidden_size,num_hidden_layers=config.num_hidden_layers,num_attention_heads=config.num_attention_heads,intermediate_size=config.intermediate_size,intermediate_act_fn=get_activation(config.hidden_act),hidden_dropout_prob=config.hidden_dropout_prob,attention_probs_dropout_prob=config.attention_probs_dropout_prob,initializer_range=config.initializer_range,do_return_all_layers=True)# 用于masked lm的sequence_output,即final hidden layerself.sequence_output = self.all_encoder_layers[-1]# The "pooler" converts the encoded sequence tensor of shape# [batch_size, seq_length, hidden_size] to a tensor of shape# [batch_size, hidden_size]. This is necessary for segment-level# (or segment-pair-level) classification tasks where we need a fixed# dimensional representation of the segment.# 用于句子分類的pooled_output,使用final hidden layer的第一個token[CLS]的embeding向量with tf.variable_scope("pooler"):# We "pool" the model by simply taking the hidden state corresponding# to the first token. We assume that this has been pre-trainedfirst_token_tensor = tf.squeeze(self.sequence_output[:, 0:1, :], axis=1)self.pooled_output = tf.layers.dense(first_token_tensor,config.hidden_size,activation=tf.tanh,kernel_initializer=create_initializer(config.initializer_range))

    輸入加入其他embedding解析:

    def embedding_postprocessor(input_tensor,use_token_type=False,token_type_ids=None,token_type_vocab_size=16,token_type_embedding_name="token_type_embeddings",use_position_embeddings=True,position_embedding_name="position_embeddings",initializer_range=0.02,max_position_embeddings=512,dropout_prob=0.1):"""Performs various post-processing on a word embedding tensor.Args:input_tensor: float Tensor of shape [batch_size, seq_length,embedding_size].use_token_type: bool. Whether to add embeddings for `token_type_ids`.token_type_ids: (optional) int32 Tensor of shape [batch_size, seq_length].Must be specified if `use_token_type` is True.token_type_vocab_size: int. The vocabulary size of `token_type_ids`.token_type_embedding_name: string. The name of the embedding table variablefor token type ids.use_position_embeddings: bool. Whether to add position embeddings for theposition of each token in the sequence.position_embedding_name: string. The name of the embedding table variablefor positional embeddings.initializer_range: float. Range of the weight initialization.max_position_embeddings: int. Maximum sequence length that might ever beused with this model. This can be longer than the sequence length ofinput_tensor, but cannot be shorter.dropout_prob: float. Dropout probability applied to the final output tensor.Returns:float tensor with same shape as `input_tensor`.Raises:ValueError: One of the tensor shapes or input values is invalid."""input_shape = get_shape_list(input_tensor, expected_rank=3)batch_size = input_shape[0]seq_length = input_shape[1]width = input_shape[2]output = input_tensor# 添加token embeddingif use_token_type:if token_type_ids is None:raise ValueError("`token_type_ids` must be specified if""`use_token_type` is True.")token_type_table = tf.get_variable(name=token_type_embedding_name,shape=[token_type_vocab_size, width],initializer=create_initializer(initializer_range))# This vocab will be small so we always do one-hot here, since it is always# faster for a small vocabulary.flat_token_type_ids = tf.reshape(token_type_ids, [-1])one_hot_ids = tf.one_hot(flat_token_type_ids, depth=token_type_vocab_size)token_type_embeddings = tf.matmul(one_hot_ids, token_type_table)token_type_embeddings = tf.reshape(token_type_embeddings,[batch_size, seq_length, width])output += token_type_embeddings# 添加position embeddingif use_position_embeddings:assert_op = tf.assert_less_equal(seq_length, max_position_embeddings)with tf.control_dependencies([assert_op]):full_position_embeddings = tf.get_variable(name=position_embedding_name,shape=[max_position_embeddings, width],initializer=create_initializer(initializer_range))# Since the position embedding table is a learned variable, we create it# using a (long) sequence length `max_position_embeddings`. The actual# sequence length might be shorter than this, for faster training of# tasks that do not have long sequences.## So `full_position_embeddings` is effectively an embedding table# for position [0, 1, 2, ..., max_position_embeddings-1], and the current# sequence has positions [0, 1, 2, ... seq_length-1], so we can just# perform a slice.position_embeddings = tf.slice(full_position_embeddings, [0, 0],[seq_length, -1])num_dims = len(output.shape.as_list())# Only the last two dimensions are relevant (`seq_length` and `width`), so# we broadcast among the first dimensions, which is typically just# the batch size.position_broadcast_shape = []for _ in range(num_dims - 2):position_broadcast_shape.append(1)position_broadcast_shape.extend([seq_length, width])position_embeddings = tf.reshape(position_embeddings,position_broadcast_shape)output += position_embeddings# 加入LN和dropoutoutput = layer_norm_and_dropout(output, dropout_prob)return output

    transformer模型解析:

    def transformer_model(input_tensor,attention_mask=None,hidden_size=768,num_hidden_layers=12,num_attention_heads=12,intermediate_size=3072,intermediate_act_fn=gelu,hidden_dropout_prob=0.1,attention_probs_dropout_prob=0.1,initializer_range=0.02,do_return_all_layers=False):if hidden_size % num_attention_heads != 0:raise ValueError("The hidden size (%d) is not a multiple of the number of attention ""heads (%d)" % (hidden_size, num_attention_heads))attention_head_size = int(hidden_size / num_attention_heads)input_shape = get_shape_list(input_tensor, expected_rank=3)batch_size = input_shape[0]seq_length = input_shape[1]input_width = input_shape[2]# The Transformer performs sum residuals on all layers so the input needs# to be the same as the hidden size.if input_width != hidden_size:raise ValueError("The width of the input tensor (%d) != hidden size (%d)" %(input_width, hidden_size))# We keep the representation as a 2D tensor to avoid re-shaping it back and# forth from a 3D tensor to a 2D tensor. Re-shapes are normally free on# the GPU/CPU but may not be free on the TPU, so we want to minimize them to# help the optimizer.prev_output = reshape_to_matrix(input_tensor)all_layer_outputs = []# 定義基礎單元疊加數量Nx:num_hidden_layersfor layer_idx in range(num_hidden_layers):with tf.variable_scope("layer_%d" % layer_idx):layer_input = prev_output# Attention層with tf.variable_scope("attention"):attention_heads = []with tf.variable_scope("self"):attention_head = attention_layer(from_tensor=layer_input,to_tensor=layer_input,attention_mask=attention_mask,num_attention_heads=num_attention_heads,size_per_head=attention_head_size,attention_probs_dropout_prob=attention_probs_dropout_prob,initializer_range=initializer_range,do_return_2d_tensor=True,batch_size=batch_size,from_seq_length=seq_length,to_seq_length=seq_length)attention_heads.append(attention_head)attention_output = Noneif len(attention_heads) == 1:attention_output = attention_heads[0]else:# In the case where we have other sequences, we just concatenate# them to the self-attention head before the projection.attention_output = tf.concat(attention_heads, axis=-1)# Run a linear projection of `hidden_size` then add a residual# with `layer_input`.# dropout并加入短鏈接ResNet和LNwith tf.variable_scope("output"):attention_output = tf.layers.dense(attention_output,hidden_size,kernel_initializer=create_initializer(initializer_range))attention_output = dropout(attention_output, hidden_dropout_prob)attention_output = layer_norm(attention_output + layer_input)# The activation is only applied to the "intermediate" hidden layer.# 映射到intermediate_size大小with tf.variable_scope("intermediate"):intermediate_output = tf.layers.dense(attention_output,intermediate_size,activation=intermediate_act_fn,kernel_initializer=create_initializer(initializer_range))# Down-project back to `hidden_size` then add the residual.# 映射回hidden_size大小,并加入短連接ResNet和LNwith tf.variable_scope("output"):layer_output = tf.layers.dense(intermediate_output,hidden_size,kernel_initializer=create_initializer(initializer_range))layer_output = dropout(layer_output, hidden_dropout_prob)layer_output = layer_norm(layer_output + attention_output)prev_output = layer_outputall_layer_outputs.append(layer_output)if do_return_all_layers:final_outputs = []for layer_output in all_layer_outputs:# reshap回input_shape尺寸final_output = reshape_from_matrix(layer_output, input_shape)final_outputs.append(final_output)return final_outputselse:final_output = reshape_from_matrix(prev_output, input_shape)return final_output

    Attention層:
    Attention(Q,K,V)=softmax(QKTdk)VAttention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})VAttention(Q,K,V)=softmax(dk??QKT?)V
    其中Q為query, K為key, V為value, Q∈Rn×?dkQ∈R^{n\text{ × }d_k}QRn?×?dk? dk,K∈Rm×?dk,V∈Rm×?dvd_k, K∈R^{m\text{ × }d_k}, V∈R^{m\text{ × }d_v}dk?,KRm?×?dk?,VRm?×?dv?dkd_kdk?為query和key的維度。?其中,除以dkd_kdk?是為了防止點積過大,QKTQK^TQKT是計算序列中各個位置的相互關系。

    def attention_layer(from_tensor,to_tensor,attention_mask=None,num_attention_heads=1,size_per_head=512,query_act=None,key_act=None,value_act=None,attention_probs_dropout_prob=0.0,initializer_range=0.02,do_return_2d_tensor=False,batch_size=None,from_seq_length=None,to_seq_length=None):def transpose_for_scores(input_tensor, batch_size, num_attention_heads,seq_length, width):output_tensor = tf.reshape(input_tensor, [batch_size, seq_length, num_attention_heads, width])output_tensor = tf.transpose(output_tensor, [0, 2, 1, 3])return output_tensorfrom_shape = get_shape_list(from_tensor, expected_rank=[2, 3])to_shape = get_shape_list(to_tensor, expected_rank=[2, 3])if len(from_shape) != len(to_shape):raise ValueError("The rank of `from_tensor` must match the rank of `to_tensor`.")if len(from_shape) == 3:batch_size = from_shape[0]from_seq_length = from_shape[1]to_seq_length = to_shape[1]elif len(from_shape) == 2:if (batch_size is None or from_seq_length is None or to_seq_length is None):raise ValueError("When passing in rank 2 tensors to attention_layer, the values ""for `batch_size`, `from_seq_length`, and `to_seq_length` ""must all be specified.")# Scalar dimensions referenced here:# B = batch size (number of sequences)# F = `from_tensor` sequence length, 輸入tensor# T = `to_tensor` sequence length, 輸出tensor# N = `num_attention_heads`, Attention頭數目# H = `size_per_head`, 每個Attention頭的大小from_tensor_2d = reshape_to_matrix(from_tensor)to_tensor_2d = reshape_to_matrix(to_tensor)# `query_layer` = [B*F, N*H]# Q, [B*F, N*H], 將from_tensor映射為num_attention_heads * size_per_head大小query_layer = tf.layers.dense(from_tensor_2d,num_attention_heads * size_per_head,activation=query_act,name="query",kernel_initializer=create_initializer(initializer_range))# `key_layer` = [B*T, N*H]# K, [B*T, N*H], 將to_tensor映射為num_attention_heads * size_per_head大小key_layer = tf.layers.dense(to_tensor_2d,num_attention_heads * size_per_head,activation=key_act,name="key",kernel_initializer=create_initializer(initializer_range))# `value_layer` = [B*T, N*H]# V, [B*T, N*H], 將to_tensor映射為num_attention_heads * size_per_head大小value_layer = tf.layers.dense(to_tensor_2d,num_attention_heads * size_per_head,activation=value_act,name="value",kernel_initializer=create_initializer(initializer_range))# `query_layer` = [B, N, F, H]# 重排列維度query_layer = transpose_for_scores(query_layer, batch_size,num_attention_heads, from_seq_length,size_per_head)# `key_layer` = [B, N, T, H]key_layer = transpose_for_scores(key_layer, batch_size, num_attention_heads,to_seq_length, size_per_head)# Take the dot product between "query" and "key" to get the raw# attention scores.# `attention_scores` = [B, N, F, T]# 計算QK/sqrt(dk)attention_scores = tf.matmul(query_layer, key_layer, transpose_b=True)attention_scores = tf.multiply(attention_scores,1.0 / math.sqrt(float(size_per_head)))if attention_mask is not None:# `attention_mask` = [B, 1, F, T]attention_mask = tf.expand_dims(attention_mask, axis=[1])# Since attention_mask is 1.0 for positions we want to attend and 0.0 for# masked positions, this operation will create a tensor which is 0.0 for# positions we want to attend and -10000.0 for masked positions.# 對于attention_mask為1的加零維持原樣;# 對于attention_mask為0的加入-10000令最終該位置的softmax結果為0。adder = (1.0 - tf.cast(attention_mask, tf.float32)) * -10000.0# Since we are adding it to the raw scores before the softmax, this is# effectively the same as removing these entirely.attention_scores += adder# Normalize the attention scores to probabilities.# `attention_probs` = [B, N, F, T]# 計算softmaxattention_probs = tf.nn.softmax(attention_scores)# This is actually dropping out entire tokens to attend to, which might# seem a bit unusual, but is taken from the original Transformer paper.# 加入dropoutattention_probs = dropout(attention_probs, attention_probs_dropout_prob)# `value_layer` = [B, T, N, H]value_layer = tf.reshape(value_layer,[batch_size, to_seq_length, num_attention_heads, size_per_head])# `value_layer` = [B, N, T, H]value_layer = tf.transpose(value_layer, [0, 2, 1, 3])# `context_layer` = [B, N, F, H]# softmax結果乘以V, [B, N, F, T] x [B, N, T, H] = [B, N, F, H]context_layer = tf.matmul(attention_probs, value_layer)# `context_layer` = [B, F, N, H]# 重排列維度context_layer = tf.transpose(context_layer, [0, 2, 1, 3])if do_return_2d_tensor:# `context_layer` = [B*F, N*H]context_layer = tf.reshape(context_layer,[batch_size * from_seq_length, num_attention_heads * size_per_head])else:# `context_layer` = [B, F, N*H]# 將num_attention_heads個head連接在一起context_layer = tf.reshape(context_layer,[batch_size, from_seq_length, num_attention_heads * size_per_head])return context_layer

    參考文獻

  • Attention Is All You Need
  • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  • 總結

    以上是生活随笔為你收集整理的Bert源代码(二)模型的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    在线观看免费视频你懂的 | 午夜av免费观看 | 成人av直播 | 国产精品乱码久久 | 99免费精品视频 | 国产成人黄色网址 | 亚洲精品女人久久久 | 久久不射网站 | 在线观看一区二区精品 | 特级黄色片免费看 | 日韩国产欧美在线视频 | 欧美九九视频 | 亚洲成a人片综合在线 | 丁香五月缴情综合网 | 国产主播大尺度精品福利免费 | 色视频在线看 | 亚洲成人av在线电影 | 日韩试看 | 欧美极品一区二区三区 | 久久综合影视 | 免费看一级黄色 | 色婷婷国产 | 992tv人人网tv亚洲精品 | 欧洲性视频 | 一区二区三区 中文字幕 | 欧美大码xxxx| 最新日韩视频在线观看 | 91精品麻豆 | 人人舔人人舔 | 国产一二区在线观看 | 蜜臀av性久久久久av蜜臀妖精 | 国产午夜小视频 | 国产亚洲视频中文字幕视频 | 一区二区久久久久 | 日韩系列在线观看 | 免费黄色在线播放 | 久久久久草 | 日韩三区在线 | 青草草在线视频 | 久久免费视频这里只有精品 | 2022国产精品视频 | 欧美日韩精品在线观看 | 欧美日韩国产mv | 日韩在线视频一区二区三区 | 亚洲专区视频在线观看 | 人人狠狠综合久久亚洲 | 中文字幕免费一区 | 国产91免费在线 | 国产尤物在线观看 | 婷婷五月情 | 99精品国产视频 | 久久久久女人精品毛片 | av成人亚洲 | 国产999视频在线观看 | 国产淫片免费看 | 狠狠色香婷婷久久亚洲精品 | 国产精品1024 | 97成人精品视频在线播放 | 国产日韩精品一区二区三区在线 | 国产日韩精品在线 | 五月婷婷一区 | 99免费在线观看 | 日韩精品一区在线观看 | 日韩免费一级a毛片在线播放一级 | 久久亚洲影视 | 又黄又色又爽 | 在线观看 国产 | 国产视频中文字幕在线观看 | 九色91在线视频 | 色婷婷在线视频 | 日韩有色| 超碰电影在线观看 | 久久不射电影网 | 午夜骚影| 国产一级在线视频 | 777久久久 | 日韩欧美69 | 欧美 日韩 性 | 日本视频精品 | 色婷婷影视 | 日韩黄色免费在线观看 | 黄色免费观看网址 | 九九久久国产 | 欧美日韩高清一区二区 国产亚洲免费看 | 久久久91精品国产一区二区三区 | 国产日产精品一区二区三区四区 | 91成人免费看片 | 7799av| 精品96久久久久久中文字幕无 | 在线小视频你懂得 | 成人性生爱a∨ | 国产精品久久久久久久久久久久 | 久久国产99 | 美女视频黄在线 | 天天碰天天操视频 | 亚洲国产高清在线观看视频 | www视频在线观看 | 日韩视频区 | 亚洲无线视频 | 久久国产免费看 | 天天干天天天天 | 久久久久久蜜桃一区二区 | 正在播放国产91 | 精品美女在线观看 | 天天插天天爱 | 99精品国产一区二区 | 久久精品久久精品久久 | 成人av地址 | 久久综合视频网 | 国产成人av片 | 午夜影院三级 | 免费av在 | 日本aaa在线观看 | 国产在线中文 | 欧美午夜精品久久久久久孕妇 | 国产黄色成人 | 国内精品久久久久久久久久清纯 | 97超碰成人在线 | 亚洲成av人片一区二区梦乃 | 激情综合网五月 | 亚洲综合激情小说 | 中文在线免费一区三区 | 成人av影视观看 | 91九色精品 | 国产99久久久国产精品成人免费 | 欧美成人精品三级在线观看播放 | 麻豆成人在线观看 | 亚洲一区二区三区精品在线观看 | 色综合天天射 | 久久91网 | 国产亚洲欧美精品久久久久久 | 久久高清av | 黄色三级免费 | 国产又粗又猛又爽又黄的视频先 | 久久99精品久久久久久清纯直播 | 成人免费xxxxxx视频 | 午夜在线免费观看视频 | 最近2019年日本中文免费字幕 | 亚洲黄色一级电影 | 91片黄在线观看动漫 | 国产精品欧美久久久久久 | 免费在线黄色av | 亚洲成av人片在线观看 | 91九色蝌蚪视频在线 | 亚洲午夜精品一区 | 亚洲精品国产精品国自产观看 | 狠狠干天天色 | 色婷婷免费视频 | 国产一区二区成人 | 成人一区二区在线 | 九九视频热 | 大型av综合网站 | 久久久99精品免费观看app | 中文字幕激情 | 色av色av色av | 91麻豆精品国产91久久久无需广告 | 韩日精品在线 | 精品国产91亚洲一区二区三区www | 97人人添人澡人人爽超碰动图 | 青青视频一区 | 久草在线综合 | 2021国产精品视频 | 日韩网站在线免费观看 | 人人爱人人爽 | 丁香网五月天 | 亚洲精品色 | 日韩簧片在线观看 | 亚洲精品资源在线 | 国产精品麻豆99久久久久久 | 国内久久精品视频 | 91桃色在线播放 | 免费a级毛片在线看 | 在线观看电影av | 国产精品视频内 | 国产亚州av | 日韩免费中文 | 天天干天天草天天爽 | 91香蕉视频黄 | 夜夜躁狠狠躁日日躁视频黑人 | 91精品免费看 | 国产码电影 | 九色免费视频 | 人人干免费 | 99爱精品视频| 久久国产成人午夜av影院宅 | 在线亚洲午夜片av大片 | 韩国av不卡| 中文字幕免费播放 | 成人黄色影片在线 | 国产96在线视频 | 国产精品a成v人在线播放 | 欧美亚洲专区 | 日躁夜躁狠狠躁2001 | 最新中文字幕 | 亚洲日本激情 | 国产成人黄色片 | 国产成人av网 | 精品毛片久久久久久 | 色老板在线 | 人人超在线公开视频 | 99久e精品热线免费 99国产精品久久久久久久久久 | 国产手机视频在线 | 九九热免费视频在线观看 | 1000部国产精品成人观看 | 热久久影视 | 国内精品免费久久影院 | 国产精品午夜在线观看 | 国产字幕av| 99久久夜色精品国产亚洲 | 中文字幕丝袜制服 | 国内外激情视频 | 视频一区视频二区在线观看 | 天天干天天摸天天操 | 色综合天天综合网国产成人网 | 国产一区黄色 | 国产1级毛片 | 国产成人久久av免费高清密臂 | 婷婷久久网 | 亚洲综合情 | 国产精品九九九九九九 | aa级黄色大片 | 国产精美视频 | 国产精品18毛片一区二区 | 国产精品麻豆果冻传媒在线播放 | 99精品国产高清在线观看 | 久久精品福利视频 | 国产亚洲视频系列 | 天天艹天天| www免费 | 特级黄色视频毛片 | 成人av在线影视 | 婷婷丁香av | av三级在线免费观看 | 麻豆视频成人 | 国产精品高潮久久av | 天天干天天想 | www.色综合.com| 激情久久婷婷 | 久久视频在线观看免费 | 久久综合九色综合久99 | 精品影院一区二区久久久 | 亚洲欧美怡红院 | 天天综合亚洲 | 高潮久久久久久久久 | 国产成人333kkk | 亚洲va综合va国产va中文 | 五月婷婷在线视频观看 | 在线观看自拍 | 日韩网站在线播放 | 一区二区理论片 | 国产成人精品一区二区三区在线观看 | 在线观看国产v片 | 精品资源在线 | 亚洲欧美日韩国产一区二区 | 久久视精品 | 91自拍视频在线观看 | 91在线免费播放视频 | 日韩精品一区二区三区中文字幕 | 亚洲成人精品久久久 | 久草久草久草久草 | 久久精品国产99国产 | 久久久久久中文字幕 | 日韩精品一区二区三区视频播放 | 在线一二区 | 99精品在线观看视频 | 亚洲免费激情 | 九九九九精品九九九九 | 久久人人精 | 精品欧美一区二区在线观看 | 日韩理论在线 | 少妇性色午夜淫片aaaze | 蜜桃av久久久亚洲精品 | 五月天久久 | 天天操天天射天天舔 | 日韩免费在线 | 久久久久久久av麻豆果冻 | 国产精品一区二区三区在线 | 免费看黄20分钟 | 久久九九精品久久 | 国产群p | 日本成人中文字幕在线观看 | 免费看成人 | 久久国产麻豆 | 国产无遮挡猛进猛出免费软件 | 中文字幕在线观看完整版电影 | 色多多污污在线观看 | 国产成人99av超碰超爽 | 久久天天躁夜夜躁狠狠85麻豆 | 国产亚洲成人精品 | 亚洲精品在线资源 | 日韩中文免费视频 | 一区二区三区电影在线播 | 日韩精品一区二区三区在线播放 | www.日韩免费| 亚洲视频 中文字幕 | 91视频免费 | 蜜臀久久99精品久久久酒店新书 | 国产精品一区二区美女视频免费看 | 日韩在线观看一区二区三区 | 四虎永久网站 | 久久久久在线视频 | 色美女在线 | 亚洲国产成人精品在线 | 免费男女羞羞的视频网站中文字幕 | 国产盗摄精品一区二区 | 在线91观看| 91国内在线 | 美女免费视频一区二区 | 国产原创av片 | 一区二区三区四区精品视频 | 青草视频在线免费 | 极品中文字幕 | 97超碰国产在线 | 天天躁日日躁狠狠躁av麻豆 | 在线观看国产福利片 | 亚洲免费色 | 麻豆果冻剧传媒在线播放 | 色天天综合久久久久综合片 | 伊人网av | 亚洲成人av在线电影 | 免费97视频 | 久久视讯| 久久观看免费视频 | 看全黄大色黄大片 | 69夜色精品国产69乱 | 五月天激情电影 | 99久久99| 亚洲一区动漫 | 国产精品高清av | 欧美日韩一区二区三区在线观看视频 | 欧美日韩在线观看不卡 | 国产精品自产拍在线观看桃花 | 91在线www| 久久日本视频 | 黄色a一级片 | 久草视频在 | 国产一区av在线 | 日韩中文字幕一区 | 久久久久久国产精品免费 | 狠狠色丁香久久婷婷综合丁香 | 久久婷婷开心 | 五月开心六月伊人色婷婷 | 美女视频黄频大全免费 | 人人讲| 国产在线精品一区二区不卡了 | 国内精品久久久久久久久久清纯 | 99爱视频| 国产精品福利在线播放 | 国产精品18久久久久久久网站 | 日韩欧美一区二区三区在线观看 | 欧美黑人猛交 | 男女男视频 | 久久精品人人做人人综合老师 | 欧美日韩亚洲在线观看 | 免费在线激情电影 | 2023av在线 | 一区二区三区中文字幕在线观看 | 91久久久久久久一区二区 | 狠狠躁夜夜a产精品视频 | 中国一级片在线 | 午夜狠狠干 | 99色亚洲| 国产精品视频全国免费观看 | 日韩av中文字幕在线免费观看 | www.av小说| 在线视频18在线视频4k | 久久视频网 | 中中文字幕av在线 | 久久 地址| 美女国产网站 | 日韩在线视频一区 | 97成人精品视频在线观看 | 久久精品这里都是精品 | 日韩v欧美v日本v亚洲v国产v | 日韩3区 | 成 人 黄 色 视频播放1 | 亚州人成在线播放 | 午夜影院一级片 | 狠狠的干狠狠的操 | 伊人手机在线 | 91免费观看国产 | 99热高清 | 免费在线观看日韩视频 | 久久精品激情 | 亚洲三区在线 | 欧美人人爱 | 超碰免费成人 | 国产精品 日韩 欧美 | 中文字幕亚洲精品日韩 | 99热这里只有精品1 av中文字幕日韩 | 久久久受www免费人成 | 日韩免费观看一区二区 | 在线影院av | 婷婷在线看 | 一区二区三区 亚洲 | 天天干夜夜爽 | 久久久久久不卡 | 成人亚洲网 | 青春草国产视频 | 久久dvd| 99热最新地址 | 国产分类视频 | 激情婷婷丁香 | 在线观看涩涩 | 波多野结衣视频一区二区三区 | 美女一区网站 | 国产亚洲视频系列 | 中文字幕一区二区三区四区 | 国产在线观看一 | 日韩精品久久中文字幕 | 亚洲欧美视频在线 | 国产在线999 | 亚洲做受高潮欧美裸体 | 免费在线黄色av | 亚洲国产片色 | 夜夜操网 | 日韩欧美在线一区二区 | 色香蕉在线| 精品国产91亚洲一区二区三区www | 久久这里只有精品1 | 亚洲三级在线免费观看 | 国产伦精品一区二区三区免费 | 国产亚洲精品久久久久久电影 | 精品国产电影一区二区 | 麻豆国产精品va在线观看不卡 | 奇米影视777四色米奇影院 | 国产精品久久久免费 | 成人在线免费观看网站 | 国产日韩精品一区二区三区在线 | 国产美腿白丝袜足在线av | 日日夜精品 | 久久久久久久久久免费视频 | 国产精品av在线 | 久草在线综合 | 又色又爽又激情的59视频 | 四虎在线视频免费观看 | 久久天天躁狠狠躁夜夜不卡公司 | 国产成人亚洲在线电影 | 国产韩国日本高清视频 | 成人一区二区在线 | 国产第一页在线播放 | 三级av在线免费观看 | 91人人澡人人爽人人精品 | 中文字幕免费在线 | 91人人插 | 99视屏| 免费99视频| 国产98色在线 | 日韩 | 日韩免费一二三区 | 亚洲精品中文在线 | 国产丝袜制服在线 | 亚洲综合激情网 | 二区中文字幕 | 久久激情视频 久久 | 久久国产手机看片 | 韩国一区二区三区视频 | 日韩视频区 | 国产一区二区三区 在线 | 日韩精品免费一区二区三区 | 黄色大全免费网站 | 欧美精品久久久久性色 | 亚洲国产三级在线观看 | 久久精品亚洲一区二区三区观看模式 | 日韩高清免费电影 | 国产999久久久 | 国产成人a v电影 | 天天爱天天操天天射 | 超碰人人超碰 | 日韩二级毛片 | 高清不卡一区二区在线 | 69视频国产| 亚洲在线视频观看 | 91激情在线视频 | 天天操天天干天天操天天干 | 免费视频97 | 中文字幕视频观看 | 免费在线中文字幕 | 黄色亚洲在线 | 五月婷婷在线观看 | 欧美精品三级在线观看 | 日韩色在线 | 干天天| 99久久国产免费免费 | 久草在线资源观看 | 久久99国产视频 | 天天干天天拍天天操天天拍 | 国产在线va | 久热免费在线观看 | 久久网站免费 | 欧美91在线 | 久久99精品久久久久婷婷 | 国产小视频你懂的 | 亚洲欧美日韩精品久久奇米一区 | 欧美成人高清 | 蜜臀av夜夜澡人人爽人人 | 操天天操| 久久久久亚洲国产精品 | 国产高清在线a视频大全 | 最新三级在线 | 一二三区av | aav在线| 国内精品久久久久影院一蜜桃 | 成人蜜桃| 久久成年人网站 | 3d黄动漫免费看 | 国产三级国产精品国产专区50 | 在线看中文字幕 | 成人黄在线观看 | 亚洲精品在线免费播放 | 亚洲精品在线一区二区三区 | 国产一区二区手机在线观看 | 97超视频在线观看 | 深爱激情站 | 午夜成人影视 | 日韩电影中文字幕在线 | 又爽又黄又刺激的视频 | 久久这里只有精品视频99 | 久草精品电影 | 亚洲日本中文字幕在线观看 | 中文字幕亚洲欧美 | 国产偷在线 | 久久综合影视 | 免费色网 | 免费在线一区二区 | 中文字幕在线观看国产 | 欧美性精品 | 麻豆传媒在线视频 | 色噜噜在线观看 | 日韩激情久久 | 69av在线视频| av一级在线 | 欧美日韩裸体免费视频 | 美女av在线免费 | 色姑娘综合 | 麻豆传媒电影在线观看 | 国产视频2区 | 欧美人牲 | 激情五月色播五月 | 亚洲欧美在线综合 | 少妇bbb搡bbbb搡bbbb′ | 欧美一级片在线 | 久久桃花网 | 超碰在线成人 | 国产日产亚洲精华av | 999成人网 | 免费观看一级一片 | 99在线国产 | 亚洲三级黄 | 99精品久久久久 | 99久久久久久久 | 99热这里是精品 | 日韩a欧美 | 九九免费精品视频 | 亚洲国产高清在线 | 亚洲国产中文字幕在线视频综合 | 在线免费观看国产黄色 | 99欧美视频 | 久久超级碰 | 亚洲免费不卡 | 久久国产精品99久久久久 | 91福利社区在线观看 | 亚洲精品一区中文字幕乱码 | 免费一级特黄录像 | 久久99精品国产 | 二区三区中文字幕 | 天天做日日做天天爽视频免费 | 日韩在线看片 | 日韩国产精品一区 | 成人在线免费视频 | 国产一区欧美二区 | 国产一性一爱一乱一交 | 国产高清视频免费在线观看 | 久久午夜网 | 日一日干一干 | 国产专区免费 | 欧美一区二区三区在线播放 | 成人国产精品久久久 | 在线 精品 国产 | 色综合婷婷 | 色偷偷男人的天堂av | 青青看片 | 最新av电影网址 | 国语对白少妇爽91 | 中国一区二区视频 | 国产一区二区手机在线观看 | 在线午夜 | 三级大片网站 | 美女国产在线 | 欧美日产一区 | 日韩欧美高清视频在线观看 | 51久久成人国产精品麻豆 | 狠狠躁日日躁狂躁夜夜躁 | 久久黄色免费视频 | www.色婷婷| 91福利社区在线观看 | 国产馆在线播放 | 人人澡超碰碰 | 欧洲精品码一区二区三区免费看 | 欧美色888 | 91成人精品一区在线播放69 | 福利区在线观看 | 麻豆综合网 | 国内久久久久久 | 亚洲激情电影在线 | 午夜精品久久久久久中宇69 | 深夜国产在线 | 色哟哟国产精品 | 免费高清在线观看成人 | 国产精品福利在线播放 | 中文字幕 国产视频 | 精品视频久久久久久 | 黄色字幕网 | 久久综合九色综合久99 | 亚洲女欲精品久久久久久久18 | 四虎影视成人精品国库在线观看 | 国产成人av片 | 69热国产视频 | 精品视频在线免费观看 | 欧美激情视频一二区 | 一本之道乱码区 | 手机av在线不卡 | 亚洲成av人片在线观看无 | 国产精品免费一区二区三区 | 99久久综合精品五月天 | 久久字幕精品一区 | 天天色.com | 久久久久久免费毛片精品 | 午夜 免费 | 婷婷色中文 | 天天操天天怕 | 免费观看久久 | 波多野结衣视频一区 | 视频在线在亚洲 | 国产99久 | 成人在线视频一区 | 亚洲视频电影在线 | 亚洲国产av精品毛片鲁大师 | 国产99精品| 久久久久久久久国产 | 亚洲欧美视频在线播放 | 91精品国产一区二区在线观看 | 日韩欧美视频一区二区三区 | 国产中文字幕免费 | 在线观看福利网站 | 91女神的呻吟细腰翘臀美女 | 免费在线观看视频a | 韩国三级在线一区 | 国产97视频在线 | 亚洲一级理论片 | 五月婷婷视频 | av电影免费在线播放 | 精品视频999 | 特及黄色片 | 国产精品白浆视频 | 中文字幕在线影视资源 | 久草成人在线 | 91人网站| 免费国产一区二区 | 友田真希av| 亚洲精品久久久久久久不卡四虎 | 青草视频在线 | 国产精品久久久久久久久久久不卡 | 91亚洲精品在线观看 | 亚洲一区久久 | 色婷婷88av视频一二三区 | 国产亚洲在线视频 | 激情久久一区二区三区 | 992tv在线成人免费观看 | 天天干天天拍天天操天天拍 | 日韩特黄一级欧美毛片特黄 | 91麻豆精品国产午夜天堂 | 69热国产视频 | 日韩中文字幕视频在线观看 | 四虎在线免费观看 | 国产精品日韩久久久久 | 丁香婷婷在线 | 日本99精品 | 中文在线8资源库 | 97超级碰碰碰碰久久久久 | 中文字幕在线观看你懂的 | 国产精品美女久久久久久2018 | 欧美色图亚洲图片 | 乱男乱女www7788 | 精品一区二区在线看 | 日本精品久久久一区二区三区 | 午夜精品久久久久久久99 | 亚洲欧美视频一区二区三区 | 美女中文字幕 | 在线观看亚洲视频 | 337p日本欧洲亚洲大胆裸体艺术 | 一级一片免费看 | 激情久久久久久久久久久久久久久久 | 国产在线色视频 | 黄色三级视频片 | 国产精品久久久区三区天天噜 | 国产尤物在线 | 国产偷在线 | 久久久久久久久久久久国产精品 | 亚洲一区视频在线播放 | 9在线观看免费高清完整版 玖玖爱免费视频 | 视频三区| 国产一区二区三精品久久久无广告 | 一级片免费观看 | 欧美地下肉体性派对 | 亚洲激情一区二区三区 | 97人人网 | 一 级 黄 色 片免费看的 | av在线官网 | 爱av在线网 | 成人性生交大片免费看中文网站 | 精品视频在线播放 | 国产999精品久久久久久 | 最新三级在线 | 欧美夫妻生活视频 | 在线视频 国产 日韩 | 久久午夜电影院 | 日p视频 | 亚洲激情av | 久久这里只有精品久久 | 国产3p视频| 91免费观看视频网站 | 999久久久免费视频 午夜国产在线观看 | 亚洲一区二区三区精品在线观看 | 亚洲精品国产精品国 | 日韩视频一区二区三区在线播放免费观看 | 国产中文字幕在线免费观看 | 欧美国产三区 | av黄在线播放 | 成人网大片 | 日韩免费电影在线观看 | 成人在线播放视频 | 国产在线2020 | 91精品91| 国产 一区二区三区 在线 | 亚洲精品在线电影 | 久久免费高清视频 | 国产精品久久久免费看 | 亚洲国产操 | 91精品视频导航 | 精品视频国产一区 | 美女黄频在线观看 | www.天天操.com | 免费特级黄色片 | 天堂av影院 | 亚洲精品小视频在线观看 | 97色综合 | 亚洲精品久 | 香蕉视频在线观看免费 | 国产日本在线播放 | 久草干| 国产在线a视频 | 日日日日日 | 99久久精品国产欧美主题曲 | 亚洲视频免费在线观看 | 免费观看不卡av | 激情五月婷婷 | 九九热在线精品视频 | 91色吧 | 美女视频永久黄网站免费观看国产 | 色噜噜狠狠狠狠色综合 | 免费韩国av | 免费在线h | 天天干,天天干 | 成人免费看黄 | 一区二区视频电影在线观看 | 操高跟美女 | 久草在线 | 国产在线观看你懂的 | 国产一区二区高清不卡 | 国产精品18久久久久久不卡孕妇 | 天天干天天操人体 | 久久久久亚洲精品中文字幕 | 亚洲美女免费精品视频在线观看 | 四虎成人精品永久免费av | 国产精品久久婷婷六月丁香 | 国内精品久久久久久久影视麻豆 | 欧美激情综合色 | 99久久成人| 午夜精品一二区 | av中文字幕不卡 | 午夜久久福利影院 | www.久久视频 | 国产高清中文字幕 | 992tv人人网tv亚洲精品 | 国产69精品久久久久久 | 国产一卡二卡在线 | 精品在线视频一区二区三区 | 99热最新网址 | av免费播放 | 丝袜精品视频 | 国产亚洲日本 | 国产爽视频 | 久日视频| 天天躁日日躁狠狠躁av麻豆 | 国产精品综合在线 | 欧美一级免费片 | 久久视频在线 | 免费黄色在线 | 久久精彩免费视频 | 麻豆国产视频 | 国产99久久九九精品免费 | 五月婷婷中文网 | 日本性久久 | 国产女人18毛片水真多18精品 | 午夜在线观看 | 久久久免费精品国产一区二区 | 免费麻豆 | 91亚洲视频在线观看 | 久久黄色小说 | 玖玖在线播放 | 日韩精品一区二区三区水蜜桃 | 国产日产欧美在线观看 | 天天爱天天爽 | 夜夜爱av | 欧美aa在线| 制服丝袜成人在线 | 国产精品美女久久久久久2018 | 久久艹精品 | 天堂视频中文在线 | 亚洲人成免费 | 国产精品入口传媒 | 天天干天天操 | 在线成人免费电影 | 黄色电影在线免费观看 | 成人h视频 | www.婷婷com | 色网站黄 | 丁香婷婷深情五月亚洲 | 久人人| 国产精品二区在线观看 | 日本精品久久久一区二区三区 | 中文字幕在线字幕中文 | 五月开心六月婷婷 | 久草精品在线播放 | 日韩在线免费观看视频 | 91片黄在线观看 | 天天操天天色天天射 | 91av片| 成人福利在线播放 | 黄色网址在线播放 | 国产一区二区免费 | 久热只有精品 | 成人欧美一区二区三区在线观看 | 日韩免费三级 | 午夜狠狠操 | 欧美一级专区免费大片 | 日韩中文字幕免费看 | 免费日韩电影 | 深爱综合网 | 操操操日日 | 香蕉久草 | 日本公妇在线观看高清 | 操夜夜操 | 国产女人40精品一区毛片视频 | 在线一区电影 | 国产一区成人在线 | 久精品一区| 天堂av网址 | 日韩一级片大全 | 日韩h在线观看 | 99久久久久国产精品免费 | 青春草免费视频 | 中午字幕在线观看 | 婷婷综合久久 | 久久免费视频8 | 日本高清中文字幕有码在线 | 狠狠色狠狠综合久久 | 久久男人中文字幕资源站 | 五月婷婷综合在线观看 | 欧美国产日韩一区二区三区 | 久久9精品 | 成人毛片一区 | 2019中文 | 狠狠干电影 | 2019国产精品| 精品视频在线看 | 黄色三级免费观看 | 狠狠狠干狠狠 | 男女视频国产 | 在线免费视| 97国产情侣爱久久免费观看 | 在线观看日韩 | 97国产大学生情侣酒店的特点 | 中文字幕观看视频 | 国产91免费观看 | 成人免费视频网 | 午夜精品久久久久久 | 日韩91精品 | 国产小视频你懂的在线 | 国产乱对白刺激视频不卡 | 欧美日韩一区二区三区在线免费观看 | 国内精自线一二区永久 | 91chinesexxx | 免费看黄20分钟 | 免费看av在线 | 欧美日韩免费在线观看视频 | 精品免费久久久久久 | 日本精品视频一区二区 | 国产午夜精品福利视频 | 欧美va电影| 天天干天天摸 | 免费福利影院 | 天天av在线播放 | 久久久久国产精品一区 | 久久免费视频在线观看6 | 亚洲国产影院 | 久久不卡国产精品一区二区 | 天天艹天天 | 欧美一二三视频 | 国产高清无线码2021 | 亚洲一区二区三区毛片 | 激情丁香月 | 91丨九色丨勾搭 | 久草在线免费看视频 | 激情综合五月婷婷 | 久久综合五月天婷婷伊人 | 九九久久成人 | 欧美日韩一区久久 | 日日夜夜天天综合 | 国产黑丝一区二区 | 亚洲不卡在线 | av免费观看网址 | 久久免费99精品久久久久久 | 日批视频国产 | 久久伊人八月婷婷综合激情 | 久久免费视频在线观看30 | 青草视频在线播放 | 人人插人人艹 | 91精品国产综合久久久久久久 | 99精品国产免费久久 | 人人玩人人添人人澡97 | 久久精品毛片基地 | 亚洲在线视频观看 | 国产在线精品一区二区 | 高清国产一区 | 黄av资源 | 国产精品久久久久久久久久久免费看 | 久草在线免 | 91九色成人蝌蚪首页 | 九九99| 亚洲视频一区二区三区在线观看 | 久草久草在线观看 | 一级黄色免费网站 | 97在线视频网站 | 一区二区三区四区免费视频 | 亚洲精品女人久久久 | 久草视频视频在线播放 | 日韩精品字幕 | www.色在线| 日韩av手机在线看 | 免费男女羞羞的视频网站中文字幕 | 亚洲专区路线二 | 精品国产一区在线观看 | 国产一区二区在线免费 | 色偷偷网站视频 | 欧美怡红院视频 | 精品国产区在线 | 久久久国产精华液 | 午夜精品一区二区三区可下载 | 韩国av不卡 | 夜夜躁天天躁很躁波 | 最新一区二区三区 | 91黄色视屏 | 国产精品一区免费在线观看 | 69av视频在线观看 | 色综合天天综合网国产成人网 | 91av视频在线观看免费 | 日本午夜在线亚洲.国产 | 日本在线精品视频 | 丁香激情婷婷 | 国产资源网 | 欧美午夜a| 色在线亚洲 | 91在线免费视频 | 麻豆系列在线观看 | 美女视频久久久 | 在线观看韩日电影免费 | 五月天婷亚洲天综合网鲁鲁鲁 | 亚洲伊人色 | 手机在线观看国产精品 | 中文字幕一区二区三区视频 | 精品一二三四视频 | 亚洲精品视频在线观看网站 | 欧美整片sss | 国产 日韩 在线 亚洲 字幕 中文 | 亚洲精品乱码白浆高清久久久久久 | 丁香激情网 | 久久国产经典 | 天天干天天怕 | 伊人宗合| 蜜臀av一区| 日本一区二区三区视频在线播放 | 欧美在线观看视频一区二区三区 | 日韩av在线网站 | 国产中文字幕视频在线观看 | 国产理伦在线 | 在线观看蜜桃视频 | 高清在线一区 |