久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

PyTorch混淆矩陣?yán)L制全指南:從原理到出版級可視化

PyTorch混淆矩陣?yán)L制全指南:從原理到出版級可視化 從項(xiàng)目標(biāo)題來看這是一篇“技術(shù)復(fù)現(xiàn)型”的分享。只要?jiǎng)舆^PyTorch做圖像分類或文本分類的人應(yīng)該都經(jīng)歷過這種場景訓(xùn)練完模型打印出準(zhǔn)確率看到一個(gè)90%甚至95%的數(shù)字心里挺高興結(jié)果模型一上線發(fā)現(xiàn)某些類別幾乎全錯(cuò)。準(zhǔn)確率這個(gè)指標(biāo)太“宏觀”了它會掩蓋很多細(xì)節(jié)。所以我才堅(jiān)持每次跑完分類任務(wù)都要畫一張混淆矩陣出來看看。這篇文章就把我平時(shí)在PyTorch項(xiàng)目里畫混淆矩陣和做可視化的一套完整流程整理出來從最底層的矩陣計(jì)數(shù)原理到最終的出版級圖像導(dǎo)出盡量覆蓋到每一個(gè)坑。1. 為什么要畫混淆矩陣從準(zhǔn)確率說不清的問題說起1.1 準(zhǔn)確率看著挺高模型卻可能在“裝模作樣”先講個(gè)我自己踩過的案例。當(dāng)時(shí)做一個(gè)六分類的紋理識別任務(wù)訓(xùn)練集里樣本分布很不均衡其中一類占了總樣本的將近一半。訓(xùn)練結(jié)束后驗(yàn)證集準(zhǔn)確率到了92%看起來一切正常。結(jié)果把測試集結(jié)果按類別拆開一統(tǒng)計(jì)那個(gè)占了50%的類別準(zhǔn)確率接近99%而另外幾個(gè)稀少類別準(zhǔn)確率只有60%到70%。如果只看準(zhǔn)確率根本發(fā)現(xiàn)不了這個(gè)問題。混淆矩陣的價(jià)值就在這它不給你一個(gè)籠統(tǒng)的“好”或“壞”而是把“哪一類被認(rèn)對了、哪一類被認(rèn)成了哪一類”全部攤開。有些讀者可能會問精確率、召回率、F1值不是也能看類別的單獨(dú)表現(xiàn)嗎確實(shí)能。但混淆矩陣是最原始的“計(jì)數(shù)表”精確率和召回率其實(shí)是基于這個(gè)計(jì)數(shù)表二次計(jì)算出來的。有了混淆矩陣你可以自己計(jì)算任何想要的指標(biāo)還可以定位到具體的“錯(cuò)誤對”比如A類被錯(cuò)認(rèn)成B類到底是A類的特征太接近B類還是數(shù)據(jù)標(biāo)注本身就有問題。這是單獨(dú)一個(gè)F1值做不到的。1.2 混淆矩陣到底在告訴你什么對于一個(gè)N分類任務(wù)混淆矩陣是一個(gè)N乘N的方陣。行通常代表真實(shí)標(biāo)簽列代表預(yù)測標(biāo)簽。矩陣的第i行第j列的值表示“真實(shí)類別是i卻被模型預(yù)測成類別j”的樣本個(gè)數(shù)。對角線上的值越大說明這一類被正確識別的比例越高。對角線外的值就是錯(cuò)誤分布它們會清晰地告訴你錯(cuò)誤主要發(fā)生在哪些類別之間。舉個(gè)例子三分類問題假設(shè)有150個(gè)測試樣本每個(gè)類別各50個(gè)。如果矩陣長這樣真實(shí)\預(yù)測類別0類別1類別2類別04811類別15405類別22840對角線加起來是128所以準(zhǔn)確率是85.3%。但這張矩陣透露的信息更多類別0表現(xiàn)最好只有兩個(gè)樣本出錯(cuò)類別1有5個(gè)樣本被認(rèn)成類別05個(gè)被認(rèn)成類別2類別2則有8個(gè)樣本被認(rèn)成類別1。這告訴你類別1和類別2之間的混淆比較嚴(yán)重可能是特征相似也可能是訓(xùn)練樣本不足。1.3 什么時(shí)候必須畫混淆矩陣我個(gè)人的習(xí)慣是只要是分類任務(wù)無論是圖像分類、文本分類還是音頻分類跑了測試集之后都要畫一張混淆矩陣。不是說每個(gè)項(xiàng)目都要給客戶看而是你自己必須心里有數(shù)。尤其是以下幾種情況不畫混淆矩陣幾乎等于白跑測試第一類別不均衡時(shí)。就像前面舉的例子準(zhǔn)確率會被大類“帶節(jié)奏”。第二類別數(shù)量較多時(shí)比如幾十個(gè)類即使每個(gè)類別準(zhǔn)確率在大數(shù)上看起來差不多也可能存在個(gè)別類別之間系統(tǒng)性錯(cuò)認(rèn)只有矩陣才能暴露這種規(guī)律。第三迭代優(yōu)化過程中。每次調(diào)完參、加完數(shù)據(jù)畫一張矩陣對比兩次的錯(cuò)誤分布能直觀看出優(yōu)化是否真的有效而不是只看準(zhǔn)確率有沒有漲。第四需要向團(tuán)隊(duì)或客戶匯報(bào)時(shí)。一張帶顏色深淺的混淆矩陣圖比一堆數(shù)字直觀得多。2. 動(dòng)手前的準(zhǔn)備環(huán)境、模型輸出與數(shù)據(jù)格式2.1 最小可用環(huán)境清單畫混淆矩陣本身對硬件沒有任何要求CPU機(jī)器完全能跑。核心依賴就是PyTorch、scikit-learn、matplotlib如果想畫得更精致一點(diǎn)可以再加seaborn。我用過的幾個(gè)版本組合供參考依賴庫我常用的版本區(qū)間說明Python3.8 ~ 3.11老版本要注意scikit-learn兼容性PyTorch1.13 或 2.x分類模型推理scikit-learn1.0 ~ 1.3提供confusion_matrix等函數(shù)matplotlib3.5 ~ 3.8基礎(chǔ)繪圖seaborn0.12 ~ 0.13熱力圖可視化更省事安裝命令我就不多寫了pip install torch scikit-learn matplotlib seaborn一步到位。如果是在已有的訓(xùn)練環(huán)境里補(bǔ)裝注意不要隨意升級PyTorch版本避免影響之前訓(xùn)練好的模型權(quán)重加載。2.2 模型輸出到底長什么樣logits、概率和預(yù)測類別剛?cè)腴T的朋友最容易在這里搞混。PyTorch分類模型在全連接層之后通常輸出一個(gè)向量這個(gè)向量在進(jìn)入Softmax之前叫l(wèi)ogits維度是批量大小乘以類別數(shù)。舉例來說一個(gè)批次的輸入經(jīng)過模型后輸出形狀通常是[batch_size, num_classes]。對每個(gè)樣本來說這個(gè)向量里的值表示該樣本屬于各個(gè)類別的“原始得分”數(shù)值越大代表模型越傾向于這個(gè)類別。取最大值的索引就是預(yù)測類別。有一種常見操作是先把logits經(jīng)過Softmax轉(zhuǎn)成概率再取最大值索引。這兩者其實(shí)結(jié)果完全一致因?yàn)镾oftmax是單調(diào)遞增函數(shù)不會改變最大值的位置。所以如果你只是要取預(yù)測類別直接做pred torch.argmax(logits, dim1)就夠了不需要先算Softmax。但如果你想把概率值也記錄下來比如用于分析置信度那就需要先過Softmax了。2.3 拿到預(yù)測結(jié)果后先做這件事類別索引與名稱對應(yīng)關(guān)系檢查模型輸出的是索引比如數(shù)字0、1、2而不是字符串“貓”“狗”“鳥”。所以動(dòng)手畫圖前先確認(rèn)索引和類別名稱的對應(yīng)關(guān)系。我遇到過不止一次訓(xùn)練時(shí)數(shù)據(jù)集是用字典映射的類別名稱在數(shù)據(jù)集類的classes屬性里導(dǎo)出模型做推理時(shí)忘了保存映射關(guān)系結(jié)果畫出來的矩陣行列全是數(shù)字根本不知道哪一行對應(yīng)哪個(gè)類別。這里給一個(gè)最小驗(yàn)證片段確保測試集的類別是連續(xù)且完整的# 以 torchvision.datasets.ImageFolder 加載的數(shù)據(jù)為例 dataset_classes test_dataset.classes print(dataset_classes) # 例如 [cat, dog, bird]如果你的數(shù)據(jù)是自定義Dataset一定要檢查__getitem__返回的標(biāo)簽是從0開始的連續(xù)整數(shù)。如果標(biāo)簽不連續(xù)比如0、1、5、9混淆矩陣的行列就會錯(cuò)位。這一點(diǎn)后面還會詳細(xì)說。3. 零基礎(chǔ)到手寫實(shí)現(xiàn)混淆矩陣的兩種構(gòu)建方式3.1 方式一手寫計(jì)數(shù)徹底搞懂矩陣邏輯雖然現(xiàn)成庫一行就能搞定但我強(qiáng)烈建議新手先手寫一次。理解了矩陣填充邏輯后面用庫函數(shù)出現(xiàn)問題時(shí)你才有能力排查。首先準(zhǔn)備真實(shí)標(biāo)簽列表y_true和預(yù)測標(biāo)簽列表y_pred兩者必須是等長的Python列表、NumPy數(shù)組或PyTorch張量。假設(shè)有4個(gè)類別先初始化一個(gè)4乘4的全零矩陣然后遍歷每一對真實(shí)標(biāo)簽和預(yù)測標(biāo)簽把對應(yīng)位置加1import torch def build_confusion_matrix(y_true, y_pred, num_classes): matrix torch.zeros(num_classes, num_classes, dtypetorch.int64) for t, p in zip(y_true, y_pred): matrix[t, p] 1 return matrix # 示例數(shù)據(jù)5個(gè)樣本3個(gè)類別 y_true [0, 1, 2, 1, 0] y_pred [0, 2, 2, 1, 0] cm build_confusion_matrix(y_true, y_pred, num_classes3) print(cm)輸出tensor([[2, 0, 0], [0, 1, 1], [0, 0, 1]])解釋一下第一個(gè)樣本真實(shí)是0預(yù)測是0所以matrix[0,0]加1第二個(gè)樣本真實(shí)是1預(yù)測是2所以matrix[1,2]加1。這個(gè)邏輯非常簡單遍歷完所有樣本就得到了完整的計(jì)數(shù)矩陣。如果類別數(shù)很多用循環(huán)加法的效率不高但畫圖前統(tǒng)計(jì)測試集一般也就幾千個(gè)樣本性能完全不是問題。3.2 方式二使用適合快速統(tǒng)計(jì)的現(xiàn)成函數(shù)手寫矩陣只是教學(xué)手段實(shí)際項(xiàng)目里我一般直接用機(jī)器學(xué)習(xí)常用庫中現(xiàn)成的混淆矩陣統(tǒng)計(jì)函數(shù)。它省事、代碼少、不易出錯(cuò)from sklearn.metrics import confusion_matrix y_true [0, 1, 2, 1, 0] y_pred [0, 2, 2, 1, 0] cm confusion_matrix(y_true, y_pred, labels[0, 1, 2]) print(cm)重點(diǎn)是這個(gè)labels參數(shù)。它用來指定類別索引的完整列表順序就是矩陣行列的順序。如果你的測試集某個(gè)類別恰好一個(gè)樣本都沒出現(xiàn)不傳labels的話矩陣會缺少那一行一列導(dǎo)致維度對不上。我一般在多分類任務(wù)中都會顯式傳入labelslist(range(num_classes))強(qiáng)制讓矩陣維度固定。如果真實(shí)標(biāo)簽和預(yù)測標(biāo)簽是PyTorch張量先轉(zhuǎn)成Python列表或NumPy數(shù)組再傳入。# 從 GPU 張量轉(zhuǎn)到 CPU再轉(zhuǎn) numpy y_true_np y_true.cpu().numpy() y_pred_np y_pred.cpu().numpy() cm confusion_matrix(y_true_np, y_pred_np, labelslist(range(num_classes)))這里我解釋一下為什么要先轉(zhuǎn)cpu().numpy()。confusion_matrix函數(shù)接收的是類數(shù)組結(jié)構(gòu)PyTorch張量雖然也能在某些情況下被兼容但為避免type error或device對不上的問題統(tǒng)一轉(zhuǎn)成NumPy數(shù)組最省心。3.3 手工方式 vs 現(xiàn)成函數(shù)怎么選有人可能會覺得既然現(xiàn)成函數(shù)這么方便為什么還要學(xué)手寫因?yàn)楝F(xiàn)成函數(shù)幫我們省掉的是“計(jì)數(shù)”這一步但沒有幫我們理解“矩陣的含義”。在實(shí)際問題排查中你需要跟別人解釋為什么某個(gè)位置數(shù)值異常偏高這時(shí)候只有真正理解矩陣每一格的含義才能基于業(yè)務(wù)邏輯給出合理解釋。兩種方式建議這樣搭配學(xué)習(xí)和調(diào)試階段手寫理解透徹后正式代碼里用現(xiàn)成函數(shù)。還有一個(gè)細(xì)節(jié)手寫矩陣用for循環(huán)效率較低如果測試集很大比如幾萬甚至幾十萬樣本建議用torch.zeros和index_put_這類批量操作或者直接用NumPy的np.add.at。不過對常規(guī)項(xiàng)目來說這個(gè)復(fù)雜度根本遇不到。4. 畫出真正能用的混淆矩陣圖配色、歸一化與標(biāo)注4.1 基礎(chǔ)熱力圖讓數(shù)字變成顏色矩陣本身是數(shù)字表格直接看也能看但遠(yuǎn)不如熱力圖直觀。熱力圖的核心思想是用顏色深淺表示數(shù)值大小顏色越深數(shù)值越大。對角線越深說明分類效果越好。用seaborn畫熱力圖是我用得最多的方式因?yàn)樗膆eatmap函數(shù)幾乎為混淆矩陣量身定制import matplotlib.pyplot as plt import seaborn as sns import numpy as np from sklearn.metrics import confusion_matrix # 假設(shè)已經(jīng)得到 cm 和類別名稱 class_names plt.figure(figsize(8, 6)) sns.heatmap(cm, annotTrue, fmtd, cmapBlues, xticklabelsclass_names, yticklabelsclass_names, cbarFalse) plt.xlabel(Predicted label) plt.ylabel(True label) plt.title(Confusion Matrix) plt.tight_layout() plt.savefig(confusion_matrix.png, dpi300) plt.show()參數(shù)說明annotTrue在每個(gè)格子里顯示數(shù)字。fmtd因?yàn)榛煜仃囀钦麛?shù)計(jì)數(shù)用d表示十進(jìn)制整數(shù)格式。如果錯(cuò)用了fmt.2f或者不寫可能報(bào)錯(cuò)或者顯示成小數(shù)。cmapBlues藍(lán)色漸變顏色越深數(shù)值越大這是論文里最常見的配色。xticklabels和yticklabels傳入類別名稱列表讓坐標(biāo)軸顯示可讀的名稱而不是數(shù)字索引。cbarFalse我比較喜歡關(guān)掉右側(cè)的顏色條因?yàn)樗槐硎绢伾顪\對應(yīng)數(shù)值大小但每個(gè)格子已經(jīng)標(biāo)了數(shù)字顏色條的信息量有限還占空間。如果對顏色對比敏感可以保留。4.2 歸一化從計(jì)數(shù)到比例的轉(zhuǎn)換原始計(jì)數(shù)矩陣有個(gè)問題如果每個(gè)類別的樣本數(shù)不同深色的格子分布會失真。例如類別0有1000個(gè)測試樣本類別1只有100個(gè)即使兩者的識別率都是80%類別0對應(yīng)的對角線格子數(shù)值是800顏色會非常深類別1只有80看起來很淺給人造成“類別1表現(xiàn)很差”的錯(cuò)覺。解決方法是按行歸一化歸一化后每個(gè)格子的值表示“該行真實(shí)類別中有多少比例的樣本被預(yù)測到了這一列”。歸一化矩陣的計(jì)算方法把每一行的所有值除以該行的總和。在scikit-learn中可以直接指定normalizetruecm_normalized confusion_matrix(y_true, y_pred, labelslist(range(num_classes)), normalizetrue)在seaborn繪制時(shí)我通常這樣處理cm confusion_matrix(y_true, y_pred, labelslist(range(num_classes))) cm_norm cm.astype(float) / cm.sum(axis1, keepdimsTrue) sns.heatmap(cm_norm, annotTrue, fmt.2f, cmapBlues, xticklabelsclass_names, yticklabelsclass_names)注意歸一化后fmt要改成.2f顯示兩位小數(shù)。在最終展示時(shí)我更傾向于同時(shí)展示兩種形式一是原始計(jì)數(shù)矩陣用來精確知道樣本數(shù)量二是按行歸一化的比例矩陣用來比較不同類別之間的表現(xiàn)。可參考的展示方案是先打印原始計(jì)數(shù)矩陣再打印歸一化矩陣圖里選一種呈現(xiàn)。4.3 坐標(biāo)軸字體、標(biāo)題和圖像導(dǎo)出細(xì)節(jié)可視化不只是把圖畫出來還要考慮最終使用場景。如果圖是要放進(jìn)論文、技術(shù)報(bào)告或PPT里的要注意以下幾點(diǎn)。首先類別名稱如果比較長比如“background_with_noise”這種橫坐標(biāo)文字會重疊。解決方法是把坐標(biāo)軸文字旋轉(zhuǎn)一下plt.xticks(rotation45, haright) plt.yticks(rotation0)旋轉(zhuǎn)角度一般45度就夠haright讓文字右對齊避免和相鄰文字貼在一起。其次字體大小要適配圖片尺寸。默認(rèn)字號在8乘6英寸的圖里還行但如果類別很多比如30個(gè)類別格子很小數(shù)字會擠在一起。這時(shí)候要么調(diào)大figsize要么調(diào)小字體sns.set(font_scale1.2) # 全局放大字體 # 或者單獨(dú)控制 annot 字體大小 sns.heatmap(..., annot_kws{size: 10})最后是導(dǎo)出格式。我會優(yōu)先導(dǎo)出一個(gè)矢量圖加一個(gè)位圖。矢量圖用PDF或SVG用于論文或報(bào)告縮放不失真位圖用PNGdpi300以上用于網(wǎng)頁展示或微信群聊。示例代碼plt.savefig(confusion_matrix.pdf, formatpdf, bbox_inchestight) plt.savefig(confusion_matrix.png, formatpng, dpi300, bbox_inchestight)bbox_inchestight會自動(dòng)裁剪圖片邊緣空白保證整張圖緊湊這一步我?guī)缀趺看味紩印?. 驗(yàn)證集、測試集和全量推理數(shù)據(jù)到底用哪一份5.1 三份數(shù)據(jù)的分工不少初學(xué)者會把訓(xùn)練過程中打印的驗(yàn)證集準(zhǔn)確率對應(yīng)的混淆矩陣當(dāng)作最終結(jié)果這其實(shí)不太嚴(yán)謹(jǐn)。驗(yàn)證集的作用是調(diào)參和選模型它參與了你對超參數(shù)的選擇過程所以用它評估模型會略微偏樂觀。真正用于最終性能報(bào)告的應(yīng)該是測試集也就是訓(xùn)練過程中從未參與梯度更新和模型選擇的樣本。如果連測試集你也反復(fù)用來做決策它也會慢慢“污染”。所以我的習(xí)慣是訓(xùn)練過程中的混淆矩陣用驗(yàn)證集畫用于觀察每個(gè)epoch有沒有個(gè)別類別開始嚴(yán)重錯(cuò)認(rèn)最終匯報(bào)和論文里的混淆矩陣用測試集畫用于說明模型的真實(shí)泛化能力。5.2 推理時(shí)別用模型本身的Dropout和BatchNorm坑在PyTorch中如果模型處于訓(xùn)練模式model.train()Dropout和BatchNorm的行為與推理模式不同。畫混淆矩陣時(shí)必須把模型切換到評估模式model.eval() with torch.no_grad(): outputs model(batch_data) preds torch.argmax(outputs, dim1)如果不加torch.no_grad()推理過程會構(gòu)建計(jì)算圖不僅占用大量顯存速度也慢畫個(gè)混淆矩陣把顯卡顯存跑爆就尷尬了。model.eval()則能保證BatchNorm使用訓(xùn)練階段統(tǒng)計(jì)的均值和方差Dropout關(guān)閉這樣推理結(jié)果才穩(wěn)定可控。有一次我忘了加model.eval()連續(xù)跑兩次同一條測試數(shù)據(jù)得出的預(yù)測結(jié)果不一樣嚇了自己一跳最后排查發(fā)現(xiàn)是Dropout在作怪。5.3 數(shù)據(jù)順序打亂對矩陣沒有影響但對可視化有影響混淆矩陣本質(zhì)上是對所有樣本計(jì)數(shù)的匯總不關(guān)心樣本順序。所以DataLoader里是否shuffleTrue不影響矩陣結(jié)果。但要注意如果你同時(shí)還想輸出“哪些具體樣本被分錯(cuò)了”以便人工檢查錯(cuò)誤案例那就必須記錄樣本路徑或ID而不能只記預(yù)測結(jié)果。順序一旦打亂你只知道有幾個(gè)樣本被錯(cuò)認(rèn)卻不知道具體是哪幾張圖。我通常會在推理時(shí)把樣本的路徑和預(yù)測結(jié)果一起記錄下來便于后續(xù)人工核對。這步在圖像分類里特別重要因?yàn)榫仃囍荒芨嬖V你錯(cuò)誤數(shù)量不能告訴你錯(cuò)誤原因。6. 從矩陣到洞察進(jìn)階分析與實(shí)戰(zhàn)技巧6.1 發(fā)現(xiàn)系統(tǒng)性錯(cuò)誤相鄰類別的強(qiáng)烈混淆混淆矩陣一個(gè)特別有用的場景是發(fā)現(xiàn)“系統(tǒng)性錯(cuò)認(rèn)”。比如在植物葉片分類中兩種外觀極其相似的病害類型常?;ハ嗷煜仃?yán)飼吹絻蓚€(gè)對稱的非對角線位置數(shù)值都很高。這說明模型并沒有學(xué)會區(qū)分它們本質(zhì)上是特征表達(dá)不夠或者兩類樣本之間的差異確實(shí)微小。發(fā)現(xiàn)這種規(guī)律后我的處理步驟通常是這樣先統(tǒng)計(jì)這兩個(gè)類別的樣本量確認(rèn)是否不平衡然后檢查訓(xùn)練數(shù)據(jù)里這兩個(gè)類別的圖像是否采集條件差異很大比如光照、角度再考慮是否需要對這兩類做特征可視化比如用梯度加權(quán)類激活映射看模型關(guān)注區(qū)域是否有問題。6.2 類別不平衡如何讓矩陣“說謊”歸一化矩陣能解決一部分“比較”問題但解決不了根本問題樣本量太少的類別即使歸一化后準(zhǔn)確率看著還行實(shí)際可信度也不高。比如某個(gè)類別只有10個(gè)測試樣本哪怕只有1個(gè)被分錯(cuò)歸一化后準(zhǔn)確率就只有90%而另一個(gè)類別有1000個(gè)樣本50個(gè)分錯(cuò)準(zhǔn)確率是95%。單看這兩個(gè)數(shù)字好像后者更好但樣本量差異導(dǎo)致前者的置信區(qū)間大得多。這種情況下我建議在矩陣圖下方額外標(biāo)注每個(gè)類別的測試樣本數(shù)。代碼上可以準(zhǔn)備一個(gè)樣本數(shù)列表用plt.text在對應(yīng)的列下方標(biāo)注或者干脆在類別名稱里帶上樣本量比如“類別A (n100)”。6.3 結(jié)合分類報(bào)告一起打包輸出混淆矩陣是基礎(chǔ)但給別人看的時(shí)候通常不能只甩一張矩陣圖。我在項(xiàng)目匯報(bào)時(shí)一般會同時(shí)輸出一份分類報(bào)告包含每個(gè)類別的精確率、召回率、F1值和樣本數(shù)。這樣既能從矩陣看全局又能從指標(biāo)看單類表現(xiàn)論證更充分。from sklearn.metrics import classification_report report classification_report(y_true_np, y_pred_np, target_namesclass_names, digits3) print(report)這段代碼會輸出一個(gè)表格每個(gè)類一行最后一行為加權(quán)平均。配合矩陣圖放在結(jié)果部分信息量完全夠用。6.4 多標(biāo)簽任務(wù)不是這個(gè)畫法這里要特別提醒一句本文討論的是單標(biāo)簽多分類任務(wù)每個(gè)樣本只能屬于一個(gè)類別。如果你做的是多標(biāo)簽任務(wù)比如一張圖同時(shí)包含“貓”和“狗”那混淆矩陣的畫法就完全不同了需要按標(biāo)簽維度單獨(dú)畫或者使用多標(biāo)簽專用的評估指標(biāo)。矩陣的行列在這里就對應(yīng)不上不要混淆。7. 常見問題與排查思路實(shí)錄7.1 畫圖時(shí)報(bào)錯(cuò)“size mismatch”最常見的錯(cuò)誤之一。原因通常是類別數(shù)對不上比如模型輸出10類但labels列表只給了8個(gè)或者測試集里某些類別缺失。排查順序先打印model最后一層輸出維度再打印訓(xùn)練時(shí)保存的類別映射然后打印len(np.unique(y_true))逐項(xiàng)核對。7.2 歸一化矩陣?yán)锍霈F(xiàn)NaN這類問題一般發(fā)生在某個(gè)行和為0的情況下也就是某個(gè)類別一個(gè)測試樣本都沒有。因?yàn)榉帜笧?除法結(jié)果變成NaN。解決方法是先檢查類別分布確保每個(gè)類別都有測試樣本如果確實(shí)沒有這一行就不該出現(xiàn)在矩陣?yán)镄枰獜膌abels里去掉該類別或者在計(jì)算時(shí)加一個(gè)極小值防止除零。7.3 圖片上中文類別名稱顯示成方塊matplotlib默認(rèn)字體不支持中文直接寫中文標(biāo)簽會變成一個(gè)個(gè)方框。解決方法有兩個(gè)一是直接用英文類別名最省事二是給matplotlib設(shè)置中文字體。代碼片段plt.rcParams[font.sans-serif] [SimHei] # 或 [Microsoft YaHei] plt.rcParams[axes.unicode_minus] False需要注意Linux服務(wù)器上可能沒有SimHei可以改用DejaVu Sans配合英文標(biāo)簽。如果是長期做中文項(xiàng)目我建議從始至終統(tǒng)一使用英文類別名加一份映射字典避免字體問題的困擾。7.4 GPU顯存不足的坑推理整個(gè)測試集時(shí)如果一次性把全部數(shù)據(jù)丟給模型顯存很容易溢出。正確做法是使用DataLoader分批推理每次累積預(yù)測結(jié)果all_preds [] all_labels [] for images, labels in test_loader: images images.to(device) labels labels.to(device) with torch.no_grad(): outputs model(images) preds torch.argmax(outputs, dim1) all_preds.append(preds.cpu()) all_labels.append(labels.cpu()) all_preds torch.cat(all_preds).numpy() all_labels torch.cat(all_labels).numpy()這里我把預(yù)測結(jié)果先放到CPU再在最后合并。注意不要每步都torch.cat這會復(fù)制數(shù)據(jù)多次效率低應(yīng)該先收集列表最后一次性合并。7.5 分類報(bào)告和矩陣對不上這個(gè)問題的根源往往是y_true和y_pred的來源不一致。比如y_true來自測試集的原始標(biāo)簽而y_pred來自某個(gè)評測階段的輸出文件兩者順序沒有對齊。排查方法是對比前幾個(gè)樣本的路徑和預(yù)測結(jié)果確認(rèn)是否一一對應(yīng)。我自己的經(jīng)驗(yàn)是永遠(yuǎn)在同一個(gè)推理循環(huán)里同時(shí)收集真實(shí)標(biāo)簽和預(yù)測標(biāo)簽不要分開跑兩次再合并。8. 我常用的一個(gè)完整可交付模板最后分享一個(gè)我自己項(xiàng)目里常用的模板代碼整體打包可直接復(fù)制修改。它做了三件事推理并收集標(biāo)簽、計(jì)算原始和歸一化矩陣、繪制并導(dǎo)出圖片。import torch import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.metrics import confusion_matrix, classification_report def evaluate_and_plot(model, test_loader, class_names, device, save_path_prefixcm): model.eval() all_preds [] all_labels [] with torch.no_grad(): for images, labels in test_loader: images images.to(device) labels labels.to(device) outputs model(images) preds torch.argmax(outputs, dim1) all_preds.append(preds.cpu()) all_labels.append(labels.cpu()) y_pred torch.cat(all_preds).numpy() y_true torch.cat(all_labels).numpy() cm confusion_matrix(y_true, y_pred, labelslist(range(len(class_names)))) cm_norm cm.astype(float) / cm.sum(axis1, keepdimsTrue) print(Classification Report:) print(classification_report(y_true, y_pred, target_namesclass_names, digits3)) fig, axes plt.subplots(1, 2, figsize(16, 7)) sns.heatmap(cm, annotTrue, fmtd, cmapBlues, xticklabelsclass_names, yticklabelsclass_names, axaxes[0], cbarFalse) axes[0].set_title(Confusion Matrix (Counts)) axes[0].set_xlabel(Predicted label) axes[0].set_ylabel(True label) sns.heatmap(cm_norm, annotTrue, fmt.2f, cmapBlues, xticklabelsclass_names, yticklabelsclass_names, axaxes[1], cbarFalse) axes[1].set_title(Confusion Matrix (Row-Normalized)) axes[1].set_xlabel(Predicted label) axes[1].set_ylabel(True label) plt.tight_layout() plt.savefig(f{save_path_prefix}.pdf, formatpdf, bbox_inchestight) plt.savefig(f{save_path_prefix}.png, formatpng, dpi300, bbox_inchestight) plt.show() return cm, cm_norm, y_true, y_pred這個(gè)函數(shù)會把歸一化和原始計(jì)數(shù)矩陣并排畫在同一張圖里一次導(dǎo)出兩種視圖。傳給它的test_loader不需要shuffleclass_names從dataset.classes里提取。我自己做項(xiàng)目時(shí)會把保存的PDF圖直接放進(jìn)技術(shù)報(bào)告里PNG圖放到文檔中省去重新繪制的麻煩。用下來這么久我覺得混淆矩陣這個(gè)工具比想象中更“耐看”。每次訓(xùn)練完新模型我都會把它當(dāng)作一個(gè)標(biāo)準(zhǔn)動(dòng)作和打印準(zhǔn)確率一樣自然。有時(shí)候矩陣看起來結(jié)果不理想反而能逼著我去找數(shù)據(jù)里的問題這比模型調(diào)參本身更有價(jià)值。希望這套流程能幫你省掉一些自己摸索的時(shí)間。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99精品高潮| 婷婷五月天激情网| 亚洲精品三| 亚洲欧洲综合成人av一区| 夜夜骑夜夜操| 91看黄片| 欧美大波激情xxxx| 人妻丰满熟妇一区二区三| 亚洲āv网址在线观看| 综合伊人激情| 久久一区二区高清免费| 97人人干人人操| 性爱综合网| 美女淫穴| 日韩有码回春沙龙第一页| 夜夜嗨TV| 国产亚洲色停停久久99精品91| 九九亚洲| 午夜福利区| 欧美亚洲日韩人妻在线观看| 欧美Ⅴ性爱| 欧美偷拍区| 黄色片大香蕉| 青青草自拍视频在线播放| 国产后入清纯| 日韩精品一区,二区 九九...老司机| 欧美亚洲涩涩| 欧美性爱第1 页| 国产乱人伦AVA麻豆软件.| 91N欧美| 加勒比伊人影院| 国产精品久久久| 日本道久久综合色色| 欧美综合加勒比在线| 欧美性爱一级操| 神马久久久久眼| 亚洲精品欧洲精品| 青青草在线成人视频| 九九九久久久久| 在线电影亚洲色图| 亚洲精品人妻在线| 亚洲第一综合| 婷婷操逼| 热久日综合| 亚洲麻豆av一区二区| 亚洲精品三| 国内精品嫩模A∨私拍小视频| 欧美中字二区| 高清无码久操视频| 久久五月天婷婷丁香中文字幕| 乱伦图一区| 欧美一区二区三区大综合| 日韩三级伊人| 久久人妻无码毛片A片麻豆| 操逼逼中文字幕| 9热9热综合网| 麻豆一区二区三区精品| 精品久久久久久AV无码| 蜜臀久久99精品久久久久久久久| 9精品久久久久| 91九色首页| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 欧美精品日韩久久久九| 蜜臀99999| 黄色一级视| 欧美操逼录像国产黄色国产| 啊啊啊好爽快点啊啊啊嗯嗯| 亚洲 小说 欧美 激情 另类| 噜噜噜亚洲精品| 久草大| 黄色视频高清无码网站| 精品久久九| 小泽玛利亚一二三| 国产女同视频在线播放| 综合亚州欧美| 国产欧美后入| 国产剧情一区在线观看| yellow网站免费观看日韩高清无码| 自拍第一页| 日本免费一区二| 亚洲、日韩、综合、另类| 伊人网青青| 十八禁成人网站在线观看| 黄呦呦在线| 超碰欧美| 日韩欧美经典在线观看| 久久久久久久久成人av解说| 另类小色呦| 伦理第一页| 国产在线76页| 中文字幕成人乱码熟女精品国50| 手机在线中文字幕国产| 色爽——AV| 天天操人人操骚逼网站| 中国一区二区亚洲人妻| 人妻无一区二区三区| 亚洲伊人成综合成人网| 97资源久久| 久妇网| 肉丝无码中文高清| 蜜色网色哟哟| 女色视频社区| 天堂资源欧美| 天天碰操中国年青熟妇| 91色综合激情| 9超碰免费| 国产天天看| 9999亚洲精品| 舔舔啊| 亚洲少妇视频| 日韩无码极品| 久久久久久久伊人精品| 一二三四视频中文字幕在线看| 国产JDAV无码视频在线观看| 亚洲图片激情综合另类| 黄色片大香蕉| 男人天堂2019亚洲| 2011国产精品| 国产伊人自拍| 欧美一二在线| 久久久久久久久久久久黄色| 最新精品久久蜜桃 | 男人的天堂VA在线| 大香蕉伊人网WWWn0n| 国产精品 亚洲情色| 中文字幕88av在线| 97在线欧| 欧美日韩国内不卡| 热思思免费视频| 色爱天堂| 久久久精品网站| 亚洲高清视频在线免费观看| 天天日天天操VV| 女同女同恋久久级三级| 99热国产精品| 亚 欧 美 综合| 激情五月婷| 日本性爱视频一级| 欧美色网| 可能人人看人人摸| 亚洲色欲天天人妻无码系列专区| 久热伊人| 高凊专区人人操| 精品久久九| 欧美色图下一页| 中文字幕在线观看丝袜| 日韩成人性日韩成人性爱视频在线免费观看 | 丝袜美腿制服人妻二区中文字幕| 99人人干| 乱伦Av网| 欧美色图20P| 美性中文综合网| av2014 日韩在线中文字幕| 久久无码一区二区二三区性色| 天天天天天干夜夜夜夜夜操| 国产乱人妻精品入口| av激情亚洲五月天| 蜜臀少妇一区二区| 欧美三四五区| www狠狠| 日本 情色 1区2区3区| 天天操人人操狠狠插| 丝袜内射| 一级@啪啪视频| 欧美第38页| 欧美精品久久久久久久丰满| 成人性爱美曰韩| 欧美熟女丝袜| 亚洲AV成人无码久久精品播放| 欧美A√综合网| 思思热免费在线视频| 欧美激情视频一区二区三区不卡| 蜜桃av色偷偷av老熟女| 国产女上位好爽在线| 天美91| 欧美天天谢综合网| 激情干在线| 久综合国内精品自在自线| 91丨国产丨白浆秘 洗澡动漫| 色色五月天激情| 97免费视频网| 91天天综合网| 成人怡红院| 大香蕉色网| 久久‘黄片视频| 亚洲图片 欧美电影| 九九九九九九九九九九九九九九九女| 91成人国产综合久久精品蜜月| 日韩超碰97| 97大色网| 国模精品一区二区三区苹果色戒 | 天美麻花大全视频| 啪啪啪综合网| 爽爽淫人网| 亚洲自拍青操视频| 国产无马在线| 国产精品久久99日日| 亚洲人综合19| 亚洲人成色9999精品久久| 又大又长又粗又爽又黄| 黄色AV影视| 国产有码一区| 国产精品熟女AV中文字幕在线播放| 日韩一级成人毛片免费观看 | AV色女综合| 欧美中字不卡| 国产精品夜夜夜| 五月天婷婷综合| 老司机射| 午夜欧美女人操逼| 国产AV超爽| 色玖玖| www欧美91| 91色欧美| 国产熟女少妇一区| 精品国产精品一区二区| 无码操逼网| 国产日韩精品无码去免费专区国产| 99久草| 超碰色美女| 久久久性少妇| 中日韩免费看男女操逼大全| 黄片aaaaa一区| 国产成人99久久亚洲综合| 色色毛片| 国产亚洲精品A在线观看下载| 久久久久亚洲熟妇熟女| 欧美亚洲一级在线观看| 91chinese在线| 人妻喷水| 国产又黄又粗又猛大片| 亚洲素人综合| 亚洲黄色| 色婷婷六月丁香七月婷婷| 中文色综合| 欧美日韩国产色图在线| 青青草视频久久| 色九月综合| 999熟女精品| 少妇99| 九九九九97| 夜夜躁狠狠躁日日躁av| 成人性爱免费播放| 免费看欧美美女黄色大片| 欧洲色色| 亚洲熟妇AV日韩熟妇在线| 外国免费性情大片| 欧美性后入| 欧美18老人禁| 性色av蜜臀av色欲aV| 丁香六月激情| 国产精品视频91久久| 综合网欧| 色999五月色| 亚洲欧美另类小说| 亚州欧美在线| 日韩精品99久久久久久中文字幕| 久久综合av| 伊人9| 国产激情在线| 亚洲中文字幕日产无码久久| 色天天野狼综合社区| 久操网无码在线| 日韩精品人妻中文字有码在线| 亚洲欧洲综合成人av一区| 操逼999| 91红杏| 97在线观看免费视频l| 国产在线激情| 在线观看午夜婷婷久久久久清性观看| 色香AV| 狠狠中文字幕| 欧美天天影院| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 久久精品国产亚洲AV无码电影| 色婷婷五月综合激情中文字幕| 欧美一区二区三区不卡高清视频| 97超碰这里只有精品| 精品黄色电影| 精品无码久久久久| 欧美日韩小说| 久久色情| 97久久国产精品| 超碰人人妻| 97资源站日韩| 色婷婷小说| 久久久9999| 四季AV综合网址| 亚洲囯产精品女人久久久| 欧美美女后入| 高清无码网址| 人妻一区视频| 亚洲熟妇A V黑人| 9久热| 在线观看不卡一区二区三区| 欧美色一二三| 色五月婷婷在线| 日韩免费三级黄片电影| 色偷偷人人玩人人舔人人操人人摸人人爽| 青青操视频在线| 国产精品久久久久久片| 麻豆一区在线| a片在线播放| 国产美女精品| 隔壁邻居波多野结衣中文字幕 | 日韩人妻无码不卡网站| 高清无码在线播放网站| 欧美 日韩 婷婷 五月| 色图综合| 欧美熟妇操操视频| 99久久久久久亚洲精品不卡| 大香蕉伊人网WWWn0n| 国产午夜在线观看| 操人妻逼91| 噜噜噜在线视频| 欧美激情色婷婷花野真衣一区二区| 夜夜夜久久| 天天肏天天干| 欧美性后入| 日韩 国产 欧美自拍| 九九九网页| 综合网天天| 天天综合在线4| 野狼福利社区| 蜜臀少妇一区二区| 91丝袜在线观看| av操操不卡| 中日韓欧美高清| 强奸a片网| 久久久精品久久| 爆操无码| 91熟女在线| 蜜桃色色网站视频三区| 国产精品九九九| 日韩不卡网操逼中文字幕日韩| 久久久亚洲| 七久久久| 美女午夜福利免费视频| julia ann久久| 97色色视频| 欧洲在线性爱视频| 欧美综合777| 婷婷五月综合在线| 东北少妇高潮zzzz| 一级免费精品| 91视频观看网站| 亚洲第一精品在线视频| 97人妻人人躁人人玩人人| 天天色播| 国产精品99精品视频网站| 黑人精品久久97| 国产精品一区二区黄片| 九九九精品| 久久久久9999妇女| 欧美老妇综合网| 欧美亚男人的天堂| 91精品国产日韩欧美综合| 福利视频网站| 伊人黄色片| 97欧美色| 国精综合一二三区影视| 人妻丝袜无 码视频专区| 国产亚洲精品一区二区三区| 加勒比无码毛片| 殴美,日韩国产伦精品| 亚洲精品影视老司机| 91亚洲欧美激情| 日韩av色图| 91在线页| 亚洲激情网| 韩国午夜理伦三级好看| 国产av美女被艹的乱叫| 国产有码一区| 天天做天天爱| 九九热免费视频| 久热久一区二区三区| 成人色女网| 亚洲人成网www| 2020中文字幕在线| 午夜理论片在线观看免费| av黄图片在线观看| 国产 日韩 欧美 人妻 熟女 中文| 91深夜夜| 十八禁啪啪视频| 另类欧美色| 国产一区二区久久| 欧美成人一区二区| 玖玖资源中文字幕制服丝袜| 2001天天操| 成视频在线观看免费看| 国产精品久久久久久 百度| 欧美成人免费在线观看| 色欲天天综合久久久无码网中文| 精品国产乱码久久久久久免费| 蜜臀色乳| 国产精品suv一区| 欧美激情 日韩精品| 久久女婷| 一区二区不卡免费| 97精品| 亚洲精品一卡二卡三卡福利视频网站| ji熟女.com| 国产深喉视频一区二区| 欧美97av| 欧美一二在线| 久久久久久久久久久久黄色 | 超碰97爽| 97中文字幕色| 欧美国产有色电影| 亚洲伊人久久精品影院| 国产2.3.4区| 伊人宅男大香蕉| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 国产日韩欧美三级片| 一级黄色视频网| 国产女人极品高潮毛片| 亚洲精品一区二区精品| 秋霞色色影院| 亚洲高清欧美总合| 日韩电影在线观看网址| 操操吧亚洲乱伦视频| 欧美人人曰人人操人人射射| 久久精品中文字幕观看| 99热只有这里有精品| 青青草天天亲夜夜操网| 九九毛片这里只有精品| 夜夜爽爽夜夜精品视频| 天天影视综合色| 加勒比综合| 思思视频免费看网站| 无码av永久免费专区网站| 色欲日韩欧美在线一区| 爱爱动态120秒| 午夜福利 成人 91| 美女啊啊啊啊啊啊| 亚洲AV无线| www.超碰| 亚洲天堂情色| 亚洲天天更新| 懂色av色欲av蜜臀av| www.人人cao| 亚洲不卡av在线| 欧美最大综合网| 啊啊啊啊啊啊好多水| 中文字幕日韩人妻视频| 久久国色天香香蕉| 久久99深爱久久99精品| 精品欧美老熟女一二区| 人妻中文在线| 亚州中文字幕超碰97| AV女资源| 亚洲精品无码成人久久久99| 日韩国产品视频中文字| 青青草AV色| WWW啪啪的com| 人妻AV在线| 天堂网 主播 亚洲| A级片日韩欧美国产欧美视频精选观看 | 久久性爱精品一区| 97爱爱爱综合| 日韩欧美资源| 国产精品白丝在线播放| 成片免费观看视频大全| 骚女高跟AV在线| 免费观看成人www精品视频| 午夜一级免费毛片| 亚熟在线| 清纯唯美亚洲综合| 99精品在线观看| 亚洲熟女人妻中文字幕一区二区| 9久热| 日韩乱码av| 一本色道久久综合狠狠操| 高清无码久操视频| 九一亚洲国产免费| 酒色综合网| 国产成人无码久久精品| av草草在线电影| 先锋激情∨在线视频播放| 久久久久久夜夜夜夜夜| 97神马久久| 爱做久久久久久| 97欧美久久久久久久| 五月丁香综合激情| 国产超碰| 少妇精品| 91成人久久| 欧美在线视频观看一二三四区高清 | 日本道日本道中文字幕日本道最新日本道在线观看 | 激情国产乱伦Av| 夜夜夜久久| 亚洲图片91| 日本123区操B视频| 天天色综合影视网| 色色色欧美| 青青久久艹| 久久无码成人| 91日日夜夜| 国产日韩欧美三级片| 欧美亚洲成人在线一区二区三区| 激情综合网亚洲| 欧美老熟另类| 少妇厨房愉情理伦片bd在线观看| 在线视频五十市| 26uuu久久| 67914亚洲精品| 97亚洲色图| 国产精品熟女丝袜一区二区| 久久精品国产亚洲av水密被窝| 婷婷久久久| 加勒比色99999| 亚洲中文日韩精品| 久久久久久九| 91亚州欧美| 欧美亚洲日本视频久久久| 欧日韩一二三f区| av九九| 欧美一级AAAAAAA| 国产精品久久久久999| 欧美一区二区三区日韩| 蜜臀一区二区三区在线 | 殴美大黄片| 超碰99在线| 啪啪视频mP4| 日本免费一级AAA大片器| 人人摸人人舔一区二区| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 日韩三级一区| 激情 欧美 亚洲 小说| 亚洲综合校园春色| 人夜夜精品网站香蕉嫩草| 久久久久亚洲熟妇熟女| 99re综合伊人| 久久超碰97中文字幕| 亚洲美女自拍偷拍视频| 中文字幕在线免费观看2| 999 久久久| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 亚欧免费| 亚洲熟女人妻中文字幕一区二区| 亚洲自拍欧美国产首页网曝 | 激情文学亚洲| 老女人老91妇女老热女| 亚洲色图久久成人| 澳门特级毛片免费观看| 国产极品精品美女视频| 婷婷爽人人婷婷爽视频| 精品无码一区二区人妻久久蜜桃| 天天弄欧美| 日韩丨制服丨中文|在线| 国产欧美日韩在线不卡第一页| 亚洲无码 国产无码| 91超碰丝袜制服| 中文字幕人乱码中文字的预防方法| 超碰av人人人| 国产呦精品一区二区三区下载| 日本高清免费一本视频在线观看| 女人久久久| 狠狠入| 激情内射| 91在线国产后入风骚翘臀美女素人| 亚洲综合影片| 一区二区三区日韩欧美| 国产亚洲 中文欧美久久| 东京热免费视频| 成人福利视频网| 黄色电影观看久久9| 日韩三级在线观看网站| 亚洲无992tv| 青青久久久| 乳欲人妻办公室奶水| 亚洲有码 视频一区| 欧美影音在线| 日韩人妻精品中文字幕| 人人澡综合涩| 中文字幕av久久爽Av| 97日本超碰综合| 天天爽夜夜操| 98色网| 青青草日本中文字幕 | 女欧美一区二三区| 欧美性91| 欧美 亚洲 第一页 | 97超碰jingpin| 天天视频黄| 少妇内射视频| 激情终合网| 日韩美女高潮喷水视频| 色眯眯av| 五十路成人在线视频二区三区| 爱丝福利| 嗯嗯不要视频| 色欲天天综合久久久无码网中文| 亚欧高清| 夜色五月天| 免费观看成人www精品视频| 12一15性XXXX粉嫩国产| 欧美综合娱乐久久| 日本女优在线视频福利| 亚洲无码?第一页| a片自拍直播视频| 亚洲欧洲中文日韩女优乱码| av强奸乱轮| 国产小黄片在线免费观看| 精品国产一级久久| 熟妇在线视频一区二区| 国产性刺激| 日韩97视频| 亚洲国产精品无石码久久| 亚洲欧美另类激情小说| 2019精品国产无码成人| 精品一区二区人妖| av天天在线观看| 欧美页片| 国语精品av| 黄色免费网| 亚洲精品日韩国产欧美| 精品视频久久区| 久久久久久久久久久久久久久久9| 99热超碰在线| 人人超碰在线观看黄| julia ann久久| 国产黄色剧情影片麻豆免费播放| 国产 三级自拍| 97视频在线免费看| 色盈盈影院| 蜜桃网熟妇| 欧美日韩性爱电影在线| 亚洲操逼网| 天天在线91| 蜜桃久久一区二区| 国产最火爆久久国产网站网站| 久久精品国产亚洲AV成人直播| 国产在线视视频有精品| 观看视频图片一区二区三区| 日本三级精品| 国产自产一区视频在线| 日韩97视频!在线| 自拍第一页| 精品人妻中文字幕4399| 久久熟女人| 校园春色 亚洲| 在线国产福利网址导航| 91女网站| 精品女同一区二区三区| 中国黄色特级精品一区二区三区片| julia高潮后不停追击中出| 精品一二三区久久AAA片| 你操综合| 色婷婷激情| 久久97超碰香蕉| 国产精品一区二区a| 啪啪综合网| 精品制服美女中文一区二区三区| 久久这里只精品免费福利| 一二三四免费视频| 亚州综| 色999;丁香五月| 日本高清一本二本免费不卡| 欧美一区二区三区蜜桃| 一区二区三区色综合| 国产又猛又粗又爽又黄| 亚洲瓯美色图| 久久久精品中文字幕爱豆| 四虎 精品 WWW| 99无码狠狠久久| 欧美最婬乱婬爆婬性视频 | 免费看一级a性色生活片久久无| 亚洲成人一二三区| av凤凰久久久| 99e久久国产精品| 免费网站观看www在线观| 精人妻无码一区二区三区伊人直播| 中文一区二区| 大香蕉黄色一区| 欧美 亚洲 偷拍自拍| 欧美色乱| 日韩99999色| 国产日韩精品suv| 欧美 日韩 国产传媒| 无码久久亚洲高清,| 熟女天天干| 婷婷色色五月| 性爱视频免费网址| 91丝袜熟女| 亚洲天堂AV在线播放| 亚洲日韩乱码中文无码蜜桃臀网站| 香蕉久久AⅤ...| 超碰久久精品| 欧美国产日韩高清在线| 大香蕉日韩| 国产白领连续中出在线观看| 伊人网免费视频| 操死我了嗯嗯嗯| 国产一区二区欧美日本| 曰韩香蕉97| 天天躁日日躁xxxxx| 欧美日韩97在线| 色五月综合| 人人看黄色视频| 欧美青青视频| 东北少妇高潮zzzz| 日韩色| 国产一二三福利视频网| www.婷婷五月天| 精品美女久久久久| 欧美成人国产精品| 九九天堂| 国产精品久久久久久片| 999久久久国产精品| 91天美传媒精品| 久久香蕉综合一本到3atv| 国产精品一区二区三区四区五区| 国产三级中文有码在线视频| 就去色综合| 亚洲无码视频免费在线观看网址!| 精品伊人久久久大香线蕉小说| 999精品乱码| 国产青一二三| 久久男女激情视频网站| 91丨国产丨白浆秘 洗澡动漫| 最新9久久久9免费视频| 国产超碰| 欧美激情内射| 久久久禁| 不卡在线一区,精品一区二区三区中| 岛国在线国产| 天天噜| 国产精品久久久久久久免牛肉蒲团| 久久久婷婷婷| 美女写真| 搡老熟女免费视频| 另类欧美色| 亚洲。天堂。日本在线观看| 蜜桃臀 后入 一区 二区 三区 在线| 欧美日本国产日韩激情视频| 亚洲色图激情小说| 国产精品久久久久久久久AV大片| 亚洲资源站| 日本精品久久久久久久| 久久一区无码| 亚洲丝袜色| 免费毛片在线播放| 色嗨嗨在线| 亚洲国产欧美一区二区潘金莲| 2017大香蕉| 国产熟女一区二区| 亚洲一二三四区在线免费看视频| 久草毛片| 99www.bibizy香蕉资源国产一区二区三区高清| 国产传媒av天美传媒在线| 亚洲国产尤物yw在线观看| 色踪合AV| 婷婷六月色| 亚洲偷拍自拍在线视频| 成人日韩3| 欧美激情性爱视频网站| 手机av天堂久久久久| 外国免费性情大片| 超碰97伊人| 青青草大香蕉视频| 国产诱惑| 欧美在线啊啊啊| 欧美亚洲激情小说| 操操啪| 婷婷丁香五月激情啪啪| 久久精品色欧美aⅴ一区二区| 日本三级A片网站com| 大香蕉伊人75| 校园春色五月天| 女性91网站| yw尤物av无码点击进入麻豆| 亚洲国产另类在线中文| 一级做a爰片性色毛片久久| 日本人妻最新在线中| 亚洲自拍偷拍视频在线| 最近2018中文字幕在线高清第一页| 91精品人妻| 超碰78| 九月激情婷婷| 日韩av不卡在线观看| 动漫爆乳3D奶水一区在线观看| 秋霞视频一区二区| 吻戏激情性巴克| 亚洲天堂另类美腿| 欧美色图 人妻| 色偷偷2020免费视频播放| 亚洲天堂男| yaouchengrenav| 99久久e免费热视| 欧美日韩操逼嗦吊| 久久男人的天堂国产| 国产AV人人 夜夜人人澡| 韩国嫰模上门援交视频| 欧美性高潮| 亚洲熟伦熟妇AV无码春色| 国产91啪| 日本午夜精品理论片A级APP发布| 久久香蕉国产线看观看猫咪av| 超碰av在线| 嗯嗯啊啊操死我| 老司机福利社视频在线观看| 影音资源男人日韩| 日日骚AV| 色色香蕉| 在线播放成人网站| 精品国产乱码久久久久久影片| 一区二区首页| 色男人色天堂东京热| 日韩欧美中文字亚洲慕| 亲子敌伦对白在线播放| 亚洲黄色a级片| 亚洲欧美激情另类色图| 国产白领连续中出在线播放| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 手机av亚洲丝袜美腿日韩第一页二页| 色综91| 草莓精品视频| 成人日本精品九区| 久久岛国| 黑人精品成人一区二区三区| 日本中文字幕高跟| 男女性扦B| 乱伦一二三| 国精精品无码一二三区水多多| 青青青国产| 精品人妻一二三四区视频| 97免费视频在线| 综合久久久久久久久91| 超碰在线国产| 中文字幕日韩人妻视频一区二区三区交换夫妻| 狠插 制服 自拍| 日本无码1| 91精品久久久久久77777| 四虎永久在线精品免费网址 | 男人的天堂色偷偷青青草视频婷婷网| 在线观看不卡一区二区三区| 蜜臀久久99精品久久久久久婷婷| 干b网| 亚洲啪啪啪啪视香蕉| 国产高清亚洲日韩一区 | 99精品在线观看| 久艹99| 亚洲一区二区三区播放在线| 久久久久久久少妇| 综合色欧美| 91成人在线免费视频| 校园春色之综合网| 男人综合网| 色播综合| 欧美大香蕉同搞| 亚洲熟妇图片| 一区二区乱码福利| 大鸡巴久久久| 亚洲国产97| 另类图片五月| 超碰97 线线 在现| 五月综合久久| 久久久久女教师免费一区| 国产在线视视频有精品| 丝袜高跟澳门91视频| 91人妻素女| 日日妻色网| ?亚洲伊人伊成久久人综合网| 中文字幕精品三级久久久| 东北丰满熟女国产一区| 骚人妻少妇视频| 五月综合色| 中文字幕丝袜人妻| 国产男女边吃边摸视频网站| 性色高清在线| 超碰人人操97碰| 在线观看午夜婷婷久久久久清性观看| 中文字幕丝袜国产第一页不卡| 夜夜人妻爽| 黄片在线免费在线观看| 亚洲视频精选| 日韩乱码Av| 老司机深夜18禁污污网站| 神马久久久久久久久久| 国产欧美精选自拍一区| 天天影视网色欲色香| 日本精品高清一二区一本到| 青青草依人大香蕉| 黄色AV影视| 国产一区二区三三视频| 天美传媒av一区二区| 久久久久国产无av| 99热伊人| 久久久久久久久久久久欧美日| 97亚洲中文| 色色色色色色色色色色色色色色综合| 香蕉国产精品麻豆亚洲欧美日韩| 久久爱超碰网| 成人性爱av.com| 国产视频一区二区在线| 国产精品久久久777| 亚洲中文字幕乱码无码一区二区| 亚洲精品三| 97在线资源| 亚洲欧美在线观看免费| 久艹免费| 伊人国产视频| 一起草av| 亚洲精品人妻在线| 男人久久天堂| 久久精品视| 嗯嗯嗯好爽| xxxx网站亚洲精品| 92久久| 欧美日韩大陆黑人少妇99| 国产精品岛国片在线观看| 97超碰美女| 少妇精品久久久| 国模吧 一区二区三区| 日日夜夜青青草母狗| 国产风韵犹存熟妇三区| 一类无码操逼视频| 久久久久久久久久精| 久久久精品91八戒| 亚洲色图20p| 日韩乱伦AⅤ| 国产性感骚丝袜在线| 97资源久久| 国产怡红院| 日B操| 九九九久久久W精品| www.AV有限公司一区| 日本特黄f c2| 一起草精品人妻| 嫩呦国产一区二区三区AV| 老妇女91| 超碰97人人乐| 亚洲天堂日本| 很黄很污的免费网站| 亚洲精品男人的天堂| 欧美经典一区二区三区| 超清福利精品视频在线| 欧美 熟女 日韩| 天天影视色香色欲| 久久在线观看免费视频 | 亚洲 欧美 精品专区 极品| 天天躁日日躁XXXXYY| 人妻少妇久久中文字幕一区二区 麻豆| 亚洲AV无码AV吞精久久久久| 青青在线视频免费| 偷窥自拍A片| 国产精品乱码久久久久久久久| B049AV在线播放| 97精品97| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 精品女人999| 久热伊人| 五月婷婷色| 黄片免费久久久久久久| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 色99视频| 67194国产| 五月丁香激情综合| 免费人成?大片在线播放| 啪一啪免费视频| 色综合av男人天堂| 丁香九月 婷婷| 91精品91久久久中77777| 亚洲激情在线| 天啪| 久久天堂| 12一15性XXXX粉嫩国产| av网站国产主播在线| A 天堂| 91精品久久久久五月天精品| 日本性爱欧美性爱| 欧美另类精品xxxx| 日本操逼视频导航| 久久精品国产99精品亚洲蜜...| 天天插夜夜操| 国产综合永久精品日韩鬼片| 亚洲色图殴美色图激情乱伦| 簧片免费看视频| 9久综合网| 中文字幕在在线观看网站| 日韩9999| 青青草五月份天| 欧美日韩精品久久久久久久久东北老熟妇| wwwss在线观看| 五月黑AⅤ| 午夜精品久久久久| 97射欧美| 亚洲一区二区三区婷婷| 无码直播久久久| 日韩精品碰碰| 日本三级一区二区 在线| 国产精品分类在线观看| 啪啪啪精品视频| 99热成人| 精品网站99999| 久久精品人妻一区二区| 78m啪啪啪| 国产一区二区在线播放| 精品国产一区二区三区在线播出| 手机在线人成免费视频| 夜夜嗨一区二区| 日本男人插女人的逼黄色| 亚洲色天堂九9| 久久中文色图| 射丝袜大香蕉| 色呦呦国产精品免费看| 午夜啪啪片| 婷婷色综合| 青春草A| 欧美在线电影| 永久免费av无码网站国产app | 91超级碰碰| 97视频在线观看高清资源| 亚洲精品97p| 最新av中文字幕高清| 熟女突然公开看18禁影片| 色色色综合| 国产精品久久久久久久久久久久久久久久 | 欧美高清无码免费视频高清版| 91伊人久| 国产精品亚洲一区二区三区四区| 亚洲天堂热| 久久熟妇五十路一区| 久久精品噜噜噜成人看免欧美大片| av毛片aaaaa免费看| 99久久久久| 大香蕉琪琪日本女优不卡| 欧美网站免费| 人人操人人操人人人操| 秋霞一级视频在线观看免费| 亚洲美女30b| 舔足天天操天天射| 日韩性爱再线视频| 三级三级三级日本99| 欧美日本视频一区| 欧美性爱18观看| 人妻天堂综合网| 91中文字幕在线观看| 国产h片在线观看视频| 人人澡综合涩| 国产精品96| 婷婷97| 欧美在线综合| 色婷婷激一区二区三区 | 色眯眯射| 可免费观看的av毛片中日美韩| www.色操逼| 精品妇操一区二区三区| 懂色av色欲av蜜臀av| 久久久国产精品人妻丝袜| 操碰97| 97在线免费看| 欧美日韩97| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 尤物av网站免费在线播放| 国内精品伊人久久久久影院会| 在线一区| 一区二区三区视频国产免费| 午夜欧美神马久久久久| 国产精品不卡一区二区三区av| 亚洲色性情三级| 精品无码不卡视频| 夜色97| 91超级碰碰碰| 亚洲天天综合| 亚洲色图国产另类| 强奸乱伦av电影| 91熟女丨老女人| 中文字幕91综合| 变态乱伦伪娘灌肠一区二区| 超碰97欧美日韩| 婷婷五月天色色| 精品无码欧美三级| 大香蕉琪琪日本女优不卡| 金莲网址| 黑丝制服中文字幕| 防屏蔽在线视频| 国产一区二区精品久久久不卡蜜臀| 99久久99九九99九九九| 亚洲色宗合| 性色高清在线| 黄色AAAAA欧美| 黑白配性爱AV成| 欧美在线观看综合国产| 亚洲综合情色| 秋霞视频一区二区| 中文字幕在线观| 宗合情欲网| 欧美日本一区二区a人| 抽插一区二区视频| 91久久精品国产| 国产精品蜜臀久久久久无码AV| 亚洲熟女乱综合一区二区三区| 99久久精品国产高潮| 欧美美女视频| 激情四射婷婷四五月天| 亚洲国产av中文字幕久久| 国产精品乱码久久久久久| 激情综合五月婷婷| а√天堂资源官网在线资源| 精品中文日韩字幕视频| 欧美性爱另类综合| 日韩成人高清一区二区| 懂色av中文字幕| 啊啊好多水| 国产青一二三| 91成人无码| www.AV有限公司一区| 国产又粗又又黄又猛| 男人高清无码一区二区| 亚洲福利影院一区久久| 很很很很操| 欧美劲爆第一页| 国产美女激情| 9久综合网| 7777欧美成是人在线观看| 欧美18 在线观看| 天天综合青苹果| 人人摸人人舔一区二区| 久久亚洲不卡一区二区三区| 91大学精品激情戏| 久久久麻豆精品| 欧美丰满少妇xx高潮| 免费AV中文网在线观看| 久久久555| 欧亚韩国999| 超碰久在线天天做| 鸥美插入视频| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 欧美丝袜制服久久| 另类成人首页一区| 九九色色| 91丨豆花丨熟女| 一区二区播放| 91+欧美| 久久精品国产免费观看99| 极品白嫩美少妇在地板上位骑射淫水泛滥| 99在线精品视频| 国产三级电影免费观看| 蜜区区视频79| 青青色综合| 日本一区二区成人在线| 狠狠躁天天躁日日躁97| 青青操少妇| 9超碰免费| 亚州综合电影| 亚洲一区二区三区麻豆传媒| 少妇国产不卡| 九九热九九热| 九久9热| 亚洲综合另类欧美久久久| www四虎| 久久男人网| 天堂在线一区二区| 久久久久密臀视频| 人妻激情在线视频| 91网站在线播放| 亚洲色性| 久久男人的天堂|