精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

AI算法工程師的一些含淚經(jīng)驗(yàn)

新聞 人工智能 算法
本文為作者的經(jīng)驗(yàn)之談,總結(jié)了一些關(guān)于訓(xùn)練模型以及部署方面的經(jīng)驗(yàn)。都是一些在實(shí)際工作中會(huì)經(jīng)常遇到的問題,會(huì)給大家?guī)砀訉?shí)在的幫助!

 [[425033]]

前一段時(shí)間一直在優(yōu)化部署模型。這幾天終于來了需求,又要開始重操訓(xùn)練一些新模型了。趁著這次機(jī)會(huì)總結(jié)了下之前的一些訓(xùn)練模型的筆記,可能比較雜,拋磚引玉!當(dāng)然這是不完全統(tǒng)計(jì)的經(jīng)驗(yàn),除了訓(xùn)練部分,還有很多部署的坑沒有寫。

訓(xùn)練模型階段

1.算法工程師50%的時(shí)間是和數(shù)據(jù)打交道,有時(shí)候拷貝數(shù)據(jù)(分別從多個(gè)文件夾拷貝到某一文件夾);有時(shí)候篩選數(shù)據(jù)(過濾掉一些質(zhì)量不好的數(shù)據(jù));有時(shí)候把數(shù)據(jù)換個(gè)名字、加個(gè)前綴(為了后續(xù)訓(xùn)練的時(shí)候區(qū)分?jǐn)?shù)據(jù)的特性,比如多尺度、多種圖像增強(qiáng)策略)等等,這些工作可能一個(gè)月要重復(fù)n多次, 因此最好總結(jié)起來;可以用Python或者shell腳本來處理,或者用jupyter notebook存自己常用的文件處理代碼。

2.如果你不清楚拿到數(shù)據(jù)的來源和可靠度,可以先用 find ./ -size -1k -exec rm {} \ 等命令簡單過濾一下,剛才這個(gè)命令是掃描1k(或者其他值)以下的損壞圖像并刪除掉,當(dāng)然也可以設(shè)置其他的參數(shù)。很多時(shí)候給你的圖不一定都是正常的圖,最好提前篩一遍, 要不然后續(xù)處理很麻煩 。

3.并不所有的數(shù)據(jù)都已經(jīng)有標(biāo)注信息,如果收集了一批數(shù)據(jù)要拿去標(biāo)注,正好公司也有標(biāo)注人力,可以嘗試將這批數(shù)據(jù)打上預(yù)標(biāo)框讓他們再去調(diào)整或者補(bǔ)充標(biāo)框,這樣效率更高些。至于預(yù)標(biāo)框怎么打,可以先讓模型訓(xùn)練一小批數(shù)據(jù),訓(xùn)練個(gè)召回率高的小模型,然后預(yù)測打框就可以,也可以用一些老模型打框;不過有一個(gè)現(xiàn)象比較神奇,標(biāo)注人員在標(biāo)注的時(shí)候,對(duì)于有預(yù)標(biāo)框的數(shù)據(jù),標(biāo)注的質(zhì)量反而變差了,雖然速度上來了,這是因?yàn)榇蟛糠謽?biāo)注人員不想調(diào)整,這時(shí)候需要你好好監(jiān)督一下,要不然后續(xù)模型精度上不去大概率就是數(shù)據(jù)的問題。

4.有時(shí)候模型的指標(biāo)不僅僅看準(zhǔn)招,當(dāng)模型給別人提供服務(wù)的時(shí)候,要看PM那邊怎么看待這個(gè)模型輸出結(jié)果在實(shí)際場景中的使用效果;對(duì)于檢測模型最終的輸出分?jǐn)?shù),最終給到使用方的框一般是根據(jù)你取得分?jǐn)?shù)閾值來設(shè),設(shè)的低一點(diǎn),那么框就多一點(diǎn)(召回率高),設(shè)的高一點(diǎn),那么框就少一點(diǎn)(準(zhǔn)確度高);不同方式不同場景設(shè)置不同的閾值有不同的效果,說白了模型效果好壞很大一部分依賴于場景;這個(gè)情況在實(shí)際項(xiàng)目中其實(shí)挺常見的,說白了loss也好, accuracy也好,都是很片面且脆弱的評(píng)估指標(biāo)。與模型結(jié)構(gòu)以及評(píng)測的數(shù)據(jù)分布都有很大關(guān)系,具體如何選擇模型應(yīng)該與應(yīng)用場景強(qiáng)相關(guān)。

5. 當(dāng)模型遇到badcase的時(shí)候,簡單粗暴地增加模型的容量效果可能并不好 ;因?yàn)檫@個(gè)badcase大概率和場景強(qiáng)相關(guān),這種情況下最好就是收集badcase,可能會(huì)有使用你模型的人給你提供badcase,但這種效率比較低,看提供者的心情or緊急程度; 你可以直接撈一大批模型使用場景的query然后使用當(dāng)前模型做檢測,收集相應(yīng)類別置信度比較低的case,然后挑選出來;

6. 測試集很重要,測試集一般不是從訓(xùn)練集中切分出來的,從訓(xùn)練集中切分出來的是驗(yàn)證集; 驗(yàn)證集一般用于判斷這個(gè)模型有沒有過擬合、有沒有訓(xùn)練走火入魔啦,如果想用驗(yàn)證集來判斷模型好壞的話,往往并不能代表模型實(shí)際的水平;最好是有測試集,而且測試集是和模型采集批次不同訓(xùn)練模型的時(shí)候比較接近實(shí)際水平的評(píng)價(jià)標(biāo)準(zhǔn);如果沒有測試集也可以看訓(xùn)練集的loss大概確定一下,一般來說只要不是demo級(jí)別的場景,模型不會(huì)輕易過擬合,我們的訓(xùn)練集往往有很重的圖像增強(qiáng)策略,每一個(gè)epoch可能圖像分布都不一樣,這時(shí)候其實(shí)也可以選取模型 model_last 。

7. 再強(qiáng)調(diào)下,loss和準(zhǔn)確率不是完全正比的關(guān)系,loss波動(dòng)很正常,loss低了不一定代表模型的mAP高; 相反如果loss變高,模型的精度也不一定差,有可能是loss設(shè)的不夠好導(dǎo)致部分上升占主導(dǎo),掩蓋了另一部分正常的下降也很正常;相關(guān)討論: https://github.com/thegregyang/LossUpAccUp 和 https://www.zhihu.com/question/318399418

8.計(jì)算檢測模型的mAP,實(shí)際中在計(jì)算的時(shí)候是不考慮目標(biāo)框分?jǐn)?shù)閾值的,也就是說我們會(huì)將所有分?jǐn)?shù)大于0的檢測框送去計(jì)算mAP;但這里要注意,計(jì)算mAP是有max_num也就是最大檢測出目標(biāo)個(gè)數(shù),根據(jù)任務(wù)需求可能是100、可能是500也可能是5000等等,當(dāng)有這個(gè)限制的時(shí)候,此時(shí)框就需要根據(jù)分?jǐn)?shù)來排序,取前100、前500或者前5000的框去計(jì)算;最后,如果我們需要可視化結(jié)果在圖上畫框的話,這時(shí)候是可以卡閾值的,比如大于0.2分?jǐn)?shù)閾值的要,要不然最終畫出來的圖會(huì)有很多碎框; 最后的最后,別忘了NMS!

9.測試轉(zhuǎn)換后的模型是否正確,一定要保證輸入圖像的一致; 這里的一致指的是輸入圖像的數(shù)值必須一模一樣,dif為0才行 ;一般來說我們輸入的模型的圖像范圍是0-1,通道數(shù)一般是彩色也就是RGB,不過需要注意這個(gè)彩色是否是假彩色(有時(shí)候?yàn)榱藗鬏敼?jié)省資源會(huì)傳灰度圖再實(shí)際推理的時(shí)候變成彩色圖,對(duì)于某種場景來說,假彩色和真彩色的精度相差不大),輸入尺寸也要保持一致,是否需要padding(padding成0或者127或者255,這幾種padding方式隊(duì)對(duì)結(jié)果影響很大)、需要補(bǔ)成32的倍數(shù)、或者需要最大邊最小邊限制,一定要保持一致;對(duì)于類別,這樣測試模型才能夠保證準(zhǔn)確性。

10.對(duì)于模型來說,如果之后考慮上線。上線的方式很多種: 可以pytorch+flask直接docker上線,也可以嘗試libtorch上線,也可以TensorRT上線,當(dāng)然也可以通過自研框架上線…等等等等。 如果這個(gè)模型追求精度,而且是線下某一時(shí)間段跑,并不是實(shí)時(shí),可以嘗試flask+docker的服務(wù);如果這個(gè)模型的實(shí)時(shí)性很高,在設(shè)計(jì)模型的時(shí)候就要考慮之后的上線,那就需要考慮模型優(yōu)化以及對(duì)應(yīng)的服務(wù)器推理框架了可以嘗試TensorRT+triton server;

部署方面

1.再次強(qiáng)調(diào)一下訓(xùn)練集、驗(yàn)證集和測試集在訓(xùn)練模型中實(shí)際的角色:訓(xùn)練集相當(dāng)于老師布置的作業(yè),驗(yàn)證集相當(dāng)于模擬試卷,測試集相當(dāng)于考試試卷,做完家庭作業(yè)直接上考卷估計(jì)大概率考不好,但是做完作業(yè)之后,再做一做模擬卷就知道大體考哪些、重點(diǎn)在哪里,然后調(diào)整一下參數(shù)啥的,最后真正考試的時(shí)候就能考好; 訓(xùn)練集中拆分出一部分可以做驗(yàn)證集、但是測試集千萬不要再取自訓(xùn)練集,因?yàn)槲覀円WC測試集的”未知“性; 驗(yàn)證集雖然不會(huì)直接參與訓(xùn)練,但我們依然會(huì)根據(jù)驗(yàn)證集的表現(xiàn)情況去調(diào)整模型的一些超參數(shù),其實(shí)這里也算是”學(xué)習(xí)了“驗(yàn)證集的知識(shí);千萬不要把測試集搞成和驗(yàn)證集一樣,”以各種形式“參與訓(xùn)練,要不然就是信息泄露。我們使用測試集作為泛化誤差的近似,所以不到最后是不能將測試集的信息泄露出去的。

2. 數(shù)據(jù)好壞直接影響模型好壞; 在數(shù)據(jù)量初步階段的情況下,模型精度一開始可以通過改模型結(jié)構(gòu)來提升,加點(diǎn)注意力、加點(diǎn)DCN、增強(qiáng)點(diǎn)backbone、或者用點(diǎn)其他巧妙的結(jié)構(gòu)可以增加最終的精度。但是在后期想要提升模型泛化能力就需要增加訓(xùn)練數(shù)據(jù)了,為什么呢?因?yàn)榇藭r(shí)你的badcase大部分訓(xùn)練集中是沒有的,模型沒有見過badcase肯定學(xué)不會(huì)的,此時(shí)需要針對(duì)性地補(bǔ)充badcase;那假如badcase不好補(bǔ)充呢?此時(shí)圖像生成就很重要了,如何生成badcase場景的訓(xùn)練集圖,生成數(shù)據(jù)的質(zhì)量好壞直接影響到模型的最終效果;另外圖像增強(qiáng)也非常非常重要,我們要做的就是盡可能讓數(shù)據(jù)在圖像增強(qiáng)后的分布接近測試集的分布,說白了就是通過圖像生成和圖像增強(qiáng)兩大技術(shù)模擬實(shí)際中的場景。

3.當(dāng)有兩個(gè)數(shù)據(jù)集A和B,A有類別a和b,但只有a的GT框;B也有類別a和b,但只有b的GT框,顯然這個(gè)數(shù)據(jù)集不能直接拿來用(沒有GT框的a和b在訓(xùn)練時(shí)會(huì)被當(dāng)成背景),而你的模型要訓(xùn)練成一個(gè)可以同時(shí)檢測a和b框,怎么辦?四種方式:1、訓(xùn)練分別檢測a和檢測b的模型,然后分別在對(duì)方數(shù)據(jù)集上進(jìn)行預(yù)測幫忙打標(biāo)簽,控制好分?jǐn)?shù)閾值,制作好新的數(shù)據(jù)集后訓(xùn)練模型;2、使用蒸餾的方式,同樣訓(xùn)練分別檢測a和檢測b的模型,然后利用這兩個(gè)模型的soft-label去訓(xùn)練新模型;3、修改一下loss,一般來說,我們的loss函數(shù)也會(huì)對(duì)負(fù)樣本(也就是背景)進(jìn)行反向傳播,也是有損失回傳的,這里我們修改為,如果當(dāng)前圖片沒有類別a的GT框,我們關(guān)于a的損失直接置為0,讓這個(gè)類別通道不進(jìn)行反向傳播,這樣就可以對(duì)沒有a框的圖片進(jìn)行訓(xùn)練,模型不會(huì)將a當(dāng)成背景,因?yàn)槟P?ldquo;看都不看a一眼,也不知道a是什么東東”,大家可以想一下最終訓(xùn)練后的模型是什么樣的呢?4、在模型的最后部分將head頭分開,一個(gè)負(fù)責(zé)檢測a一個(gè)負(fù)責(zé)檢測b,此時(shí)模型的backbone就變成了特征提取器。

4.工作中,有很多場景,你需要通過舊模型去給需要訓(xùn)練的新模型篩選數(shù)據(jù),比如通過已經(jīng)訓(xùn)練好的檢測模型A去挑選有類別a的圖給新模型去訓(xùn)練,這時(shí)就需要搭建一個(gè)小服務(wù)去實(shí)現(xiàn)這個(gè)過程;當(dāng)然你也可以打開你之前的舊模型python庫代碼,然后回憶一番去找之前的demo.py和對(duì)應(yīng)的一些參數(shù);顯然這樣是比較麻煩的, 最好是將之前模型總結(jié)起來隨時(shí)搭個(gè)小服務(wù)供內(nèi)部使用 ,因?yàn)閯e人也可能需要使用你的模型去挑數(shù)據(jù),小服務(wù)怎么搭建呢? 直接 使用flask+Pytorch就行, 不過這個(gè)qps請(qǐng)求大的時(shí)候會(huì)假死,不過畢竟只是篩選數(shù)據(jù)么,可以適當(dāng)降低一些qps,離線請(qǐng)求一晚上搞定。

5.目前比較好使的目標(biāo)檢測框架,無非還是那些經(jīng)典的、用的人多的、資源多的、部署方便的。畢竟咱們訓(xùn)練模型最終的目的還是上線嘛;單階段有SSD、yolov2-v5系列、FCOS、CenterNet系列,Cornernet等等單階段系列,雙階段的faster-rcnn已經(jīng)被實(shí)現(xiàn)了好多次了,還有mask-rcnn,也被很多人實(shí)現(xiàn)過了;以及最新的DETR使用transformer結(jié)構(gòu)的檢測框架,上述這些都可以使用TensorRT部署;其實(shí)用什么無非也就是看速度和精度怎么樣,是否支持動(dòng)態(tài)尺寸;不過跑分最好的不一定在你的數(shù)據(jù)上好,千萬千萬要根據(jù)數(shù)據(jù)集特點(diǎn)選模型,對(duì)于自己的數(shù)據(jù)集可能效果又不一樣,這個(gè)需要自己拉下來跑一下;相關(guān)模型TensorRT部署資源:https://github.com/grimoire/mmdetection-to-tensorrt 和 https://github.com/wang-xinyu/tensorrtx

6.再扯一句,其實(shí)很多模型最終想要部署,首要難點(diǎn)在于這個(gè)模型是否已經(jīng)有人搞過;如果有人已經(jīng)搞過并且開源,那直接復(fù)制粘貼修改一下就可以,有坑別人已經(jīng)幫你踩了;如果沒有開源代碼可借鑒,那么就需要自個(gè)兒來了!首先看這個(gè)模型的backbone是否有特殊的op(比如dcn、比如senet,當(dāng)然這兩個(gè)已經(jīng)支持了),結(jié)構(gòu)是否特殊(不僅僅是普通的卷積組合,有各種reshape、roll、window-shift等特殊操作)、后處理是否復(fù)雜?我轉(zhuǎn)換過最復(fù)雜的模型,backbone有自定義op,需要自己實(shí)現(xiàn)、另外,這個(gè)模型有相當(dāng)多的后處理,后處理還有一部分會(huì)參與訓(xùn)練,也就是有學(xué)習(xí)到的參數(shù),但是這個(gè)后處理有些操作是無法轉(zhuǎn)換為trt或者其他框架的(部分操作不支持),因此只能把這個(gè)模型拆成兩部分,一部分用TensorRT實(shí)現(xiàn)另一部分使用libtorc實(shí)現(xiàn);其實(shí)大部分的模型都可以部署,只不過難度不一樣,只要肯多想,法子總是有的。

7.轉(zhuǎn)換后的模型,不論是從Pytorch->onnx還是onnx->TensorRT還是tensorflow->TFLITE,轉(zhuǎn)換前和轉(zhuǎn)換后的模型,雖然參數(shù)一樣結(jié)構(gòu)一樣,但同樣的輸入,輸出不可能是完全一樣的。當(dāng)然如果你輸出精度卡到小數(shù)點(diǎn)后4位那應(yīng)該是一樣的,但是小數(shù)點(diǎn)后5、6、7位那是不可能完全一模一樣的,轉(zhuǎn)換本身不可能是無損的;舉個(gè)例子,一個(gè)檢測模型A使用Pytorch訓(xùn)練,然后還有一個(gè)轉(zhuǎn)換為TensorRT的模型A`,這倆是同一個(gè)模型,而且轉(zhuǎn)換后的TensorRT也是FP32精度,你可以輸入一個(gè)隨機(jī)數(shù),發(fā)現(xiàn)這兩個(gè)模型的輸出對(duì)比,絕對(duì)誤差和相對(duì)誤差在1e-4的基準(zhǔn)下為0,但是你拿這兩個(gè)模型去檢測的時(shí)候,保持所有的一致(輸入、后處理等),最終產(chǎn)生的檢測框,分?jǐn)?shù)高的基本完全一致,分?jǐn)?shù)低的(比如小于0.1或者0.2)會(huì)有一些不一樣的地方,而且處于邊緣的hardcase也會(huì)不一致;當(dāng)然這種情況一般來說影響不大,但也需要留一個(gè)心眼。

8. 模型的理論flops和實(shí)際模型執(zhí)行的速度關(guān)系不大,要看具體執(zhí)行的平臺(tái),不要一味的以為flops低的模型速度就快。 很多開源的檢測庫都是直接在Pytorch上運(yùn)行進(jìn)行比較,雖然都是GPU,但這個(gè)其實(shí)是沒有任何優(yōu)化的,因?yàn)镻ytorch是動(dòng)態(tài)圖;一般的模型部署都會(huì)涉及到大大小小的優(yōu)化,比如算子融合和計(jì)算圖優(yōu)化,最簡單的例子就是CONV+BN的優(yōu)化,很多基于Pytorch的模型速度比較是忽略這一點(diǎn)的,我們比較兩個(gè)模型的速度,最好還是在實(shí)際要部署的框架和平臺(tái)去比較;不過如果這個(gè)模型參數(shù)比較多的話,那模型大概率快不了,理由很簡單,大部分的參數(shù)一般都是卷積核參數(shù)、全連接參數(shù),這些參數(shù)多了自然代表這些op操作多,自然會(huì)慢。

9.同一個(gè)TensorRT模型(或者Pytorch、或者其他利用GPU跑的模型)在同一個(gè)型號(hào)卡上跑, 可能會(huì)因?yàn)閏uda、cudnn、驅(qū)動(dòng)等版本不同、或者顯卡的硬件功耗墻設(shè)置(P0、P1、P2)不同、或者所處系統(tǒng)版本/內(nèi)核版本不同而導(dǎo)致速度方面有差異, 這種差異有大有小,我見過最大的,有70%的速度差異,所以不知道為什么模型速度不一致的情況下,不妨考慮考慮這些原因。

10.轉(zhuǎn)換好要部署的模型后,一般需要測試這個(gè)模型的速度以及吞吐量;速度可以直接for循環(huán)推理跑取平均值,不過實(shí)際的吞吐量的話要模擬數(shù)據(jù)傳輸、模型執(zhí)行以及排隊(duì)的時(shí)間;一般來說模型的吞吐量可以簡單地通過1000/xx計(jì)算,xx為模型執(zhí)行的毫秒,不過有些任務(wù)假如輸入圖像特別大,那么這樣算是不行的, 我們需要考慮實(shí)際圖像傳輸?shù)臅r(shí)間,是否本機(jī)、是否跨網(wǎng)段等等。

責(zé)任編輯:張燕妮 來源: 極市平臺(tái)
相關(guān)推薦

2022-04-14 10:22:44

故事卡業(yè)務(wù)

2015-12-04 10:04:53

2010-05-10 18:18:46

Unix系統(tǒng)

2013-08-20 13:40:04

獨(dú)立游戲開發(fā)者移動(dòng)應(yīng)用PR經(jīng)驗(yàn)移動(dòng)應(yīng)用營銷推廣

2014-07-31 09:33:05

開發(fā)者獨(dú)立開發(fā)者

2023-10-31 07:39:36

2012-06-15 11:02:31

架構(gòu)師

2018-01-03 10:32:21

面試經(jīng)驗(yàn)套路

2025-05-09 09:10:00

2018-01-19 10:23:02

前端Web工作經(jīng)驗(yàn)

2010-09-17 10:51:24

JAVA工程師

2017-11-09 14:12:44

大數(shù)據(jù)軟件工程師算法工程師

2009-02-19 10:41:42

網(wǎng)絡(luò)工程師認(rèn)證考試

2023-08-01 23:08:07

2019-04-19 12:46:18

面試丁校招簡歷

2022-07-18 07:58:46

Spring工具工具類

2010-06-12 10:11:13

網(wǎng)絡(luò)工程師CCIE

2017-05-05 10:45:45

大數(shù)據(jù)動(dòng)向

2010-11-22 12:28:28

2024-09-20 11:30:14

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产成人在线电影| 成人6969www免费视频| 午夜在线成人av| 久久精品国产一区二区三区日韩| 亚洲大片免费观看| 亚洲色图88| 日韩大陆欧美高清视频区| xxww在线观看| av影院在线免费观看| 中文幕一区二区三区久久蜜桃| 成人做爰www免费看视频网站| 日本三级中文字幕| 国产精品久久久久无码av| 亚洲成人av片在线观看| 日本 片 成人 在线| heyzo在线播放| 国产精品国产自产拍高清av| 国产传媒欧美日韩| 91精品国自产| 亚洲一区免费| 久久99久久亚洲国产| 亚洲第一综合网| 欧美激情久久久久久久久久久| 69久久夜色精品国产69蝌蚪网| 欧美日韩在线一| а√天堂8资源在线官网| 国产欧美精品一区| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 国产网址在线观看| 天天综合网91| 一道本无吗dⅴd在线播放一区 | 欧美成人激情视频| 中文字幕欧美激情极品| 欧洲亚洲成人| 精品免费国产二区三区| 日本美女视频一区| 成人精品三级| 色香色香欲天天天影视综合网| 精品少妇人欧美激情在线观看| 欧美日韩在线看片| 国产精品视频一区二区三区不卡| 鲁鲁视频www一区二区| 免费a视频在线观看| 国产一级精品在线| 51国偷自产一区二区三区| 91久久国语露脸精品国产高跟| 日韩国产欧美一区二区三区| 亚洲精选视频在线| 亚洲高清在线观看一区| 精品影院一区| 久久色视频免费观看| 久久久久久久久一区| 午夜视频福利在线| 91丝袜美腿高跟国产极品老师 | 色综合综合网| 亚洲天堂2020| 中文字幕欧美激情极品| 成人综合久久| xxxxx91麻豆| 久久久久久久久久网站| 国产精品xvideos88| 久久久天堂国产精品女人| 国产精品成人久久| 国产精品乱看| 国产精品96久久久久久| 国产精品sm调教免费专区| 美女视频黄 久久| 国产主播欧美精品| 999久久久久久| 丁香婷婷综合激情五月色| 国内精品二区| 黄色片在线播放| 国产精品久99| 男人天堂a在线| 日韩欧美精品一区二区三区| 色综合 综合色| 九九热在线免费| 国产精品日本一区二区不卡视频| 欧美成人vps| 91久久免费视频| 精品一二三区| 麻豆国产精品va在线观看不卡| 久久久美女视频| 噜噜噜躁狠狠躁狠狠精品视频 | 中文字幕一区二区人妻| 精品在线播放午夜| 国产精品乱码一区二区三区| 精品亚洲综合| 一区二区在线观看不卡| 大肉大捧一进一出好爽视频| 久久久精品一区二区毛片免费看| 日韩欧美亚洲一区二区| www.自拍偷拍| 亚洲91视频| 欧美最顶级的aⅴ艳星| 亚洲一级av毛片| 成人丝袜高跟foot| 色一情一乱一伦一区二区三区 | 国产精品高清在线| 精品二区在线观看| 国产午夜精品在线观看| 丰满人妻一区二区三区53号| 牛牛精品一区二区| 91精品国产高清一区二区三区蜜臀| 亚洲 欧美 日韩在线| 久久国产亚洲精品| 欧美制服第一页| 精品久久久久久亚洲综合网站| ww亚洲ww在线观看国产| 成人午夜免费剧场| 欧美xxxx做受欧美护士| 亚洲成人久久一区| 一区二区三区影视| 日韩精品福利网| 国产一区二区久久久| 久久黄色美女电影| 日本韩国一区二区三区视频| 第一页在线视频| 国产精品99一区二区三| 日韩av成人在线观看| 亚洲高清精品视频| 国产精品护士白丝一区av| 成人三级视频在线播放 | 欧美r级电影在线观看| 91激情视频在线观看| 日韩一级精品| 成人av蜜桃| 91麻豆免费在线视频| 欧美三级视频在线观看| 丰满少妇在线观看资源站| 伊人久久大香线蕉av超碰演员| 91精品久久久久久久| 国产在线观看免费| 色婷婷av一区二区三区之一色屋| 中文字幕 日本| 伊人成年综合电影网| 91香蕉视频在线下载| 国内外激情在线| 欧美精选在线播放| 国产日韩欧美在线观看视频| 精品影院一区二区久久久| 亚洲精美视频| 久久影视精品| 中文字幕日韩综合av| 日韩精品在线一区二区三区| 国产亚洲精品资源在线26u| 午夜精品久久久久久久无码| 欧美电影免费网站| 91国产在线精品| 三级黄视频在线观看| 懂色aⅴ精品一区二区三区蜜月| 中文字幕乱码一区| 尤物在线精品| 久久国产精品久久精品国产| 色多多在线观看| 日韩激情片免费| 区一区二在线观看| 中文字幕第一区第二区| 九九热免费在线观看| 欧美国产专区| 国产久一道中文一区| 天堂中文在线播放| 亚洲精品国产精品国自产在线| 日韩精品――中文字幕| 92国产精品观看| 别急慢慢来1978如如2| 久久激情电影| 99re6在线| 三级在线看中文字幕完整版| 一区二区三区黄色| 国产精品自拍电影| 亚洲高清免费在线| 欧美做受高潮6| 国产一区二三区| 美脚丝袜脚交一区二区| 台湾色综合娱乐中文网| 国产精品丝袜久久久久久高清| 五月天婷婷在线视频| 精品日韩av一区二区| 69亚洲精品久久久蜜桃小说| 亚洲视频免费看| 一级国产黄色片| 久久99精品视频| aa视频在线播放| 成人嫩草影院| 国产精品自产拍在线观| 丰乳肥臀在线| 在线视频欧美日韩精品| 亚洲AV午夜精品| 欧美伊人久久久久久午夜久久久久| 日韩欧美123区| 久久久噜噜噜久噜久久综合| 亚洲无在线观看| 久久国产欧美| 成年人三级视频| 久久99国内| 99re资源| 国内欧美日韩| 欧美在线视频免费| 天堂8中文在线| 伊人激情综合网| 四虎永久在线观看| 欧美一级高清大全免费观看| 无码人妻精品一区二区| 夜夜嗨av一区二区三区四季av| 国产ts在线播放| 成人精品gif动图一区| 亚洲欧美自拍另类日韩| 一区二区高清| av在线播放天堂| 久久精品国内一区二区三区水蜜桃 | 波多野结衣不卡| 亚洲成人av一区二区三区| 中文乱码字幕高清一区二区| 久久久五月婷婷| 白嫩情侣偷拍呻吟刺激| 国产另类ts人妖一区二区| 国产视频一区二区视频| 亚洲另类黄色| 国产美女永久无遮挡| 亚洲成人国产| 亚洲欧洲一区二区在线观看| 一区二区小说| 极品日韩久久| 77成人影视| 亚洲va欧美va在线观看| 国产精品扒开腿做爽爽爽视频软件| 久热精品视频在线观看| 久久久久久女乱国产| 精品视频久久久| 天堂av资源网| 亚洲国产精品专区久久| 二区三区在线视频| 精品区一区二区| 性一交一乱一透一a级| 日韩欧美一级在线播放| 国产成人精品免费看视频| 3d动漫精品啪啪一区二区竹菊 | 日韩免费视频一区| 国产黄色片网站| 日韩精品一区二区三区老鸭窝| 国产探花精品一区二区| 欧美一区二区不卡视频| 国产女同91疯狂高潮互磨| 4438成人网| www.爱爱.com| 精品国产乱码久久久久久闺蜜| 亚洲精品第五页| 亚洲第一视频网站| 婷婷亚洲一区二区三区| 亚洲精品视频二区| 狠狠v欧美ⅴ日韩v亚洲v大胸 | a免费在线观看| 九九视频这里只有精品 | 国产精品久久久久久久天堂| 日韩一级二级| 国产日韩欧美成人| 日韩中文在线| 狠狠色伊人亚洲综合网站色| 亚洲免费福利一区| 五月天久久综合网| 国产精品久久久久蜜臀| 成人在线视频一区二区三区| 在线播放一区| 黑人糟蹋人妻hd中文字幕| 久久久久欧美精品| 成人综合久久网| 从欧美一区二区三区| 国产偷人妻精品一区| 亚洲国产高清在线| 人妻少妇精品一区二区三区| 亚洲五码中文字幕| 国产乱码77777777| 91精选在线观看| 天天操天天射天天舔| 在线播放国产精品| 亚洲无线看天堂av| 情事1991在线| 青娱乐极品盛宴一区二区| 亚洲一区二区久久久久久久| 国产毛片久久久| 亚洲第一导航| 91久久综合| 尤物国产在线观看| 成人美女视频在线看| 国产极品视频在线观看| 亚洲国产精品欧美一二99| 看黄色一级大片| 精品国产一区二区三区久久影院 | 国语自产偷拍精品视频偷 | 欧美中文一区二区三区| 国产三级按摩推拿按摩| 精品香蕉在线观看视频一| 黄色的网站在线观看| 欧美一级黄色网| 精品一区二区三区中文字幕| 久久精品国产综合精品| 91精品久久久久久久久久不卡| 91传媒久久久| 国产99久久久国产精品| 成人一级片免费看| 欧美日在线观看| 亚洲va欧美va| 日韩亚洲欧美中文在线| 神马久久午夜| 999视频在线免费观看| 日韩精品欧美| 能在线观看的av| 风流少妇一区二区| 国产精品1区2区3区4区| 欧美日韩黄色大片| 亚洲a视频在线观看| 久久精品一偷一偷国产| 久久久人成影片一区二区三区在哪下载 | 欧洲黄色一级视频| 国产精品系列在线播放| 色www亚洲国产阿娇yao| 色婷婷综合久色| 人妻va精品va欧美va| 欧美麻豆久久久久久中文| 少妇高潮一区二区三区99| 日韩中文一区二区三区| 亚洲欧美日本日韩| xxxxxx黄色| 亚洲国产成人精品视频| 午夜精品久久久久久久91蜜桃| 色综久久综合桃花网| 日韩中文在线播放| 日本精品国语自产拍在线观看| 亚洲久久视频| 亚洲久久久久久| 精品久久久久久久久久久久久 | 国产一区二区三区视频在线观看| 国产va在线视频| 狠狠色综合网站久久久久久久| 激情丁香综合| 国产精品成人无码专区| 亚洲国产一区二区三区| 亚洲国产精品久久久久爰性色 | 精品小视频在线观看| 欧美不卡视频一区| 性网站在线观看| wwwxx欧美| 欧美日本不卡高清| 91porn在线| 亚洲妇女屁股眼交7| 香港一级纯黄大片| 日本成人激情视频| 精品不卡一区| 超碰在线公开97| 国产精品久久毛片av大全日韩| 一级片视频网站| 麻豆乱码国产一区二区三区| 免费观看性欧美大片无片| 可以在线看黄的网站| 国产99久久久久久免费看农村| 麻豆视频在线观看| 亚洲国产成人久久综合| 亚洲国产福利| 亚洲福利av| 国产成人综合亚洲91猫咪| 中文字幕在线观看免费视频| 国产视频精品免费播放| 成人不卡视频| 青草全福视在线| 99re成人精品视频| 中文字幕 人妻熟女| 久久在线视频在线| 波多野结衣一区二区三区免费视频| 欧美视频在线免费播放| 久久久99久久| 国产精品视频在线观看免费 | 亚洲天堂网在线观看| 国产a亚洲精品| 欧美美女黄色网| 97se亚洲国产综合在线| 一区二区日韩视频| 欧美精品久久久久a| 精品国产91乱码一区二区三区四区| av亚洲天堂网| 五月天视频一区| 日韩伦理在线电影| 国产日韩欧美一区二区三区四区| 久久三级福利| 91九色丨porny丨极品女神| 亚洲精品成人久久| 四虎精品在线观看| 国产淫片免费看| 日韩美女视频19| 日本大片在线观看| 51精品国产人成在线观看| 三级影片在线观看欧美日韩一区二区| 欧美做爰啪啪xxxⅹ性| 日韩精品在线观看网站| 97久久中文字幕| 少妇高清精品毛片在线视频| 亚洲乱码国产乱码精品精的特点| 青青草免费观看免费视频在线| 91牛牛免费视频| 老司机久久99久久精品播放免费|