Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 男人日女人的逼视频,日韩黄色片视频,久久精品首页

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          10分鐘搭建你的第一個圖像識別模型(附步驟、代碼)

          10分鐘搭建你的第一個圖像識別模型(附步驟、代碼)

          者:Pulkit Sharma

          翻譯:王威力

          校對:丁楠雅

          本文約3400字,建議閱讀10分鐘。

          本文介紹了圖像識別的深度學(xué)習(xí)模型的建立過程,通過陳述實際比賽的問題、介紹模型框架和展示解決方案代碼,為初學(xué)者提供了解決圖像識別問題的基礎(chǔ)框架。

          序言

          “幾分鐘就可以建立一個深度學(xué)習(xí)模型?訓(xùn)練就要花幾個小時好嗎!我甚至沒有一臺足夠好的機器。”我聽過無數(shù)次有抱負(fù)的數(shù)據(jù)科學(xué)家這樣說,他們害怕在自己的機器上構(gòu)建深度學(xué)習(xí)模型。

          其實,你不必在谷歌或其他大型科技公司工作,就可以訓(xùn)練深度學(xué)習(xí)數(shù)據(jù)集。你完全可以用幾分鐘的時間從頭搭建起你自己的神經(jīng)網(wǎng)絡(luò),而不需要租谷歌的服務(wù)器。Fast.ai的學(xué)生花了18分鐘設(shè)計出了用于ImageNet數(shù)據(jù)集的一個模型,接下來我將在本文中展示類似的方法。



          深度學(xué)習(xí)是一個廣泛的領(lǐng)域,所以我們會縮小我們的關(guān)注點在圖像分類問題上。而且,我們將使用一個非常簡單的深度學(xué)習(xí)架構(gòu)來達到一個很好的準(zhǔn)確率。

          你可以將本文中的Python代碼作為構(gòu)建圖像分類模型的基礎(chǔ),一旦你對這些概念有了很好的理解,可以繼續(xù)編程,參加比賽、登上排行榜。

          如果你剛開始深入學(xué)習(xí),并且對計算機視覺領(lǐng)域著迷(誰不是呢?!)一定要看一看Computer Vision using Deep Learning的課程,它對這個酷炫的領(lǐng)域進行了全面的介紹,將為你未來進入這個巨大的就業(yè)市場奠定基礎(chǔ)。

          課程鏈接:https://trainings.analyticsvidhya.com/courses/course-v1:AnalyticsVidhya+CVDL101+CVDL101_T1/ about?utm_source=imageclassarticle&utm_ medium=blog

          目錄


          一、什么是圖像分類以及它的應(yīng)用案例

          二、設(shè)置圖像數(shù)據(jù)結(jié)構(gòu)

          三、分解模型建立過程

          四、設(shè)置問題定義并認(rèn)識數(shù)據(jù)

          五、建立圖像分類模型的步驟

          六、開始其他挑戰(zhàn)

          一、什么是圖像分類以及它的應(yīng)用案例

          觀察以下圖片:



          你應(yīng)該可以馬上就認(rèn)出它——是一倆豪華車。退一步來分析一下你是如何得到這個結(jié)論的——你被展示了一張圖片,然后你將它劃分為“車”這個類別(在這個例子中)。簡單來說,這個過程就是圖像分類。

          很多時候,圖像會有許多個類別。手動檢查并分類圖像是一個非常繁瑣的過程。尤其當(dāng)問題變?yōu)閷?0000張甚至1000000張圖片的時候,這個任務(wù)幾乎不可能完成。所以如果我們可以將這個過程自動化的實現(xiàn)并快速的標(biāo)記圖像類別,這該有多大的用處啊。

          自動駕駛汽車是一個圖像分類在現(xiàn)實世界應(yīng)用的很好的例子。為了實現(xiàn)自動駕駛,我們可以建立一個圖像分類模型來識別道路上的各種物體,如車輛、人、移動物體等。我們將在接下來的部分中看到更多的應(yīng)用,甚至在我們的身邊就有許多的應(yīng)用。

          既然我們已經(jīng)掌握了主題,那么讓我們來深入研究一下如何構(gòu)建圖像分類模型,它的先決條件是什么,以及如何在Python中實現(xiàn)它。

          二、設(shè)置圖像數(shù)據(jù)結(jié)構(gòu)

          我們的數(shù)據(jù)集需要特殊的結(jié)構(gòu)來解決圖像分類問題。我們將在幾個部分中看到這一點,但在往下走之前,請記住這些建議。

          你應(yīng)該建立兩個文件夾,一個放訓(xùn)練集,另一個放測試集。訓(xùn)練集的文件夾里放一個csv文件和一個圖像文件夾:

          • csv文件存儲所有訓(xùn)練圖片的圖片名和它們對應(yīng)的真實標(biāo)簽
          • 圖像文件夾存儲所有的訓(xùn)練圖片

          測試集文件夾中的csv文件和訓(xùn)練集文件夾中的csv文件不同,測試集文件夾中的csv文件只包含測試圖像的圖片名,不包括它們的真實標(biāo)簽。因為我們要通過訓(xùn)練訓(xùn)練集中的圖片來對測試集中的圖片進行預(yù)測。

          如果你的數(shù)據(jù)集不是這樣的格式,你需要進行轉(zhuǎn)換,否則的話預(yù)測結(jié)果可能有錯誤。

          三、分解模型搭建的過程

          在我們研究Python代碼之前,讓我們先理解圖像分類模型通常是如何設(shè)計的。可以將過程分為4個部分。每個步驟需要一定時間來執(zhí)行:

          第一步:加載和預(yù)處理數(shù)據(jù)——30%時間

          第二步:定義模型架構(gòu)——10%時間

          第三步:訓(xùn)練模型——50%時間

          第四步:評價模型表現(xiàn)——10%時間

          接下來我會更詳細(xì)地解釋一下上面的每一個步驟。這一部分非常重要,因為并非所有模型都是在第一步構(gòu)建的。你需要在每次迭代之后返回,對步驟進行微調(diào),然后再次運行它。對基礎(chǔ)概念有一個扎實的理解,對于加速整個過程將有很大的幫助。

          • 第一步:加載和預(yù)處理數(shù)據(jù)


          就深度學(xué)習(xí)模型而言,數(shù)據(jù)非常關(guān)鍵。如果訓(xùn)練集中有大量的圖像,你的圖像分類模型也會有更大的可能實現(xiàn)更好的分類效果。此外,根據(jù)所用的框架不同,數(shù)據(jù)的維度不同,效果也不一樣。

          因此,對于關(guān)鍵的數(shù)據(jù)預(yù)處理這一步,我推薦大家瀏覽下面這篇文章,來對圖像數(shù)據(jù)的預(yù)處理有一個更好的理解:

          Basics of Image Processing in Pythonhttps://www.analyticsvidhya.com/blog/2014/12/image-processing-python-basics/)

          但我們還沒完全到數(shù)據(jù)預(yù)處理這一步,為了了解我們的數(shù)據(jù)在新的之前沒見過的數(shù)據(jù)集中的表現(xiàn)(在預(yù)測測試集之前),我們需要先從訓(xùn)練集中劃分出一部分為驗證集。

          簡而言之,我們在訓(xùn)練集上訓(xùn)練模型然后在驗證集上進行驗證。如果我們對在驗證集上的結(jié)果滿意,就可以用來預(yù)測測試集的數(shù)據(jù)。

          所需時間:大約2-3分鐘

          • 第二步:建立模型框架


          這是深度學(xué)習(xí)模型建立過程中的另一個重要的步驟。在這個過程中,需要思考這樣幾個問題:

          • 需要多少個卷積層?
          • 每一層的激活函數(shù)是什么?
          • 每一層有多少隱藏單元?

          還有其他一些問題。但這些基本上是模型的超參數(shù),它們對預(yù)測結(jié)果起著重要作用。

          如何確定這些超參的值?好問題!一個方法是根據(jù)現(xiàn)有的研究選擇這些值。另一個想法是不斷嘗試這些值,直到找到最好的,但這可能是一個非常耗時的過程。

          所需時間:大約1分鐘定義這個框架。

          • 第三步:訓(xùn)練模型


          對模型訓(xùn)練,我們需要:

          • 訓(xùn)練圖像和它們的真實標(biāo)簽。
          • 驗證集圖像和其真實標(biāo)簽。(我們只用驗證集的標(biāo)簽進行模型評估,不用于訓(xùn)練)

          我們還需要定義迭代次數(shù)(epoch)。開始階段,我們訓(xùn)練10次(你可以再更改)。

          所需時間:大概5分鐘,來進行模型的結(jié)構(gòu)的學(xué)習(xí)。

          • 第四步:評估模型表現(xiàn)


          最后,我們加載測試數(shù)據(jù)(圖像)并完成預(yù)處理步驟。然后我們使用訓(xùn)練模型預(yù)測這些圖像的類別。

          所需時間:1分鐘

          四、設(shè)置問題定義并認(rèn)識數(shù)據(jù)

          我們將嘗試一個非常酷的挑戰(zhàn)來理解圖像分類。我們需要建立一個模型,可以對給定的圖像進行分類(襯衫、褲子、鞋子、襪子等)。這實際上是許多電子商務(wù)零售商面臨的一個問題,這使得它成為一個更有趣的計算機視覺問題。

          這個挑戰(zhàn)被稱為“識別服裝”,是我們在數(shù)據(jù)黑客平臺上遇到的實踐問題之一。你必須注冊并從上面的鏈接下載數(shù)據(jù)集。

          “識別服裝”比賽鏈接:https://datahack.analyticsvidhya.com/contest/practice-problem-identify-the-apparels/)數(shù)據(jù)黑客平臺:https://datahack.analyticsvidhya.com/




          一共有70000圖像(28x28維),其中60000來自訓(xùn)練集,10000來自測試集。訓(xùn)練圖像已經(jīng)預(yù)先被打上了衣服類別的標(biāo)簽,一共10個類別。測試集沒有標(biāo)簽。這個比賽是對測試集的圖像進行識別。

          我們將在Google Colab搭建模型,因為它提供免費的GPU。

          Google Colab:https://colab.research.google.com/


          五、建立圖像分類模型的步驟

          接下來是時候展示你的Python技巧啦,最終我們到了執(zhí)行階段!

          主要步驟如下:

          • 設(shè)置Google Colab
          • 導(dǎo)入庫
          • 導(dǎo)入數(shù)據(jù)預(yù)處理數(shù)據(jù)(3分鐘)
          • 設(shè)置驗證集
          • 定義模型結(jié)構(gòu)(1分鐘)
          • 訓(xùn)練模型(5分鐘)
          • 預(yù)測(1分鐘)

          下面詳細(xì)介紹以上步驟。

          • 第1步:設(shè)置Google Colab


          因為我們將從Google Drive link導(dǎo)入數(shù)據(jù),我們需要在Google Colab notebook上增加幾條代碼。新建Python3 notebook,寫下下面的代碼:

          !pip install PyDrive
          

          這一步是安裝PyDrive。下面導(dǎo)入需要的庫:

          import os
          from pydrive.auth import GoogleAuth
          from pydrive.drive import GoogleDrive
          from google.colab import auth
          from oauth2client.client import GoogleCredentials
          

          下面創(chuàng)建drive變量訪問Google Drive:

          auth.authenticate_user()
          gauth=GoogleAuth()
          gauth.credentials=GoogleCredentials.get_application_default()
          drive=GoogleDrive(gauth)
          

          需要用Google Drive上傳文件的ID來下載數(shù)據(jù)集:

          download=drive.CreateFile({'id': '1BZOv422XJvxFUnGh-0xVeSvgFgqVY45q'})
          


          把id的部分替換為你的文件夾的ID。接下來將下載文件夾并解壓。

          download.GetContentFile('train_LbELtWX.zip')
          !unzip train_LbELtWX.zip
          

          每次啟動notebook都需要運行以上代碼。

          • 第2步:導(dǎo)入模型所需的庫。


          import keras
          from keras.models import Sequential
          from keras.layers import Dense, Dropout, Flatten
          from keras.layers import Conv2D, MaxPooling2D
          from keras.utils import to_categorical
          from keras.preprocessing import image
          import numpy as np
          import pandas as pd
          import matplotlib.pyplot as plt
          from sklearn.model_selection import train_test_split
          from keras.utils import to_categorical
          from tqdm import tqdm
          
          • 第3步:接下來是數(shù)據(jù)導(dǎo)入和數(shù)據(jù)預(yù)處理。


          train=pd.read_csv('train.csv')
          

          接下來,我們將讀入訓(xùn)練集,存儲為list,最終轉(zhuǎn)換為numpy array。

          # We have grayscale images, so while loading the images we will keep grayscale=True, if you have RGB images, you should set grayscale as False
          train_image=[]
          for i in tqdm(range(train.shape[0])):
           img=image.load_img('train/'+train['id'][i].astype('str')+'.png', target_size=(28,28,1), grayscale=True)
           img=image.img_to_array(img)
           img=img/255
           train_image.append(img)
          X=np.array(train_image)
          

          這是一個多分類問題(10個類別),需要對標(biāo)簽變量進行one-hot編碼。

          y=train['label'].values
          y=to_categorical(y)
          
          • 第4步:從訓(xùn)練集中劃分驗證集


          X_train, X_test, y_train, y_test=train_test_split(X, y, random_state=42, test_size=0.2)
          
          • 第5步:定義模型結(jié)構(gòu)

          我們將建立一個簡單的結(jié)構(gòu),有2個卷積層,一個隱藏層一個輸出層。

          model=Sequential()
          model.add(Conv2D(32, kernel_size=(3, 3),activation='relu',input_shape=(28,28,1)))
          model.add(Conv2D(64, (3, 3), activation='relu'))
          model.add(MaxPooling2D(pool_size=(2, 2)))
          model.add(Dropout(0.25))
          model.add(Flatten())
          model.add(Dense(128, activation='relu'))
          model.add(Dropout(0.5))
          model.add(Dense(10, activation='softmax'))
          

          接下來編譯模型。

          model.compile(loss='categorical_crossentropy',optimizer='Adam',metrics=['accuracy'])
          
          • 第6步:訓(xùn)練模型

          在這一步,我們將訓(xùn)練訓(xùn)練集的數(shù)據(jù),在驗證集上進行驗證。

          model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test))
          
          • 第7步:預(yù)測!

          我們將首先遵循處理訓(xùn)練數(shù)據(jù)集時執(zhí)行的步驟。加載測試圖像并預(yù)測分類結(jié)果,用model.predict_classes()函數(shù)預(yù)測它們的類。

          download=drive.CreateFile({'id': '1KuyWGFEpj7Fr2DgBsW8qsWvjqEzfoJBY'})
          download.GetContentFile('test_ScVgIM0.zip')
          !unzip test_ScVgIM0.zip
          

          首先導(dǎo)入測試集:

          test=pd.read_csv('test.csv')
          

          接下來,讀于數(shù)據(jù)并存儲測試集:

          test_image=[]
          for i in tqdm(range(test.shape[0])):
           img=image.load_img('test/'+test['id'][i].astype('str')+'.png', target_size=(28,28,1), grayscale=True)
           img=image.img_to_array(img)
           img=img/255
           test_image.append(img)
          test=np.array(test_image)
          # making predictions
          prediction=model.predict_classes(test)
          

          還需要新建一個提交文件夾,用來上傳DataHack平臺。

          download=drive.CreateFile({'id': '1z4QXy7WravpSj-S4Cs9Fk8ZNaX-qh5HF'})
          download.GetContentFile('sample_submission_I5njJSF.csv')
          # creating submission file
          sample=pd.read_csv('sample_submission_I5njJSF.csv')
          sample['label']=prediction
          sample.to_csv('sample_cnn.csv', header=True, index=False)
          

          下載sample_cnn.csv文件并上傳到比賽的頁面,生成你的排名。這提供了一個幫助你開始解決圖像分類問題的基礎(chǔ)方案。

          你可以嘗試調(diào)整超參數(shù)和正則化來提高模型效果。也可以通過閱讀下面這篇文章來理解調(diào)參的細(xì)節(jié)。

          A Comprehensive Tutorial to learn Convolutional Neural Networks from Scratchhttps://www.analyticsvidhya.com/blog/2018/12/guide-convolutional-neural-network-cnn/

          六、開啟一個新的挑戰(zhàn)




          讓我們嘗試在其他的數(shù)據(jù)集進行測試。這部分,我們將解決Identify the Digits上的這個問題。

          Identify the Digits比賽鏈接:https://datahack.analyticsvidhya.com/contest/practice-problem-identify-the-digits/


          在你往下看之前,請嘗試自己來解決這個挑戰(zhàn)。你已經(jīng)收獲了解決問題的工具,只需要使用它們。當(dāng)你遇到困難的時候可以再回來檢查你的過程和結(jié)果。

          在這個挑戰(zhàn)中,我們需要識別給定圖像中的數(shù)字。一共有70000張圖片,49000張訓(xùn)練圖像有標(biāo)簽,剩下的21000張為測試圖片無標(biāo)簽。

          準(zhǔn)備好了嗎?好!打開新的Python3 notebook,運行下面的代碼:

          # Setting up Colab
          !pip install PyDrive
          import os
          from pydrive.auth import GoogleAuth
          from pydrive.drive import GoogleDrive
          from google.colab import auth
          from oauth2client.client import GoogleCredentials
          auth.authenticate_user()
          gauth=GoogleAuth()
          gauth.credentials=GoogleCredentials.get_application_default()
          drive=GoogleDrive(gauth)
          # Replace the id and filename in the below codes
          download=drive.CreateFile({'id': '1ZCzHDAfwgLdQke_GNnHp_4OheRRtNPs-'})
          download.GetContentFile('Train_UQcUa52.zip')
          !unzip Train_UQcUa52.zip
          # Importing libraries
          import keras
          from keras.models import Sequential
          from keras.layers import Dense, Dropout, Flatten
          from keras.layers import Conv2D, MaxPooling2D
          from keras.utils import to_categorical
          from keras.preprocessing import image
          import numpy as np
          import pandas as pd
          import matplotlib.pyplot as plt
          from sklearn.model_selection import train_test_split
          from keras.utils import to_categorical
          from tqdm import tqdm
          train=pd.read_csv('train.csv')
          # Reading the training images
          train_image=[]
          for i in tqdm(range(train.shape[0])):
           img=image.load_img('Images/train/'+train['filename'][i], target_size=(28,28,1), grayscale=True)
           img=image.img_to_array(img)
           img=img/255
           train_image.append(img)
          X=np.array(train_image)
          # Creating the target variable
          y=train['label'].values
          y=to_categorical(y)
          # Creating validation set
          X_train, X_test, y_train, y_test=train_test_split(X, y, random_state=42, test_size=0.2)
          # Define the model structure
          model=Sequential()
          model.add(Conv2D(32, kernel_size=(3, 3),activation='relu',input_shape=(28,28,1)))
          model.add(Conv2D(64, (3, 3), activation='relu'))
          model.add(MaxPooling2D(pool_size=(2, 2)))
          model.add(Dropout(0.25))
          model.add(Flatten())
          model.add(Dense(128, activation='relu'))
          model.add(Dropout(0.5))
          model.add(Dense(10, activation='softmax'))
          # Compile the model
          model.compile(loss='categorical_crossentropy',optimizer='Adam',metrics=['accuracy'])
          # Training the model
          model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test))
          download=drive.CreateFile({'id': '1zHJR6yiI06ao-UAh_LXZQRIOzBO3sNDq'})
          download.GetContentFile('Test_fCbTej3.csv')
          test_file=pd.read_csv('Test_fCbTej3.csv')
          test_image=[]
          for i in tqdm(range(test_file.shape[0])):
           img=image.load_img('Images/test/'+test_file['filename'][i], target_size=(28,28,1), grayscale=True)
           img=image.img_to_array(img)
           img=img/255
           test_image.append(img)
          test=np.array(test_image)
          prediction=model.predict_classes(test)
          download=drive.CreateFile({'id': '1nRz5bD7ReGrdinpdFcHVIEyjqtPGPyHx'})
          download.GetContentFile('Sample_Submission_lxuyBuB.csv')
          sample=pd.read_csv('Sample_Submission_lxuyBuB.csv')
          sample['filename']=test_file['filename']
          sample['label']=prediction
          sample.to_csv('sample.csv', header=True, index=False)
          

          在練習(xí)題頁面上提交這個文件,你會得到一個相當(dāng)不錯的準(zhǔn)確率。這是一個好的開端,但總有改進的余地。繼續(xù)肝,看看你是否可以改進我們的基本模型。

          尾聲

          誰說深度學(xué)習(xí)模型需要數(shù)小時或數(shù)天的訓(xùn)練。我的目的是展示你可以在雙倍快速的時間內(nèi)想出一個相當(dāng)不錯的深度學(xué)習(xí)模式。你應(yīng)該接受類似的挑戰(zhàn),并嘗試從你的終端編碼它們。什么都比不上通過實踐來學(xué)習(xí)!

          頂尖的數(shù)據(jù)科學(xué)家和分析師甚至在黑客比賽開始之前就已經(jīng)準(zhǔn)備好了這些代碼。他們使用這些代碼在深入詳細(xì)分析之前提前提交。先給出基準(zhǔn)解決方案,然后使用不同的技術(shù)改進模型。

          你覺得這篇文章有用嗎?請在下面的評論部分分享你的反饋。

          原文標(biāo)題:

          Build your First Image Classification Model in just 10 Minutes!

          原文鏈接:

          https://www.analyticsvidhya.com/blog/2019/01/build-image-classification-model-10-minutes/

          編輯:黃繼彥

          譯者簡介


          王威力,求職狗,在香港科技大學(xué)學(xué)習(xí)大數(shù)據(jù)科技。感覺數(shù)據(jù)科學(xué)很有難度,也很有意思,還在學(xué)(tu)習(xí)(tou)中。一個人肝不動的文獻,來數(shù)據(jù)派follow大佬一起肝。

          — 完 —

          關(guān)注清華-青島數(shù)據(jù)科學(xué)研究院官方微信公眾平臺“THU數(shù)據(jù)派”及姊妹號“數(shù)據(jù)派THU”獲取更多講座福利及優(yōu)質(zhì)內(nèi)容。

          Yii2數(shù)據(jù)庫讀寫分離使用流程分享】

          大家好,今天我要來分享一下我在使用Yii2框架進行數(shù)據(jù)庫的讀寫分離時的一些經(jīng)驗和心得體會。希望能幫助到大家。

          我們要明確什么是讀寫分離。簡單來說,就是將數(shù)據(jù)庫的讀操作和寫操作分開處理,以提高系統(tǒng)的并發(fā)能力和性能。在Yii2中,我們可以通過配置實現(xiàn)這一功能。

          第一步:安裝Yii2并創(chuàng)建新的項目。如果你還沒有安裝Yii2框架,可以訪問官方網(wǎng)站下載并按照指引進行安裝。創(chuàng)建新項目后,進入項目目錄。

          第二步:配置數(shù)據(jù)庫連接。打開配置文件`config/web.php`,在`components`部分添加以下代碼:

          ```

          這是一款現(xiàn)代化、快速、高效、便捷、靈活、方便擴展的應(yīng)用開發(fā)骨架。基于Yii2高級框架的快速開發(fā)應(yīng)用引擎。它是一個重量級全棲框架,為二次開發(fā)而生!






          Github

          https://github.com/jianyan74/rageframe2


          主站蜘蛛池模板: 无码一区二区三区亚洲人妻| 五十路熟女人妻一区二区| 亚洲高清一区二区三区| 亚洲av高清在线观看一区二区 | 一区视频免费观看| 亚洲视频一区在线| 久久国产高清一区二区三区| 精品无码成人片一区二区98| 亚洲线精品一区二区三区影音先锋| 日本无码一区二区三区白峰美 | 一区二区视频在线观看| 亚洲视频一区二区| 深夜福利一区二区| 一区二区三区在线观看中文字幕| 日韩精品一区二区三区国语自制| 中文字幕日韩精品一区二区三区| 亚洲AV福利天堂一区二区三| 日本一区二区三区在线观看| 中文字幕一区二区三区四区| 中文字幕在线无码一区| 韩日午夜在线资源一区二区| 91久久精一区二区三区大全| 国产亚洲一区二区手机在线观看| 国产在线无码视频一区二区三区| 国产一区二区三区在线影院 | 中文字幕乱码人妻一区二区三区| 中文字幕一区一区三区| 精品人妻无码一区二区三区蜜桃一 | 99久久精品国产免看国产一区| 久久无码精品一区二区三区| 亚洲线精品一区二区三区 | 中文字幕一区二区三区在线观看 | 美女视频一区二区| 中文字幕一区二区视频| 日本在线一区二区| 欧美日韩一区二区成人午夜电影| 爱爱帝国亚洲一区二区三区| 国产精品被窝福利一区| 亚洲福利视频一区| 在线观看精品一区| 嫩B人妻精品一区二区三区|