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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

将tensorflow训练好的模型移植到Android (MNIST手写数字识别)

發布時間:2024/4/15 Android 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将tensorflow训练好的模型移植到Android (MNIST手写数字识别) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

將tensorflow訓練好的模型移植到Android (MNIST手寫數字識別)

【尊重原創,轉載請注明出處】https://blog.csdn.net/guyuealian/article/details/79672257

項目Github下載地址:https://github.com/PanJinquan/Mnist-tensorFlow-AndroidDemo麻煩給個“star”哈

? ? ? ?本博客將以最簡單的方式,利用TensorFlow實現了MNIST手寫數字識別,并將Python TensoFlow訓練好的模型移植到Android手機上運行。網上也有很多移植教程,大部分是在Ubuntu(Linux)系統,一般先利用Bazel工具把TensoFlow編譯成.so庫文件和jar包,再進行Android配置,實現模型移植。不會使用Bazel也沒關系,實質上TensoFlow已經為開發者提供了最新的.so庫文件和對應的jar包了(如libtensorflow_inference.so和libandroid_tensorflow_inference_java.jar),我們只需要下載文件,并在本地Android Studio導入jar包和.so庫文件,即可以在Android加載TensoFlow的模型了。?

? ? ??當然了,本博客的項目代碼都上傳到Github:https://github.com/PanJinquan/Mnist-tensorFlow-AndroidDemo

? ? ? 先說一下,本人的開發環境:

  • Windows 7
  • Python3.5
  • TensoFlow 1.6.0(2018年3月23日—當前最新版)
  • Android Studio 3.0.1(2018年3月23日—當前最新版)

一、利用Python訓練模型

? ?以MNIST手寫數字識別為例,這里首先使用Python版的TensorFlow實現單隱含層的SoftMax Regression分類器,并將訓練好的模型的網絡拓撲結構和參數保存為pb文件。首先,需要定義模型的輸入層和輸出層節點的名字(通過形參 'name'指定,名字可以隨意,后面加載模型時,都是通過該name來傳遞數據的):

x = tf.placeholder(tf.float32,[None,784],name='x_input')#輸入節點:x_input . . . pre_num=tf.argmax(y,1,output_type='int32',name="output")#輸出節點:output

PS:說一下鄙人遇到坑:起初,我參照網上相關教程訓練了一個模型,在Windows下測試沒錯,但把模型移植到Android后就出錯了,但用別人的模型又正常運行;后來折騰了半天才發現,是類型轉換出錯啦!!!!
TensorFlow默認類型是float32,但我們希望返回的是一個int型,因此需要指定output_type='int32';但注意了,在Windows下測試使用int64和float64都是可以的,但在Android平臺上只能使用int32和float32,并且對應Java的int和float類型。

?將訓練好的模型保存為.pb文件,這就需要用到tf.graph_util.convert_variables_to_constants函數了。

# 保存訓練好的模型 #形參output_node_names用于指定輸出的節點名稱,output_node_names=['output']對應pre_num=tf.argmax(y,1,name="output"), output_graph_def = graph_util.convert_variables_to_constants(sess, sess.graph_def,output_node_names=['output']) with tf.gfile.FastGFile('model/mnist.pb', mode='wb') as f:#’wb’中w代表寫文件,b代表將數據以二進制方式寫入文件。f.write(output_graph_def.SerializeToString())

? ?關于tensorflow保存模型和加載模型的方法,請參考本人另一篇博客:https://blog.csdn.net/guyuealian/article/details/79693741

? ?這里給出Python訓練模型完整的代碼如下:

#coding=utf-8 # 單隱層SoftMax Regression分類器:訓練和保存模型模塊 from tensorflow.examples.tutorials.mnist import input_data import tensorflow as tf from tensorflow.python.framework import graph_util print('tensortflow:{0}'.format(tf.__version__))mnist = input_data.read_data_sets("Mnist_data/", one_hot=True)#create model with tf.name_scope('input'):x = tf.placeholder(tf.float32,[None,784],name='x_input')#輸入節點名:x_inputy_ = tf.placeholder(tf.float32,[None,10],name='y_input') with tf.name_scope('layer'):with tf.name_scope('W'):#tf.zeros([3, 4], tf.int32) ==> [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]W = tf.Variable(tf.zeros([784,10]),name='Weights')with tf.name_scope('b'):b = tf.Variable(tf.zeros([10]),name='biases')with tf.name_scope('W_p_b'):Wx_plus_b = tf.add(tf.matmul(x, W), b, name='Wx_plus_b')y = tf.nn.softmax(Wx_plus_b, name='final_result')# 定義損失函數和優化方法 with tf.name_scope('loss'):loss = -tf.reduce_sum(y_ * tf.log(y)) with tf.name_scope('train_step'):train_step = tf.train.GradientDescentOptimizer(0.01).minimize(loss)print(train_step) # 初始化 sess = tf.InteractiveSession() init = tf.global_variables_initializer() sess.run(init) # 訓練 for step in range(100):batch_xs,batch_ys =mnist.train.next_batch(100)train_step.run({x:batch_xs,y_:batch_ys})# variables = tf.all_variables()# print(len(variables))# print(sess.run(b))# 測試模型準確率 pre_num=tf.argmax(y,1,output_type='int32',name="output")#輸出節點名:output correct_prediction = tf.equal(pre_num,tf.argmax(y_,1,output_type='int32')) accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32)) a = accuracy.eval({x:mnist.test.images,y_:mnist.test.labels}) print('測試正確率:{0}'.format(a))# 保存訓練好的模型 #形參output_node_names用于指定輸出的節點名稱,output_node_names=['output']對應pre_num=tf.argmax(y,1,name="output"), output_graph_def = graph_util.convert_variables_to_constants(sess, sess.graph_def,output_node_names=['output']) with tf.gfile.FastGFile('model/mnist.pb', mode='wb') as f:#’wb’中w代表寫文件,b代表將數據以二進制方式寫入文件。f.write(output_graph_def.SerializeToString()) sess.close()

上面的代碼已經將訓練模型保存在model/mnist.pb,當然我們可以先在Python中使用該模型進行簡單的預測,測試方法如下:

import tensorflow as tf import numpy as np from PIL import Image import matplotlib.pyplot as plt#模型路徑 model_path = 'model/mnist.pb' #測試圖片 testImage = Image.open("data/test_image.jpg");with tf.Graph().as_default():output_graph_def = tf.GraphDef()with open(model_path, "rb") as f:output_graph_def.ParseFromString(f.read())tf.import_graph_def(output_graph_def, name="")with tf.Session() as sess:tf.global_variables_initializer().run()# x_test = x_test.reshape(1, 28 * 28)input_x = sess.graph.get_tensor_by_name("input/x_input:0")output = sess.graph.get_tensor_by_name("output:0")#對圖片進行測試testImage=testImage.convert('L')testImage = testImage.resize((28, 28))test_input=np.array(testImage)test_input = test_input.reshape(1, 28 * 28)pre_num = sess.run(output, feed_dict={input_x: test_input})#利用訓練好的模型預測結果print('模型預測結果為:',pre_num)#顯示測試的圖片# testImage = test_x.reshape(28, 28)fig = plt.figure(), plt.imshow(testImage,cmap='binary') # 顯示圖片plt.title("prediction result:"+str(pre_num))plt.show()

二、移植到Android

? ? 相信大家看到很多大神的博客,都是要自己編譯TensoFlow的so庫和jar包,說實在的,這個過程真TM麻煩,反正我弄了半天都沒成功過,然后放棄了……。本博客的移植方法不需要安裝Bazel,也不需要構建TensoFlow的so庫和jar包,因為Google在TensoFlow github中給我們提供了,為什么不用了!!!

1、下載TensoFlow的jar包和so庫

? ? TensoFlow在Github已經存放了很多開發文件:https://github.com/PanJinquan/tensorflow

? ?我們需要做的是,下載Android:?native libs?,打包下載全部文件,其中有我們需要的libtensorflow_inference.so和libandroid_tensorflow_inference_java.jar,有了這兩個文件,剩下的就是在Android Studio配置的問題了

2、Android Studio配置

(1)新建一個Android項目

(2)把訓練好的pb文件(mnist.pb)放入Android項目中app/src/main/assets下,若不存在assets目錄,右鍵main->new->Directory,輸入assets。

(3)將下載的libtensorflow_inference.so和libandroid_tensorflow_inference_java.jar如下結構放在libs文件夾下

?

(4)app\build.gradle配置

? ? 在defaultConfig中添加

multiDexEnabled truendk {abiFilters "armeabi-v7a"}

? ? 增加sourceSets

sourceSets {main {jniLibs.srcDirs = ['libs']}}

? ? 在dependencies中增加TensoFlow編譯的jar文件libandroid_tensorflow_inference_java.jar:

compile files('libs/libandroid_tensorflow_inference_java.jar')

? ?OK了,build.gradle配置完成了,剩下的就是java編程的問題了。

3、模型調用

? 在需要調用TensoFlow的地方,加載so庫“System.loadLibrary("tensorflow_inference");并”import org.tensorflow.contrib.android.TensorFlowInferenceInterface;就可以使用了

? ? ?注意,舊版的TensoFlow,是如下方式進行,該方法可參考大神的博客:https://www.jianshu.com/p/1168384edc1e

TensorFlowInferenceInterface.fillNodeFloat(); //送入輸入數據 TensorFlowInferenceInterface.runInference(); //進行模型的推理 TensorFlowInferenceInterface.readNodeFloat(); //獲取輸出數據

? ? ?但在最新的libandroid_tensorflow_inference_java.jar中,已經沒有這些方法了,換為

TensorFlowInferenceInterface.feed() TensorFlowInferenceInterface.run() TensorFlowInferenceInterface.fetch()

? ? ?下面是以MNIST手寫數字識別為例,其實現方法如下:

package com.example.jinquan.pan.mnist_ensorflow_androiddemo;import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.Matrix; import android.util.Log;import org.tensorflow.contrib.android.TensorFlowInferenceInterface;public class PredictionTF {private static final String TAG = "PredictionTF";//設置模型輸入/輸出節點的數據維度private static final int IN_COL = 1;private static final int IN_ROW = 28*28;private static final int OUT_COL = 1;private static final int OUT_ROW = 1;//模型中輸入變量的名稱private static final String inputName = "input/x_input";//模型中輸出變量的名稱private static final String outputName = "output";TensorFlowInferenceInterface inferenceInterface;static {//加載libtensorflow_inference.so庫文件System.loadLibrary("tensorflow_inference");Log.e(TAG,"libtensorflow_inference.so庫加載成功");}PredictionTF(AssetManager assetManager, String modePath) {//初始化TensorFlowInferenceInterface對象inferenceInterface = new TensorFlowInferenceInterface(assetManager,modePath);Log.e(TAG,"TensoFlow模型文件加載成功");}/*** 利用訓練好的TensoFlow模型預測結果* @param bitmap 輸入被測試的bitmap圖* @return 返回預測結果,int數組*/public int[] getPredict(Bitmap bitmap) {float[] inputdata = bitmapToFloatArray(bitmap,28, 28);//需要將圖片縮放帶28*28//將數據feed給tensorflow的輸入節點inferenceInterface.feed(inputName, inputdata, IN_COL, IN_ROW);//運行tensorflowString[] outputNames = new String[] {outputName};inferenceInterface.run(outputNames);///獲取輸出節點的輸出信息int[] outputs = new int[OUT_COL*OUT_ROW]; //用于存儲模型的輸出數據inferenceInterface.fetch(outputName, outputs);return outputs;}/*** 將bitmap轉為(按行優先)一個float數組,并且每個像素點都歸一化到0~1之間。* @param bitmap 輸入被測試的bitmap圖片* @param rx 將圖片縮放到指定的大小(列)->28* @param ry 將圖片縮放到指定的大小(行)->28* @return 返回歸一化后的一維float數組 ->28*28*/public static float[] bitmapToFloatArray(Bitmap bitmap, int rx, int ry){int height = bitmap.getHeight();int width = bitmap.getWidth();// 計算縮放比例float scaleWidth = ((float) rx) / width;float scaleHeight = ((float) ry) / height;Matrix matrix = new Matrix();matrix.postScale(scaleWidth, scaleHeight);bitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);Log.i(TAG,"bitmap width:"+bitmap.getWidth()+",height:"+bitmap.getHeight());Log.i(TAG,"bitmap.getConfig():"+bitmap.getConfig());height = bitmap.getHeight();width = bitmap.getWidth();float[] result = new float[height*width];int k = 0;//行優先for(int j = 0;j < height;j++){for (int i = 0;i < width;i++){int argb = bitmap.getPixel(i,j);int r = Color.red(argb);int g = Color.green(argb);int b = Color.blue(argb);int a = Color.alpha(argb);//由于是灰度圖,所以r,g,b分量是相等的。assert(r==g && g==b); // Log.i(TAG,i+","+j+" : argb = "+argb+", a="+a+", r="+r+", g="+g+", b="+b);result[k++] = r / 255.0f;}}return result;} }
  • 簡單說明一下:項目新建了一個PredictionTF類,該類會先加載libtensorflow_inference.so庫文件;PredictionTF(AssetManager assetManager, String modePath)?構造方法需要傳入AssetManager對象和pb文件的路徑;
  • ?從資源文件中獲取BitMap圖片,并傳入?getPredict(Bitmap bitmap)方法,該方法首先將BitMap圖像縮放到28*28的大小,由于原圖是灰度圖,我們需要獲取灰度圖的像素值,并將28*28的像素轉存為行向量的一個float數組,并且每個像素點都歸一化到0~1之間,這個就是bitmapToFloatArray(Bitmap bitmap, int rx, int ry)方法的作用;
  • ?然后將數據feed給tensorflow的輸入節點,并運行(run)tensorflow,最后獲取(fetch)輸出節點的輸出信息。

? ?MainActivity很簡單,一個單擊事件獲取預測結果:

package com.example.jinquan.pan.mnist_ensorflow_androiddemo;import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.TextView;public class MainActivity extends AppCompatActivity {// Used to load the 'native-lib' library on application startup.static {System.loadLibrary("native-lib");//可以去掉}private static final String TAG = "MainActivity";private static final String MODEL_FILE = "file:///android_asset/mnist.pb"; //模型存放路徑TextView txt;TextView tv;ImageView imageView;Bitmap bitmap;PredictionTF preTF;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// Example of a call to a native methodtv = (TextView) findViewById(R.id.sample_text);txt=(TextView)findViewById(R.id.txt_id);imageView =(ImageView)findViewById(R.id.imageView1);bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test_image);imageView.setImageBitmap(bitmap);preTF =new PredictionTF(getAssets(),MODEL_FILE);//輸入模型存放路徑,并加載TensoFlow模型}public void click01(View v){String res="預測結果為:";int[] result= preTF.getPredict(bitmap);for (int i=0;i<result.length;i++){Log.i(TAG, res+result[i] );res=res+String.valueOf(result[i])+" ";}txt.setText(res);tv.setText(stringFromJNI());}/*** A native method that is implemented by the 'native-lib' native library,* which is packaged with this application.*/public native String stringFromJNI();//可以去掉 }

? ?activity_main布局文件:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:paddingBottom="16dp"android:paddingLeft="16dp"android:paddingRight="16dp"android:paddingTop="16dp"><TextViewandroid:id="@+id/sample_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="https://blog.csdn.net/guyuealian"android:layout_gravity="center"/><Buttonandroid:onClick="click01"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="click" /><TextViewandroid:id="@+id/txt_id"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="結果為:"/><ImageViewandroid:id="@+id/imageView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"/> </LinearLayout>

最后一步,就是run,run,run,效果如下,?

本博客的項目代碼都上傳到Github:下載地址:https://github.com/PanJinquan/Mnist-tensorFlow-AndroidDemo

?

相關參考資料:https://blog.csdn.net/gzhermit/article/details/73924515

如果你覺得該帖子幫到你,還望貴人多多支持,鄙人會再接再厲,繼續努力的~

?

總結

以上是生活随笔為你收集整理的将tensorflow训练好的模型移植到Android (MNIST手写数字识别)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

狠狠操在线 | 久草综合在线观看 | 一区二区三区四区免费视频 | 欧美另类性| 日韩视频在线不卡 | a视频免费在线观看 | 色网免费观看 | www.看片网站| 国产资源免费在线观看 | 日韩av免费在线电影 | 免费视频二区 | 亚洲妇女av | 亚洲精品视频在线播放 | 狠狠的操狠狠的干 | 午夜久久成人 | 精品视频免费 | 久久少妇 | 97在线观看免费观看 | 欧美一级电影免费观看 | 最新国产在线视频 | 亚洲欧洲一区二区在线观看 | 国产高清在线免费 | 黄色免费在线看 | 国产精品v a免费视频 | 国产韩国精品一区二区三区 | 日韩三级视频在线观看 | 美女精品在线 | 国产一区二区手机在线观看 | 国产一区在线播放 | 91精品国产电影 | 欧美日韩中文在线 | 亚洲高清免费在线 | 国产日韩欧美视频在线观看 | 91九色网站 | 亚洲国产精品人久久电影 | 少妇bbbb揉bbbb日本 | 波多在线视频 | 91成年视频| 日韩三级免费 | 亚洲综合情 | 99热这里只有精品1 av中文字幕日韩 | 五月婷婷精品 | 狠狠狠的干 | 亚洲精品动漫久久久久 | 欧美色综合天天久久综合精品 | a'aaa级片在线观看 | 欧美 亚洲 另类 激情 另类 | 日韩成人免费在线 | 天天草天天插 | 三级动态视频在线观看 | 成人久久亚洲 | 97狠狠干| 国产精品手机在线播放 | 97网站| bbb搡bbb爽爽爽 | 国产97视频在线 | 国产精品ⅴa有声小说 | 婷婷六月久久 | 久久观看 | 中文综合在线 | 五月婷婷中文字幕 | 99精品久久只有精品 | 不卡精品视频 | 99精品欧美一区二区蜜桃免费 | 国产一级视频在线观看 | 成人av免费播放 | 国产大尺度视频 | 狠狠操影视 | 婷婷丁香激情五月 | 中文字幕丝袜美腿 | 国产1级视频 | 91黄色小网站 | 日韩中文在线播放 | 免费观看一级视频 | 中文字幕在线观看免费高清完整版 | 狠狠的干| av资源网在线播放 | 操操操日日日 | 91正在播放 | 国产一区二区精品91 | 五月天堂色 | 日韩r级在线 | 欧美日韩免费一区 | 天天干.com | 日韩高清免费观看 | 日韩专区一区二区 | 亚洲精品女| 国产高清av| 婷婷丁香色综合狠狠色 | 91高清免费看 | 日日夜夜干| 激情五月综合网 | 97精品久久人人爽人人爽 | 91最新网址| 中文字幕在线日亚洲9 | 日日躁你夜夜躁你av蜜 | 亚洲成人第一区 | 国产在线精品一区二区 | 国产成人一区二区精品非洲 | 天天色天天干天天色 | 中文字幕在线观看一区 | 中文字幕在线观看视频一区二区三区 | av成人免费观看 | 亚洲精品乱码久久久久久写真 | 日韩在线观看精品 | 伊人久久五月天 | 婷婷在线精品视频 | 手机看国产毛片 | 日本中文字幕一二区观 | 激情久久伊人 | 日韩a在线播放 | 亚洲高清视频在线观看免费 | 日韩欧美综合在线视频 | 又色又爽又激情的59视频 | 亚洲黄色免费在线 | 久久久久久久久久免费 | 婷婷丁香花五月天 | 在线亚洲小视频 | 国产成人精品综合久久久 | 国产一区二区精品久久 | 激情六月婷婷久久 | 久久久91精品国产一区二区精品 | 最新在线你懂的 | 日韩美在线 | 国产视频99 | 欧美精品在线一区二区 | 丝袜美女视频网站 | 最新日韩在线观看 | 在线99热| 欧美精品亚洲精品 | av电影在线观看完整版一区二区 | 又色又爽又激情的59视频 | 黄色一级免费电影 | 91黄在线看 | 国产污视频在线观看 | 男女激情麻豆 | 欧美成人xxx | 日日日干| 97在线视频网站 | 91av视频免费在线观看 | 五月婷婷网站 | 免费日韩高清 | 亚洲激情视频在线观看 | 亚洲激情在线播放 | 中文字幕一区二区三区在线播放 | 欧日韩在线视频 | 四虎成人精品 | 成年人网站免费观看 | 午夜视频播放 | 国产在线高清视频 | 国产r级在线观看 | 精品国产电影一区 | 最近最新中文字幕视频 | 欧美精品在线视频 | 亚洲国产精品99久久久久久久久 | 国产一级视频 | 久久视频在线看 | 欧美极度另类 | 精品91在线 | 亚洲 综合 激情 | 久久免费视频4 | 久久久电影 | 国产专区视频在线 | 天天碰天天操视频 | 521色香蕉网站在线观看 | 最近中文字幕mv | 色噜噜狠狠狠狠色综合 | 亚洲第一伊人 | 欧美性生活免费 | 色吊丝在线永久观看最新版本 | 久久久久久久久久久综合 | 午夜视频在线观看一区二区三区 | 黄色在线看网站 | 91精品第一页 | 一本一本久久aa综合精品 | 激情五月开心 | 激情综合电影网 | 欧美精品久久久久久久久老牛影院 | 国产日韩欧美网站 | 久久久国产网站 | 91激情视频在线观看 | 久久www免费视频 | 精品国产一区二区久久 | 日本不卡一区二区三区在线观看 | 欧美日本不卡高清 | 久草免费福利在线观看 | 亚洲国产精品va在线看 | 99 色 | 四虎影视成人永久免费观看视频 | 六月丁香婷婷网 | 在线观看一二三区 | 亚洲情感电影大片 | 久草视频免费在线观看 | 91成年视频 | 欧美日韩3p| 成人香蕉视频 | 91久久久久久国产精品 | 激情婷婷六月 | 97在线视频免费播放 | 成人a毛片| 国产区网址| 国产一级免费视频 | 久久久久久久久久久久久9999 | 久久国产露脸精品国产 | 麻豆视频在线观看免费 | 日韩在线观看第一页 | 国产亚洲精品久久久网站好莱 | 精品不卡视频 | 人人狠狠综合久久亚洲婷 | 国产1区2区3区精品美女 | 日韩亚洲国产中文字幕 | 日韩在线观看第一页 | 国产专区日韩专区 | 国产精品人人做人人爽人人添 | 欧美在线一 | av福利电影| 九草视频在线 | 毛片黄色一级 | 一级黄色a视频 | 97成人资源站 | 中文在线免费一区三区 | 91av九色 | 黄在线免费看 | 99热播精品 | 激情av在线播放 | 成年人在线免费看 | 五月婷在线 | 中文在线免费观看 | 免费日韩一区二区 | 久久理论视频 | 久久国产一二区 | 黄色免费大片 | 国产精品久久久久亚洲影视 | 国产精品久久久久久久久久白浆 | av在线进入 | 欧美一二在线 | 婷婷综合成人 | 奇米网在线观看 | www久久com | 婷婷视频在线播放 | 高清视频一区二区三区 | 91女人18片女毛片60分钟 | 一本一本久久aa综合精品 | 91插插插免费视频 | 成人av一区二区在线观看 | 91色国产在线 | 欧美一二三区在线观看 | 久久只精品99品免费久23小说 | 亚洲精品美女视频 | 91自拍视频在线观看 | 91久久精品一区 | 成人理论在线观看 | 国产精国产精品 | 亚洲精品国偷拍自产在线观看 | 日韩精品久久久久久久电影竹菊 | www.日日操.com | 国产美女视频网站 | 丁香午夜婷婷 | 天天曰夜夜操 | 久久精品国产成人精品 | 国产视频精品免费播放 | www.色午夜,com | 青青河边草手机免费 | 综合久久2023 | 中文字幕免费一区 | 欧美成人久久 | 丝袜少妇在线 | 中文字幕在线看视频国产 | 日韩三级不卡 | 久久精品国产久精国产 | 亚洲一二三在线 | www.av免费观看 | 涩涩网站免费 | 国产精品成人一区二区三区吃奶 | 国产一区在线免费观看 | 免费三级av | 久久国产精品一国产精品 | 欧美精品一区二区免费 | 久久久久久久久福利 | 超碰大片 | 国产看片免费 | 在线成人一区二区 | 97国产精品免费 | 奇米导航 | 成人动漫一区二区 | 亚洲涩涩网站 | 成人a级免费视频 | 激情综合电影网 | 久久免费在线观看视频 | 黄色软件视频大全免费下载 | 国产录像在线观看 | 91精品视频免费看 | 久久精品1区2区 | 亚洲国产网站 | 久久久久成人精品 | 91激情视频在线 | 国产又粗又猛又黄又爽的视频 | 超碰av在线免费观看 | www久久久久 | 久久一精品 | 99热这里只有精品国产首页 | 免费在线看成人av | 九九热视频在线 | 国产精品无 | 九色视频网 | 黄色三级免费 | 免费网站黄色 | 美女黄久久 | h文在线观看免费 | 国产福利一区二区三区在线观看 | 国产精品毛片久久久久久 | 午夜在线观看一区 | 久久精品人 | 久久久久久综合网天天 | 超碰人人乐 | 成av人电影 | 国产不卡一 | 成人国产精品一区二区 | 99精品影视 | 日韩在线视频网址 | 99久久久久免费精品国产 | 亚洲最快最全在线视频 | 91精彩在线视频 | 国产精品伦一区二区三区视频 | 97国产精品久久 | 成人黄色在线 | 国产精品一区二区吃奶在线观看 | 久一久久| 又黄又爽的视频在线观看网站 | 天天看天天操 | 久久精品国产一区 | 91在线视频观看 | 在线国产视频一区 | 麻豆极品 | 国产精品videoxxxx| 久久夜视频 | 蜜臀av在线一区二区三区 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产91在线观 | 91在线视频观看 | 久久久久久蜜av免费网站 | 亚洲做受高潮欧美裸体 | 2018亚洲男人天堂 | av资源在线看 | 2019中文最近的2019中文在线 | 色婷婷久久| 日本精品久久久久久 | 国产一区二区三区免费观看视频 | 久久免费视频在线观看6 | 97超碰在线资源 | 视频 天天草| 国产精品一区二区美女视频免费看 | 在线视频一二区 | 国产尤物视频在线 | 亚洲精品乱码久久久久久蜜桃91 | 成年人黄色免费视频 | 久久色视频 | 色综合久久88色综合天天6 | av一区二区三区在线观看 | 中文字幕在线播放第一页 | 日韩久久电影 | 美女一二三区 | 尤物一区二区三区 | 韩日精品在线观看 | 九九电影在线 | 91麻豆精品国产91久久久更新时间 | 欧美午夜理伦三级在线观看 | 五月天堂色| 免费久久99精品国产婷婷六月 | av电影免费 | 99久久精品久久久久久动态片 | 人人插人人看 | 欧美色一色 | 8x成人免费视频 | 午夜精品一区二区三区免费视频 | 手机av在线不卡 | 亚洲国产成人久久综合 | 欧美日韩成人 | 免费91麻豆精品国产自产在线观看 | 精品国产一区二区三区av性色 | 日韩区欧美久久久无人区 | 99这里只有久久精品视频 | 亚洲va欧美va人人爽春色影视 | 91九色国产视频 | 午夜精品三区 | 99r在线观看 | 免费合欢视频成人app | 中文十次啦 | 天天色综合天天 | 国产一卡久久电影永久 | 99热在线观看 | 欧美成人xxxx | 日韩女同av | 久久免费视频在线观看30 | av一区二区三区在线播放 | 欧美在线一 | 五月天综合色激情 | a级国产乱理论片在线观看 特级毛片在线观看 | 精品国产一区二区三区噜噜噜 | 久草精品视频在线看网站免费 | 精品成人在线 | 国产精品久久久久久五月尺 | 国产成人精品久久亚洲高清不卡 | 日韩精品免费一区二区 | 国产免费视频一区二区裸体 | 狠狠操综合网 | 精品av网站 | 伊人亚洲综合 | 国产美女免费 | 91中文字幕在线视频 | 欧美日韩三级在线观看 | 视频91在线 | 成 人 黄 色 视频 免费观看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产免费国产 | 国产日韩精品视频 | 久久成年人 | 99视屏| 九色视频网 | 超碰公开在线观看 | 国产一级黄色片免费看 | 69亚洲乱 | 综合激情网 | 视频二区在线 | 五月激情综合婷婷 | 亚洲最大av在线播放 | 国产精品区二区三区日本 | 久爱精品在线 | 欧美一级特黄aaaaaa大片在线观看 | 国产精品美女久久久久久2018 | 天天干天天操天天 | 成人av免费在线播放 | 日韩一二三在线 | 99久久婷婷国产精品综合 | 激情视频国产 | 成 人 黄 色 免费播放 | 日韩视频在线观看免费 | 国产精品一区二区三区久久久 | 黄网站a | 久久久久麻豆v国产 | 日韩高清av | 天天曰天天射 | 精品国产乱码久久久久久久 | 夜夜躁日日躁狠狠躁 | av资源免费看 | 午夜在线观看影院 | 在线观看av的网站 | 在线看成人 | 久草资源免费 | 99精品观看 | 四虎影视8848aamm | 日韩av影视在线观看 | 九九在线视频 | 久久久久久久久综合 | 在线观看国产成人av片 | 天天射成人 | 中文字幕日韩精品有码视频 | 色婷婷一 | 婷婷去俺也去六月色 | 免费日韩电影 | 久久视频免费在线观看 | www.福利视频 | 日本在线观看一区二区 | 一色屋精品视频在线观看 | 日日夜夜天天久久 | 成人免费网站在线观看 | 免费日韩在线 | 波多野结衣网址 | 黄色一级大片在线免费看产 | 亚洲视频,欧洲视频 | 国产高清视频在线播放一区 | 中文成人字幕 | 中日韩在线视频 | 五月天婷婷在线观看视频 | 亚洲精品乱码白浆高清久久久久久 | 午夜123 | 欧美一级片在线免费观看 | 国产一区视频导航 | 国产成人精品午夜在线播放 | 国产日产在线观看 | 久久综合九色欧美综合狠狠 | 91在线看黄 | 日韩电影中文字幕 | 狠狠狠狠狠狠狠干 | 久久9999久久免费精品国产 | 夜夜视频资源 | 精品主播网红福利资源观看 | 狠狠色狠狠色综合日日92 | 中文字幕色综合网 | 色中色综合 | 色吊丝av中文字幕 | 欧美日韩视频在线观看一区二区 | 国产在线播放一区二区三区 | 欧美综合国产 | 精品久久一级片 | 97超碰人人模人人人爽人人爱 | 97视频免费在线看 | 激情深爱 | 99亚洲精品在线 | 丁香在线视频 | 国产一区视频导航 | 色的网站在线观看 | 欧美日韩性视频 | 日韩av在线高清 | 99re8这里有精品热视频免费 | 欧美日韩中文国产一区发布 | 欧美日韩在线电影 | 免费看三片 | 久久99精品久久久久久秒播蜜臀 | 操操操操网 | 91九色国产在线 | 成人久久综合 | 久久精品成人欧美大片古装 | 亚洲午夜精品久久久久久久久 | 婷色| 国产日产高清dvd碟片 | 精品9999 | 日韩欧美在线高清 | 国产精品一区在线 | 日韩在线视频一区二区三区 | 国产精品一区二区在线观看 | 亚洲精品99| 久草在线精品观看 | 黄色免费观看视频 | 激情网站五月天 | 国产精品网红福利 | 成人午夜网址 | 国内久久看| 美女黄视频免费看 | 五月天综合激情网 | 天天摸天天弄 | 伊人欧美 | 我要看黄色一级片 | 深爱激情开心 | 天天干天天干天天干天天干天天干天天干 | 久久久精品综合 | 久久人人爽爽 | 国产一级免费观看视频 | 亚洲精品日韩一区二区电影 | 四虎在线视频免费观看 | 欧洲性视频| 91香蕉视频污在线 | 免费视频久久久久 | 久久国产视频网 | 成年人免费av网站 | 色综合婷婷 | 在线观看av中文字幕 | 九草在线视频 | 久久免费在线观看 | 欧美日韩亚洲国产一区 | 91免费国产在线观看 | www.91国产| 国产在线欧美在线 | 欧美二区在线播放 | 国产精品久久久久久久久软件 | 99国产成+人+综合+亚洲 欧美 | 毛片一区二区 | 麻豆传媒在线免费看 | 成人av片在线观看 | 国产亚洲精品v | 欧美乱淫视频 | 青青草国产成人99久久 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲乱亚洲乱亚洲 | 亚洲成人资源在线观看 | 操天天操| 亚洲国产精品一区二区久久,亚洲午夜 | 天天艹天天 | 欧美性极品xxxx做受 | 久久论理| 看av免费网站| av黄免费看 | 九九日九九操 | 日韩中文在线电影 | 中文字幕第 | 国产精品一区二区三区99 | 亚洲高清精品在线 | 日韩肉感妇bbwbbwbbw | 国产日韩在线观看一区 | 日韩欧美一区二区三区在线观看 | 成年人视频免费在线 | 91精品国产自产老师啪 | 激情开心网站 | 欧美精品网站 | 成人毛片网 | 国产人成一区二区三区影院 | 免费日韩电影 | 欧美日本一区 | 99久久婷婷国产综合精品 | 一本—道久久a久久精品蜜桃 | 草在线 | 亚洲精品国产品国语在线 | 五月亚洲综合 | 不卡精品视频 | 91久久人澡人人添人人爽欧美 | 麻豆影视网 | 国产精品国产三级国产aⅴ9色 | 中文在线8资源库 | 一本一本久久a久久精品综合 | 中日韩欧美精彩视频 | 999电影免费在线观看2020 | 一级黄色片在线免费看 | 日日干夜夜草 | 免费国产在线精品 | 小草av在线播放 | 在线观看中文字幕一区二区 | 成人av一区二区兰花在线播放 | 视频国产 | 国产日韩精品一区二区 | 韩国av免费观看 | 精品一区二区三区电影 | 久久久久久毛片精品免费不卡 | 久久精品福利视频 | 久久一区二区三区日韩 | 中文字幕在线高清 | 美女免费黄视频网站 | 夜夜骑日日操 | 国产亚洲精品中文字幕 | 久久久国产一区二区三区 | 亚洲国产wwwccc36天堂 | av福利超碰网站 | 97电影在线观看 | 久久99精品久久久久婷婷 | 国产精品欧美久久久久无广告 | 丁香在线观看完整电影视频 | 日本在线观看一区二区 | 久久乐九色婷婷综合色狠狠182 | 日日操天天操狠狠操 | 国产视频观看 | 亚洲高清av在线 | 国产一区二区综合 | 久久九九影视网 | 国产免费亚洲高清 | 久久精品电影网 | 国产高清免费在线播放 | 三上悠亚在线免费 | 五月婷婷丁香综合 | 99久久久国产精品免费观看 | 亚洲经典视频在线观看 | 日韩小视频网站 | 最新中文字幕在线观看视频 | 一区三区在线欧 | 亚洲高清视频一区二区三区 | 精品久久久久久国产 | 久久一区二区三区日韩 | 91麻豆精品国产91久久久久久久久 | 99久久精品免费看 | 在线免费观看涩涩 | 日韩a在线看 | 欧美人体xx | a级国产毛片 | 久久极品 | av色一区| 伊甸园永久入口www 99热 精品在线 | 国产视频久久 | 亚洲免费在线观看视频 | 人人插人人澡 | 亚洲乱亚洲乱亚洲 | 一区二区影视 | 久久国产精品区 | 中文字幕免费观看全部电影 | 狠狠综合久久av | 亚洲人xxx| 久久精品国产免费看久久精品 | 激情综合五月 | 国产五月| 亚洲成人av一区二区 | 欧美日韩在线视频一区二区 | 日本公妇在线观看 | 免费下载高清毛片 | 丁香 婷婷 激情 | 欧美精品色 | 91精品国产欧美一区二区成人 | 超碰公开在线 | 9i看片成人免费看片 | 97久久久免费福利网址 | 天天爽天天摸 | 一区二区在线不卡 | av中文字幕日韩 | 欧美日韩国产一区二 | 国产精品成人品 | 久久尤物电影视频在线观看 | 午夜av免费看 | 国产一区二区综合 | 免费看的黄色录像 | 中文av在线免费观看 | 97精品国产97久久久久久粉红 | 亚洲美女视频在线 | 亚洲欧洲精品一区二区精品久久久 | 91精品导航| 久久国产精品成人免费浪潮 | 午夜视频在线网站 | 亚洲人在线视频 | 色偷偷97 | 国产黄色大片 | 久久黄色a级片 | 激情视频二区 | 天天操天天操天天操天天 | 色婷婷国产精品一区在线观看 | 中文字幕一区二区三 | 青青久草在线视频 | 337p日本大胆噜噜噜噜 | 国产精品一区二区久久久 | 日韩在线免费播放 | 亚洲精品小区久久久久久 | 国产成人免费精品 | 西西4444www大胆视频 | 国产精品久久一区二区三区不卡 | 欧美人操人 | 国产中文字幕免费 | 亚洲午夜精品一区二区三区电影院 | 国产精品99久久久久久宅男 | 顶级欧美色妇4khd | 91亚洲精| 国产美女在线免费观看 | 欧美日韩国产综合一区二区 | 国产成人一级电影 | 99精品视频一区二区 | 日韩欧美一区二区在线播放 | 午夜狠狠干 | 中文字幕 国产精品 | 国产一级在线观看 | 久久手机免费观看 | 久久99亚洲热视 | 狠狠躁日日躁狂躁夜夜躁 | 超碰在线97免费 | 欧美激情综合五月色丁香 | 超碰在线人人草 | 欧美成人黄色 | 天天五月天色 | 九九av| 国产精品96久久久久久吹潮 | 国内综合精品午夜久久资源 | 一级片在线 | 日韩r级在线 | 国产精品2018 | 久久久久久久影视 | 国产不卡av在线播放 | 免费黄色小网站 | 又色又爽又激情的59视频 | 中文字幕亚洲五码 | 中文字幕在线观看第一区 | a久久免费视频 | 欧美精品小视频 | 免费色视频网站 | 亚洲精品美女久久久 | 久久精品一二区 | 久久久成人精品 | 久久精品欧美日韩精品 | 亚洲综合五月天 | 国产成人在线观看 | 91成人在线免费观看 | 日韩免费成人 | 999久久国精品免费观看网站 | 黄色软件网站在线观看 | 国产三级香港三韩国三级 | 麻豆免费视频 | 黄色av网站在线观看 | 91在线视频观看免费 | 日韩一区二区三区免费视频 | 日韩欧美一区二区三区在线观看 | 99精品乱码国产在线观看 | av观看网站| 婷婷精品国产欧美精品亚洲人人爽 | 日本视频高清 | 一级理论片在线观看 | 999成人国产 | 操久久免费视频 | 99在线热播精品免费99热 | 在线观看岛国av | 欧美精品日韩 | 97小视频 | av手机在线播放 | 狠狠地操 | 久久久久久久久久久免费视频 | 免费色网站 | 中文字幕123区 | 精品人人人 | 久热色超碰 | 久久国产精品二国产精品中国洋人 | 久久午夜羞羞影院 | 久久色在线播放 | 久久视奸| 九色在线视频 | 五月激情丁香 | 日本精品中文字幕在线观看 | 国产精品亚洲精品 | 青草视频在线 | 狠狠躁夜夜av | 看黄色.com | 欧美-第1页-屁屁影院 | 国产黄色精品 | 九九激情视频 | 亚洲一区二区观看 | 久操视频在线免费看 | 久久国产精品99久久久久 | 精品久久久久久综合日本 | 亚洲婷婷在线 | 久久综合久久综合久久综合 | 在线天堂中文www视软件 | 成 人 黄 色 视频 免费观看 | 国产不卡高清 | 99在线视频精品 | 亚洲精品国产精品乱码不99热 | 97超碰在线资源 | 黄免费网站 | 久久精品在线免费观看 | 在线蜜桃视频 | 亚洲精品国产品国语在线 | 免费黄av| 日韩av中文在线 | 亚洲精品久久在线 | 久久久久久久久久久电影 | 91久久久久久久一区二区 | 久久久久亚洲国产 | 国产精品久久人 | 国产自制av| 国产精品福利无圣光在线一区 | 色综合五月天 | www五月天婷婷 | 婷婷色综 | 欧美日韩视频免费 | 一区二区三区高清 | 亚洲精品综合在线 | 久久av中文字幕片 | 在线观看av大片 | 免费人做人爱www的视 | 久久草在线精品 | 99热官网| 日韩精品视频在线观看免费 | 国内外激情视频 | 99国产精品免费网站 | 国产色一区 | 免费网站看av片 | 欧美成人性战久久 | 九九99 | 天天射天天爱天天干 | 欧美成人黄色 | 99免费在线观看视频 | 狠狠色丁香婷婷综合最新地址 | 91中文字幕网 | 在线看黄色av | 亚洲专区 国产精品 | 国产精品久久久久三级 | 成人在线观看影院 | 高清av免费看| 亚洲精品视频二区 | 99视频在线免费观看 | 男女全黄一级一级高潮免费看 | 中文字幕在线一区观看 | 日本高清免费中文字幕 | 国产精品日韩欧美一区二区 | 综合天天 | 黄色影院在线免费观看 | 亚洲成人免费在线 | 色狠狠一区二区 | 久精品在线观看 | 色多多视频在线 | 国内精品久久久久久久久 | 韩国精品视频在线观看 | 99视频在线看 | 在线观看视频一区二区三区 | 国产欧美在线一区二区三区 | 国产精品美女久久久久久久久久久 | 久久综合9988久久爱 | se婷婷 | 97视频久久久 | 日韩精品无| 在线电影 一区 | 色婷婷在线播放 | 91精选在线观看 | 欧美怡红院| 色网站免费在线观看 | 中文电影网 | av天天色 | 丁香花在线观看免费完整版视频 | 国产69精品久久久久99 | 黄色一及电影 | 国产精品久久久久影院 | 欧美激情在线看 | 麻豆视屏 | 成年人免费看片网站 | 久久久免费av | 精品免费久久久久久 | 欧美日韩不卡在线 | 久久综合福利 | 在线性视频日韩欧美 | 久久久久久久久精 | 九九免费视频 | 久久国产精品免费一区二区三区 | 久久一区国产 | 91亚州| 欧美男同视频网站 | 狠狠干狠狠久久 | 久草资源在线观看 | 成人国产精品久久久春色 | 国产精品理论片在线观看 | 午夜精品区 | 97精品欧美91久久久久久 | 美女视频黄免费网站 | 国产精品美女免费视频 | 国产一区免费在线观看 | 中文字幕一区二区在线播放 | 国产精品初高中精品久久 | 亚洲精品字幕在线观看 | 国产在线资源 | 久久精品日产第一区二区三区乱码 | 亚洲欧美偷拍另类 | 精品一二三四视频 | 一级理论片在线观看 | 婷婷网在线| 在线观看网站黄 | 精品久久久久久久 | 97成人在线观看 | 国产精品免费久久 | 久久99视频免费观看 | 婷婷成人综合 | 97超碰资源 | 97在线影院 | 在线日本看片免费人成视久网 | 久久精品久久精品久久39 | 日韩精品综合在线 | 日韩视频图片 | 久久久国产一区二区三区四区小说 | 黄色www| 成年人在线免费看片 | 国产精品99久久久久久人免费 | 欧美日韩视频在线观看一区二区 | 亚洲精品久久久久久久蜜桃 | 五月的婷婷 | 五月天网页 | 天天操综合网 | 国产精品久久久久三级 | 天天综合网在线观看 | 少妇bbbb| 射综合网 | 日韩av电影免费观看 | 在线免费国产视频 | 欧美另类高清 videos | 成年在线观看 | 在线观看国产中文字幕 | 日本高清dvd | 日韩在线观看一区二区三区 | 国产精品手机播放 | 激情av资源 | 成人小电影在线看 | 成人国产精品入口 | 久久夜色网 | 中文字幕三区 | 日韩欧美在线观看一区 | av一区二区在线观看中文字幕 | 国产精品女主播一区二区三区 | 97成人精品区在线播放 | 18做爰免费视频网站 | 韩国av永久免费 | 亚洲理论片| 中文字幕高清免费日韩视频在线 | 久久精品一区二区三区视频 | 91九色porny在线| 中文字幕观看av | 99综合影院在线 | 三级黄色片子 | 91网免费看 | av天天澡天天爽天天av | 久草9视频 | 亚洲不卡在线 | 午夜电影久久 | 午夜婷婷在线观看 | 久色小说| 亚洲婷婷网 | 热久久最新地址 | 久久综合色8888 | 狠狠久久综合 | 91网在线看| 超碰人人超 | 网站在线观看日韩 | 丁香五月亚洲综合在线 | 天天天操天天天干 | a级片网站 | 欧美天天综合网 | 中文字幕资源网在线观看 | 中国成人一区 | 国产小视频网站 | 中文字幕在线影视资源 | 日产乱码一二三区别在线 | 亚洲精品国产高清 | 国产原创av片 | 人人艹人人| 三级毛片视频 | 精品福利av | 久久夜色精品国产欧美乱极品 | 在线日韩 | 国产一区91 | 久久看毛片| 国产成人三级一区二区在线观看一 | 欧美大香线蕉线伊人久久 | 在线国产日本 | 免费特级黄毛片 |