日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

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

PyTorch混淆矩陣?yán)L制全指南:從原理到出版級可視化 從項目標(biāo)題來看這是一篇“技術(shù)復(fù)現(xiàn)型”的分享。只要動過PyTorch做圖像分類或文本分類的人應(yīng)該都經(jīng)歷過這種場景訓(xùn)練完模型打印出準(zhǔn)確率看到一個90%甚至95%的數(shù)字心里挺高興結(jié)果模型一上線發(fā)現(xiàn)某些類別幾乎全錯。準(zhǔn)確率這個指標(biāo)太“宏觀”了它會掩蓋很多細(xì)節(jié)。所以我才堅持每次跑完分類任務(wù)都要畫一張混淆矩陣出來看看。這篇文章就把我平時在PyTorch項目里畫混淆矩陣和做可視化的一套完整流程整理出來從最底層的矩陣計數(shù)原理到最終的出版級圖像導(dǎo)出盡量覆蓋到每一個坑。1. 為什么要畫混淆矩陣從準(zhǔn)確率說不清的問題說起1.1 準(zhǔn)確率看著挺高模型卻可能在“裝模作樣”先講個我自己踩過的案例。當(dāng)時做一個六分類的紋理識別任務(wù)訓(xùn)練集里樣本分布很不均衡其中一類占了總樣本的將近一半。訓(xùn)練結(jié)束后驗證集準(zhǔn)確率到了92%看起來一切正常。結(jié)果把測試集結(jié)果按類別拆開一統(tǒng)計那個占了50%的類別準(zhǔn)確率接近99%而另外幾個稀少類別準(zhǔn)確率只有60%到70%。如果只看準(zhǔn)確率根本發(fā)現(xiàn)不了這個問題?;煜仃嚨膬r值就在這它不給你一個籠統(tǒng)的“好”或“壞”而是把“哪一類被認(rèn)對了、哪一類被認(rèn)成了哪一類”全部攤開。有些讀者可能會問精確率、召回率、F1值不是也能看類別的單獨表現(xiàn)嗎確實能。但混淆矩陣是最原始的“計數(shù)表”精確率和召回率其實是基于這個計數(shù)表二次計算出來的。有了混淆矩陣你可以自己計算任何想要的指標(biāo)還可以定位到具體的“錯誤對”比如A類被錯認(rèn)成B類到底是A類的特征太接近B類還是數(shù)據(jù)標(biāo)注本身就有問題。這是單獨一個F1值做不到的。1.2 混淆矩陣到底在告訴你什么對于一個N分類任務(wù)混淆矩陣是一個N乘N的方陣。行通常代表真實標(biāo)簽列代表預(yù)測標(biāo)簽。矩陣的第i行第j列的值表示“真實類別是i卻被模型預(yù)測成類別j”的樣本個數(shù)。對角線上的值越大說明這一類被正確識別的比例越高。對角線外的值就是錯誤分布它們會清晰地告訴你錯誤主要發(fā)生在哪些類別之間。舉個例子三分類問題假設(shè)有150個測試樣本每個類別各50個。如果矩陣長這樣真實\預(yù)測類別0類別1類別2類別04811類別15405類別22840對角線加起來是128所以準(zhǔn)確率是85.3%。但這張矩陣透露的信息更多類別0表現(xiàn)最好只有兩個樣本出錯類別1有5個樣本被認(rèn)成類別05個被認(rèn)成類別2類別2則有8個樣本被認(rèn)成類別1。這告訴你類別1和類別2之間的混淆比較嚴(yán)重可能是特征相似也可能是訓(xùn)練樣本不足。1.3 什么時候必須畫混淆矩陣我個人的習(xí)慣是只要是分類任務(wù)無論是圖像分類、文本分類還是音頻分類跑了測試集之后都要畫一張混淆矩陣。不是說每個項目都要給客戶看而是你自己必須心里有數(shù)。尤其是以下幾種情況不畫混淆矩陣幾乎等于白跑測試第一類別不均衡時。就像前面舉的例子準(zhǔn)確率會被大類“帶節(jié)奏”。第二類別數(shù)量較多時比如幾十個類即使每個類別準(zhǔn)確率在大數(shù)上看起來差不多也可能存在個別類別之間系統(tǒng)性錯認(rèn)只有矩陣才能暴露這種規(guī)律。第三迭代優(yōu)化過程中。每次調(diào)完參、加完數(shù)據(jù)畫一張矩陣對比兩次的錯誤分布能直觀看出優(yōu)化是否真的有效而不是只看準(zhǔn)確率有沒有漲。第四需要向團隊或客戶匯報時。一張帶顏色深淺的混淆矩陣圖比一堆數(shù)字直觀得多。2. 動手前的準(zhǔn)備環(huán)境、模型輸出與數(shù)據(jù)格式2.1 最小可用環(huán)境清單畫混淆矩陣本身對硬件沒有任何要求CPU機器完全能跑。核心依賴就是PyTorch、scikit-learn、matplotlib如果想畫得更精致一點可以再加seaborn。我用過的幾個版本組合供參考依賴庫我常用的版本區(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)境里補裝注意不要隨意升級PyTorch版本避免影響之前訓(xùn)練好的模型權(quán)重加載。2.2 模型輸出到底長什么樣logits、概率和預(yù)測類別剛?cè)腴T的朋友最容易在這里搞混。PyTorch分類模型在全連接層之后通常輸出一個向量這個向量在進(jìn)入Softmax之前叫l(wèi)ogits維度是批量大小乘以類別數(shù)。舉例來說一個批次的輸入經(jīng)過模型后輸出形狀通常是[batch_size, num_classes]。對每個樣本來說這個向量里的值表示該樣本屬于各個類別的“原始得分”數(shù)值越大代表模型越傾向于這個類別。取最大值的索引就是預(yù)測類別。有一種常見操作是先把logits經(jīng)過Softmax轉(zhuǎn)成概率再取最大值索引。這兩者其實結(jié)果完全一致因為Softmax是單調(diào)遞增函數(shù)不會改變最大值的位置。所以如果你只是要取預(yù)測類別直接做pred torch.argmax(logits, dim1)就夠了不需要先算Softmax。但如果你想把概率值也記錄下來比如用于分析置信度那就需要先過Softmax了。2.3 拿到預(yù)測結(jié)果后先做這件事類別索引與名稱對應(yīng)關(guān)系檢查模型輸出的是索引比如數(shù)字0、1、2而不是字符串“貓”“狗”“鳥”。所以動手畫圖前先確認(rèn)索引和類別名稱的對應(yīng)關(guān)系。我遇到過不止一次訓(xùn)練時數(shù)據(jù)集是用字典映射的類別名稱在數(shù)據(jù)集類的classes屬性里導(dǎo)出模型做推理時忘了保存映射關(guān)系結(jié)果畫出來的矩陣行列全是數(shù)字根本不知道哪一行對應(yīng)哪個類別。這里給一個最小驗證片段確保測試集的類別是連續(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混淆矩陣的行列就會錯位。這一點后面還會詳細(xì)說。3. 零基礎(chǔ)到手寫實現(xiàn)混淆矩陣的兩種構(gòu)建方式3.1 方式一手寫計數(shù)徹底搞懂矩陣邏輯雖然現(xiàn)成庫一行就能搞定但我強烈建議新手先手寫一次。理解了矩陣填充邏輯后面用庫函數(shù)出現(xiàn)問題時你才有能力排查。首先準(zhǔn)備真實標(biāo)簽列表y_true和預(yù)測標(biāo)簽列表y_pred兩者必須是等長的Python列表、NumPy數(shù)組或PyTorch張量。假設(shè)有4個類別先初始化一個4乘4的全零矩陣然后遍歷每一對真實標(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個樣本3個類別 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]])解釋一下第一個樣本真實是0預(yù)測是0所以matrix[0,0]加1第二個樣本真實是1預(yù)測是2所以matrix[1,2]加1。這個邏輯非常簡單遍歷完所有樣本就得到了完整的計數(shù)矩陣。如果類別數(shù)很多用循環(huán)加法的效率不高但畫圖前統(tǒng)計測試集一般也就幾千個樣本性能完全不是問題。3.2 方式二使用適合快速統(tǒng)計的現(xiàn)成函數(shù)手寫矩陣只是教學(xué)手段實際項目里我一般直接用機器學(xué)習(xí)常用庫中現(xiàn)成的混淆矩陣統(tǒng)計函數(shù)。它省事、代碼少、不易出錯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)重點是這個labels參數(shù)。它用來指定類別索引的完整列表順序就是矩陣行列的順序。如果你的測試集某個類別恰好一個樣本都沒出現(xiàn)不傳labels的話矩陣會缺少那一行一列導(dǎo)致維度對不上。我一般在多分類任務(wù)中都會顯式傳入labelslist(range(num_classes))強制讓矩陣維度固定。如果真實標(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é)手寫因為現(xiàn)成函數(shù)幫我們省掉的是“計數(shù)”這一步但沒有幫我們理解“矩陣的含義”。在實際問題排查中你需要跟別人解釋為什么某個位置數(shù)值異常偏高這時候只有真正理解矩陣每一格的含義才能基于業(yè)務(wù)邏輯給出合理解釋。兩種方式建議這樣搭配學(xué)習(xí)和調(diào)試階段手寫理解透徹后正式代碼里用現(xiàn)成函數(shù)。還有一個細(xì)節(jié)手寫矩陣用for循環(huán)效率較低如果測試集很大比如幾萬甚至幾十萬樣本建議用torch.zeros和index_put_這類批量操作或者直接用NumPy的np.add.at。不過對常規(guī)項目來說這個復(fù)雜度根本遇不到。4. 畫出真正能用的混淆矩陣圖配色、歸一化與標(biāo)注4.1 基礎(chǔ)熱力圖讓數(shù)字變成顏色矩陣本身是數(shù)字表格直接看也能看但遠(yuǎn)不如熱力圖直觀。熱力圖的核心思想是用顏色深淺表示數(shù)值大小顏色越深數(shù)值越大。對角線越深說明分類效果越好。用seaborn畫熱力圖是我用得最多的方式因為它的heatmap函數(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在每個格子里顯示數(shù)字。fmtd因為混淆矩陣是整數(shù)計數(shù)用d表示十進(jìn)制整數(shù)格式。如果錯用了fmt.2f或者不寫可能報錯或者顯示成小數(shù)。cmapBlues藍(lán)色漸變顏色越深數(shù)值越大這是論文里最常見的配色。xticklabels和yticklabels傳入類別名稱列表讓坐標(biāo)軸顯示可讀的名稱而不是數(shù)字索引。cbarFalse我比較喜歡關(guān)掉右側(cè)的顏色條因為它只表示顏色深淺對應(yīng)數(shù)值大小但每個格子已經(jīng)標(biāo)了數(shù)字顏色條的信息量有限還占空間。如果對顏色對比敏感可以保留。4.2 歸一化從計數(shù)到比例的轉(zhuǎn)換原始計數(shù)矩陣有個問題如果每個類別的樣本數(shù)不同深色的格子分布會失真。例如類別0有1000個測試樣本類別1只有100個即使兩者的識別率都是80%類別0對應(yīng)的對角線格子數(shù)值是800顏色會非常深類別1只有80看起來很淺給人造成“類別1表現(xiàn)很差”的錯覺。解決方法是按行歸一化歸一化后每個格子的值表示“該行真實類別中有多少比例的樣本被預(yù)測到了這一列”。歸一化矩陣的計算方法把每一行的所有值除以該行的總和。在scikit-learn中可以直接指定normalizetruecm_normalized confusion_matrix(y_true, y_pred, labelslist(range(num_classes)), normalizetrue)在seaborn繪制時我通常這樣處理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ù)量二是按行歸一化的比例矩陣用來比較不同類別之間的表現(xiàn)。可參考的展示方案是先打印原始計數(shù)矩陣再打印歸一化矩陣圖里選一種呈現(xiàn)。4.3 坐標(biāo)軸字體、標(biāo)題和圖像導(dǎo)出細(xì)節(jié)可視化不只是把圖畫出來還要考慮最終使用場景。如果圖是要放進(jìn)論文、技術(shù)報告或PPT里的要注意以下幾點。首先類別名稱如果比較長比如“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個類別格子很小數(shù)字會擠在一起。這時候要么調(diào)大figsize要么調(diào)小字體sns.set(font_scale1.2) # 全局放大字體 # 或者單獨控制 annot 字體大小 sns.heatmap(..., annot_kws{size: 10})最后是導(dǎo)出格式。我會優(yōu)先導(dǎo)出一個矢量圖加一個位圖。矢量圖用PDF或SVG用于論文或報告縮放不失真位圖用PNGdpi300以上用于網(wǎng)頁展示或微信群聊。示例代碼plt.savefig(confusion_matrix.pdf, formatpdf, bbox_inchestight) plt.savefig(confusion_matrix.png, formatpng, dpi300, bbox_inchestight)bbox_inchestight會自動裁剪圖片邊緣空白保證整張圖緊湊這一步我?guī)缀趺看味紩印?. 驗證集、測試集和全量推理數(shù)據(jù)到底用哪一份5.1 三份數(shù)據(jù)的分工不少初學(xué)者會把訓(xùn)練過程中打印的驗證集準(zhǔn)確率對應(yīng)的混淆矩陣當(dāng)作最終結(jié)果這其實不太嚴(yán)謹(jǐn)。驗證集的作用是調(diào)參和選模型它參與了你對超參數(shù)的選擇過程所以用它評估模型會略微偏樂觀。真正用于最終性能報告的應(yīng)該是測試集也就是訓(xùn)練過程中從未參與梯度更新和模型選擇的樣本。如果連測試集你也反復(fù)用來做決策它也會慢慢“污染”。所以我的習(xí)慣是訓(xùn)練過程中的混淆矩陣用驗證集畫用于觀察每個epoch有沒有個別類別開始嚴(yán)重錯認(rèn)最終匯報和論文里的混淆矩陣用測試集畫用于說明模型的真實泛化能力。5.2 推理時別用模型本身的Dropout和BatchNorm坑在PyTorch中如果模型處于訓(xùn)練模式model.train()Dropout和BatchNorm的行為與推理模式不同。畫混淆矩陣時必須把模型切換到評估模式model.eval() with torch.no_grad(): outputs model(batch_data) preds torch.argmax(outputs, dim1)如果不加torch.no_grad()推理過程會構(gòu)建計算圖不僅占用大量顯存速度也慢畫個混淆矩陣把顯卡顯存跑爆就尷尬了。model.eval()則能保證BatchNorm使用訓(xùn)練階段統(tǒng)計的均值和方差Dropout關(guān)閉這樣推理結(jié)果才穩(wěn)定可控。有一次我忘了加model.eval()連續(xù)跑兩次同一條測試數(shù)據(jù)得出的預(yù)測結(jié)果不一樣嚇了自己一跳最后排查發(fā)現(xiàn)是Dropout在作怪。5.3 數(shù)據(jù)順序打亂對矩陣沒有影響但對可視化有影響混淆矩陣本質(zhì)上是對所有樣本計數(shù)的匯總不關(guān)心樣本順序。所以DataLoader里是否shuffleTrue不影響矩陣結(jié)果。但要注意如果你同時還想輸出“哪些具體樣本被分錯了”以便人工檢查錯誤案例那就必須記錄樣本路徑或ID而不能只記預(yù)測結(jié)果。順序一旦打亂你只知道有幾個樣本被錯認(rèn)卻不知道具體是哪幾張圖。我通常會在推理時把樣本的路徑和預(yù)測結(jié)果一起記錄下來便于后續(xù)人工核對。這步在圖像分類里特別重要因為矩陣只能告訴你錯誤數(shù)量不能告訴你錯誤原因。6. 從矩陣到洞察進(jìn)階分析與實戰(zhàn)技巧6.1 發(fā)現(xiàn)系統(tǒng)性錯誤相鄰類別的強烈混淆混淆矩陣一個特別有用的場景是發(fā)現(xiàn)“系統(tǒng)性錯認(rèn)”。比如在植物葉片分類中兩種外觀極其相似的病害類型常常互相混淆矩陣?yán)飼吹絻蓚€對稱的非對角線位置數(shù)值都很高。這說明模型并沒有學(xué)會區(qū)分它們本質(zhì)上是特征表達(dá)不夠或者兩類樣本之間的差異確實微小。發(fā)現(xiàn)這種規(guī)律后我的處理步驟通常是這樣先統(tǒng)計這兩個類別的樣本量確認(rèn)是否不平衡然后檢查訓(xùn)練數(shù)據(jù)里這兩個類別的圖像是否采集條件差異很大比如光照、角度再考慮是否需要對這兩類做特征可視化比如用梯度加權(quán)類激活映射看模型關(guān)注區(qū)域是否有問題。6.2 類別不平衡如何讓矩陣“說謊”歸一化矩陣能解決一部分“比較”問題但解決不了根本問題樣本量太少的類別即使歸一化后準(zhǔn)確率看著還行實際可信度也不高。比如某個類別只有10個測試樣本哪怕只有1個被分錯歸一化后準(zhǔn)確率就只有90%而另一個類別有1000個樣本50個分錯準(zhǔn)確率是95%。單看這兩個數(shù)字好像后者更好但樣本量差異導(dǎo)致前者的置信區(qū)間大得多。這種情況下我建議在矩陣圖下方額外標(biāo)注每個類別的測試樣本數(shù)。代碼上可以準(zhǔn)備一個樣本數(shù)列表用plt.text在對應(yīng)的列下方標(biāo)注或者干脆在類別名稱里帶上樣本量比如“類別A (n100)”。6.3 結(jié)合分類報告一起打包輸出混淆矩陣是基礎(chǔ)但給別人看的時候通常不能只甩一張矩陣圖。我在項目匯報時一般會同時輸出一份分類報告包含每個類別的精確率、召回率、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)這段代碼會輸出一個表格每個類一行最后一行為加權(quán)平均。配合矩陣圖放在結(jié)果部分信息量完全夠用。6.4 多標(biāo)簽任務(wù)不是這個畫法這里要特別提醒一句本文討論的是單標(biāo)簽多分類任務(wù)每個樣本只能屬于一個類別。如果你做的是多標(biāo)簽任務(wù)比如一張圖同時包含“貓”和“狗”那混淆矩陣的畫法就完全不同了需要按標(biāo)簽維度單獨畫或者使用多標(biāo)簽專用的評估指標(biāo)。矩陣的行列在這里就對應(yīng)不上不要混淆。7. 常見問題與排查思路實錄7.1 畫圖時報錯“size mismatch”最常見的錯誤之一。原因通常是類別數(shù)對不上比如模型輸出10類但labels列表只給了8個或者測試集里某些類別缺失。排查順序先打印model最后一層輸出維度再打印訓(xùn)練時保存的類別映射然后打印len(np.unique(y_true))逐項核對。7.2 歸一化矩陣?yán)锍霈F(xiàn)NaN這類問題一般發(fā)生在某個行和為0的情況下也就是某個類別一個測試樣本都沒有。因為分母為0除法結(jié)果變成NaN。解決方法是先檢查類別分布確保每個類別都有測試樣本如果確實沒有這一行就不該出現(xiàn)在矩陣?yán)镄枰獜膌abels里去掉該類別或者在計算時加一個極小值防止除零。7.3 圖片上中文類別名稱顯示成方塊matplotlib默認(rèn)字體不支持中文直接寫中文標(biāo)簽會變成一個個方框。解決方法有兩個一是直接用英文類別名最省事二是給matplotlib設(shè)置中文字體。代碼片段plt.rcParams[font.sans-serif] [SimHei] # 或 [Microsoft YaHei] plt.rcParams[axes.unicode_minus] False需要注意Linux服務(wù)器上可能沒有SimHei可以改用DejaVu Sans配合英文標(biāo)簽。如果是長期做中文項目我建議從始至終統(tǒng)一使用英文類別名加一份映射字典避免字體問題的困擾。7.4 GPU顯存不足的坑推理整個測試集時如果一次性把全部數(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 分類報告和矩陣對不上這個問題的根源往往是y_true和y_pred的來源不一致。比如y_true來自測試集的原始標(biāo)簽而y_pred來自某個評測階段的輸出文件兩者順序沒有對齊。排查方法是對比前幾個樣本的路徑和預(yù)測結(jié)果確認(rèn)是否一一對應(yīng)。我自己的經(jīng)驗是永遠(yuǎn)在同一個推理循環(huán)里同時收集真實標(biāo)簽和預(yù)測標(biāo)簽不要分開跑兩次再合并。8. 我常用的一個完整可交付模板最后分享一個我自己項目里常用的模板代碼整體打包可直接復(fù)制修改。它做了三件事推理并收集標(biāo)簽、計算原始和歸一化矩陣、繪制并導(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這個函數(shù)會把歸一化和原始計數(shù)矩陣并排畫在同一張圖里一次導(dǎo)出兩種視圖。傳給它的test_loader不需要shuffleclass_names從dataset.classes里提取。我自己做項目時會把保存的PDF圖直接放進(jìn)技術(shù)報告里PNG圖放到文檔中省去重新繪制的麻煩。用下來這么久我覺得混淆矩陣這個工具比想象中更“耐看”。每次訓(xùn)練完新模型我都會把它當(dāng)作一個標(biāo)準(zhǔn)動作和打印準(zhǔn)確率一樣自然。有時候矩陣看起來結(jié)果不理想反而能逼著我去找數(shù)據(jù)里的問題這比模型調(diào)參本身更有價值。希望這套流程能幫你省掉一些自己摸索的時間。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久国产成人精品国产成人亚洲| 1769一区| 9久9久| 午夜久久一区二区无码中出| 日本黄色大片一级视频免费麻豆| 久久爱超碰网| 亚洲第2页| 99精品久久久久久| 国产精品99久久久www| 精品无码久久久久| 国产18精品亚洲精品| 精品白丝一区| 婷婷日韩一区二区三区中文字幕在线| 在线日韩日本亚洲国产| 91天天爱| 国产久久久9999| 久久久久成人亚洲国产| 99夜夜操| 蜜桃视频一区二区三区| 国产精品对白内射| 欧美久久九九| 久久久免费高清中文视频| 九九热久久99精品re| 久久久九九| 夜夜精品视频一区二区| 欧美亚男人的天堂| 影音先锋视频在线| 操国产高清| 日本三级韩国三级美三级91| 天天操夜夜操| 日韩一级片在线看| 极品尤物自安慰| 中文字幕丝袜| 亚洲999综合| 久久蜜桃综合网| 大色综合网| 91东京热男人的天堂| 男人天堂最新手机版在线青青草| 97干色天堂| 国产a级午夜毛片| 国内精品a| 亚洲国产美女久久久久| 免费视频观看60秒| 国产亚洲日本| 欧美少妇第一页| 狠狠久久四虎| 韩日精品四区| 人成午夜免费大片| 丁香六月婷| 74成人在线| 热无码中文亚洲H一道本一区二区| 人妻精品一区二区| 欧美后入式| 噜噜瑟| 天天摸夜夜操视频| 伊香蕉综合久久久久久久噜噜噜 | 国产久久男人天堂| 日本在线999| 日本中文字幕一区| 天天操美美| 劲爆欧美人妖三区91| 美女诱惑在线一区| 九九九九精品视频| 国产剧情在线| 97中文热色| 青娱乐福利99| 人人操人人摸人人看人人干| 日亚韩精品视频二区三| 欧美国产日韩清纯唯美| 狠狠爱夜夜| 人人操我人人干| 东北丰满熟女国产一区| 久久9精品视频| 怡春苑东京热| 丰满丝袜少妇AV| 天天在线91| 91在线欧美| 青青五月天| 国产成人在线观看网址| 精品国产乱码久久久兰草影视| 天天综合网合集91| 天天久久| 天天干美少妇一区| 色777999综合| 国产精品 久久久精品一牛| 艹少妇网站| 一品道视频一区二区三区| 久久无码成人| 中文字幕日韩专区精品系列 | 成人5码视频| 国产JDAV无码视频在线观看| 97超碰欧美中文字幕| 亚洲女人91| 日本操逼视频不卡直接放| 性爱av在线免费观看| 亚洲色欲一区二区三区| 欧洲天天在线| 亚洲欧美性生活| 精品无人区麻豆乱码1区2区图片| 国语国产操逼伊人AV网| 日本黄页视频在线观看| 国产中文字幕在线点播| 婷婷尹人大香蕉免费| 熟妇无码视频三区| 波多野结衣一级视频| 成人亚欧免费视频| 91成人在线| 性性久久| 激情天天视频| 欧美日韩另类字幕中文| 国产一区二区三区免费视频在性观看 | 中文字幕丰满子伦无码专区在线视频最新| 婷婷五月天补不补| 密臀视频三区免费网站| 五月婷婷久久综合| 久久久久久大| 屁股久久久久久久| 五月丁香网站| 一本色道久久综合精品婷婷| 自偷自拍的亚洲视频| 国产欧美美女免费观看视频| 国产无码三级视频在线观看| 草蕉影视亚洲无码| 草草影院日本第一页| 97色伦欧美| 3P丝袜熟女 色综合| 少妇xx精品| 日韩少妇在线视频| 激情五月综合| 中文字幕精品探花视频| 99r九九| 国产精品不卡高清在线观看| 欧美亚洲高清不卡| 超碰成人免费| 亚洲男人综合网| 国产精品无码av在线 | 国产精品久久久久久久无码AV| 约操熟妇| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 精品视频97| 欧美精品一区二区少妇免费A片 | 男人天堂黄片| 97ai亚洲| 一区| 日本一级真人黄色性爱视频| 肉丝网站91| 久久精品国产AV一区二区三区| 婷婷五月天久久精品视频一区二区三区| 女人久久久| 欧美精品91| 国模无码一区二区三区在线| 久久精品电影在线| 亚洲综合校园春色| 大香樵伊人网| 精品少妇人妻av久久免费| 伊人久久亚洲色欲综合网站 | 日本 成 人 小说 电影 一区二区| 综合 亚洲 欧美| 在线v中文字幕一区二区三区| 欧中日成人免费影视| 强奸乱伦免费网站| 久久久久久久久九九久孕交| 手机看av网站在线看| 久久久性爱| 蜜桃久久久久久久| 大奶啊啊好爽| 凹凸精品熟女在线观看| 色综合一区二区三巨| 麻豆视频国产一区二区| 97 国产精品| 暖暖精品二区三区观看| 探花精品视频| 亚洲1区2区三区高清中文字幕| 加勒比综合88| 日本免费一区二区不卡| 久悠悠av| 亚洲av无码成人精品国产| 老外又粗又长一晚做五次| 久久久精品九| 97欧美色资源| 久久大香蕉手机高清视频| 久久精品国产亚洲AV清纯| 不卡六六在线91| 九九九久千久久激情蜜桃在线看 | 六月激情网| 久久国产性爱| 十八禁视频一区二区| 欧美96交| 天天草AV| 伦在线97| 99re在线观看| 91骚妇| 欧中日成人免费影视| 久久婷婷五月天| 欧美aaaaaaa| 78m啪啪啪| 人人爽夜夜玩视频| 18禁久极品美女久久哦哟呀!| 久久女人视频| 天天亚洲综合| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 久久久久久免费电影| 夜夜高潮夜夜爽高清视频一| 久jiu久神马影院| 久/久精品99看9| 欧美日韩91| 五月色网| 麻豆久久久一区二区| 手机看片1024你懂的国产| 性久久| 超碰国产精品久| 91丨豆花丨熟女| A片大香蕉在线| 肏逼福利网站| 不卡中文字幕aⅴ在线| 校园春色综合网| 立川理惠被中出无码| 夜夜嗨视频| 午夜啪| 偷拍 欧美 日韩| 欧美日韩午夜精品一区二区三区| 日本十八禁免费看污网站| 中文字幕人妻资源在线| 中文字幕一区二区日韩网| 性久久久| 国产精品色片一区二区| 97色色婷婷| 嗯嗯啊在线视频| 性色高清在线| 熟女网站最新| 中文字幕色AV| 超碰97人妻在线| 综合性视频99| 男人天堂2017| 国产中文精品一区二区在线观看| 八人操人人摸人人看| 日韩精品中文字幕二区| 嗯啊不要啊啊在线观看视频| 嗯嗯啊啊好疼| 色99久草| 亚洲αv一区二区三区| 视频分类 国内精品| 五月天综合网| 亚洲色悠悠久久88| 抽插亚洲无码| 一区二区视频在线播放| 无码在线亚洲| 不卡啪啪视频| 台湾佬中文娱乐自偷自拍| 大香蕉在线视频重口味毛片在线| 美女久久久久久久| 久九九九九九九九热| 国产精品99999| 国产传媒操逼视频| 国产精品情侣啪啪| 国产sv美女内射| 日本成人免费一区二区三区| 91精品丝袜在线观看| 精品人人| 亚洲女优有码无码高清| 亚洲婷婷丁香在线| 极品色www影院| 麻豆天美国美国产| 春色综合免费| 最新三级网址| 精品大久久| 熟妇人妻一二三区免费| 亚洲精品国产无码高清| 极品五月天噜噜| 激情四射婷婷六月天| 日韩成人无码| 六月色婷婷| 欧美论理片| 立川理惠被中出无码| www超碰| 精品妇操一区二区三区| 1人人看人人摸人人操| 大香蕉亚洲中文| 日日嗨AV一区二区夜夜| 欧美,日韩综合久久| 国产自产91区13区| 97狠狠| 六月色色| 超碰久超碰久| 五月丁香六月婷综合成人综合| 亚州 综合 色图| 亚洲伊人久久综合97| 99亚洲精品| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 另类亚洲图色| 国产精品福利资源在线尤物| 久久久久久久 九九九九九九九| 97久久超碰国产精品| 黄色性爱网网| 偷窥自拍亚洲| 欧美色图天堂在线| 超碰人妻97| 久热免费视频| 老熟女网站| 久久久久13| 欧美色院| 夜夜操av亚洲一区二区| 韩国黄片aaaa| 国产精品一区二区麻豆| 国产成人+综合亚洲+天堂| 懂色AV网| 97超碰无码网| 欧美操逼熟女| 久久精品噜噜噜成人看免欧美大片| 岛国在线一区二区三区| 大香交| 五月天社区| 亚洲成人贴图| 亚洲国产精品久久久男人的天堂| 伊人久久大香线蕉无码| 欧美一二级| 99爱在线视频| 13小男生GAY自慰脱裤子| 青青草手机在线免费观看| 天天懆天天日| 精品人妻伦一区二区三区久久| 国产AV高清AV无码| 亚洲色婷婷久久91| 亚洲精品1区| 欧美黄色大香蕉一区二区| 校园春色 亚洲| 日韩在线女优天天干| 国产精品久久久久久久AV大片 | 国产操逼视频在线观看| 亚洲一区二区中文字幕| 日韩伦理视频| 日韩亚洲Av人人夜夜澡人人爽| 另类欧美综合| 青草香蕉网| 日韩AC| 天天射日日干| 天天草AV| 欧美激情视频一区二区三区不卡| 成人激情无码在线视频| 亚洲日本成人动漫| 精品v日韩欧美国产| 欧美日韩亚洲天堂| 欧美大干日韩| 欧美大香蕉97| 亚洲色吧网| 九九久久一区二区伦理| 97干97色| AV中文字幕三四五| 超碰到97情色| 欧美日韩亚洲高清不卡一区二区三区| 天天视频综合在线观看视频| 国产一区免费午夜视频| 麻豆国产97在线| 国产精品白丝AV| 大香蕉啪啪啪啪在线| 婷婷五月在线视频| 亚洲女毛多水多21P| 中文字幕99999| 97色欧洲| 区自美91| 91热色| 日逼五月天| 韩国一区二区精品亚洲| 九九久久精品| 久精品无码av一区二免费国产在线观看| 一区在线精品中文字幕| juliaann丝袜| 99rre在线精品99re8| 97一本大道亚洲一区| 日本天堂网| 日韩国语字幕| 欧美1727免费观看视频| 五月丁香色综合| 国产乱伦一二三区| 日韩免费性爱视频在线观看| 国产宅男宅女在线观看| 精品国模无码| 在线播放一级无码视频| 国产又色又爽又舒服的三级视频| 男人的天堂com| 盗摄 精品 另类 一区| 人人操,人人液| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 99久在线精品99re8蜜桃| 操操吧亚洲乱伦视频| 91人妻Pr| 欧美人妻色| 91视频综合| 亚洲成成熟女人综合一区二区| 超碰久久网| 亚洲第一色页夜| 免费9 1久久| 男女激情中文字幕| 亚洲三级网址久久最新| 亚洲瓯美色图| 大香蕉色欲AV| 美国三级日本三级久久99| 强奸熟女一区二区三区| 四虎在线免费视频| 久久久久女教师免费一区| 天天影视综合色| 色香av| 亚州男人天堂| 婷婷色色五月天福利| 亚洲国产成人精品久久久国产成人一区二区| 91精品人妻一区二区三区蜜桃| 久久久久久久久久久久97| 91精品人妻一区二区三区蜜桃| 激情欧美97| 蜜乳中文字幕a在线| 国产二区三区免费视频| 日韩欧美中文| 9久超碰| 人妻美腿丝袜制服诱惑综合天堂-| 亚洲欧洲精品成人| 97天天插| 久久老女人| 国产又黄又粗的视频| 性色生活片久久毛片婬片免费放女人一级毛片 | 欧美性爱第一区| 自拍偷拍 高清无码| 色人久久| 日韩啪啪啪视频| 97在线欧| 日韩av免费一级电影| 国产精选三级在线观看| 97资源超碰| 久久视频,这里只有精品 | 国产精品自在自拍视频| 少妇蜜汁| 国产尤物在线三区| 日本精品中文字幕视频| 日韩婷婷| 无码人妻精品一区二区三区九九| 91精品久久久久| 网站A V在线| 国产又粗又长又爽又色| 极品AV网站在线观看| 99热在线播放| 无码自拍SM| 伊人991| 家庭乱伦麻豆| 五月天精品| 超碰97亚洲区| 搡老熟女免费视频| 色五月婷婷中文字幕| 男插女青青影院| 国产路线专区| 日韩乱插| 啊啊啊 在线| 中文字幕在线观看永久| www.操| 欧美日韩小说| 日本熟妇人妻中出视频| 嗯嗯啊好大| 国产91福利小视频在线观看| 婷婷精品视频| 久久久久久少妇| 亚洲 小说 欧美 激情 另类| 青青草在线成人视频| 亚洲天堂另类| 亚洲成人免费电影| 蜜臀久久99精品久久久久电影| 日婷婷| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 久久久性爱视频| 张柏芝国产一区在线观看| 丁香久久| 97综合在线| 日本超碰在线国产一区| 热99这里有精品综合久久 | 亚洲官网在线| 伊人专区一区二区三区| 区一在线观看| 久热影视| 91n免费处女| 亚洲日韩美国人妻| 日韩人妻精品| 亚洲一区日韩| 大香蕉中文201| 九九碰九九爱97| 久久久精选| 欧美性爱97超碰| 黑人娇小av在线播放 | 丰满人妻一区二区三区性色| 欧美少妇高潮久久91| 二男一女成人A片| 欧美91久久久久| 3d成人精品一区二区| 少妇精品久久久八区九区| 国产精品香蕉热久久新品| 日本高清一本二本免费不卡| 第一高清av中文字幕| 日韩久射综合| 亚洲男人天堂2012| 国语国产操逼伊人AV网| 久9综合在线| 九九热视频在线观看| 欧美亚洲情色| 天天射夜夜| 久操不卡视频| 中文字幕一区二区视频在线观看| 久久久久久9999| 天天色播亚洲综合网站| 中文字幕三四五区| 一牛一区二区三区久久| 蜜乳av首页| 蜜臀一区二区三区在线| 国产偷人妻精品一区二区在线| 大香蕉免费乱伦视频| 欧洲亚洲人妻无码高清久久三区四区| 中文有码第五页| 欧美少妇性爱网站| 懂色Av| 色哟哟精品1精品2| 亚洲男人的天堂一区二区| 色色福利| 国产无码精品久久久久久| 小骚逼被操的爽不爽| 亚洲人妻一区二区三区| 精品国产91av一区二区三区| 超碰色图| 夜夜嗨免费视频| 日日日啊啊啊| 伊人99热| 欧美黑人精品一区二区| 日本不卡一区| 人妻娇喘 激情视频| 噜噜噜久久亚洲精品色情| 五月天婷婷综合网| 韩国午夜理伦三级好看| 男人的天堂 在线一区| 天天操天天插| 婷婷中文网| 天天综合亚洲综合| 国内一级精品| 伊人色综合欧美| 艾草av| 亚洲综合五月天| 国产精品一区二区亚洲人成毛片| 天天干18禁| 伊人久久亚洲色欲综合网站 | 丁香九月激情| 欧亚乱色熟女一区二区| 国产美女在线精品免费看| 久久噜噜噜精品国产亚洲综合| 精品无人区麻豆乱码久久久| 超碰97起碰| 插日本熟女视频| 亚洲伊人a线观看视频| 亚洲综合97| 亚洲一区二区av| 91精品免费| 极品内射| 亚洲日产专区婷婷| 国产精品熟女九九九| 日本久久久久久久久| 26uuu国产| 国内精品伊人久久久久影院会| 日本操大逼| 国产午夜在线观看视频| 国产精品人妻无码久久久老鸭窝| 9久久久久| 久久9精品| 蜜臀久久99精品久久久久久酒店| 91精品操美女| 欧美黑人168页欧美黑人167| 亚洲精品黑丝| 九九免费影片| 欧美激情亚洲情色| 91天堂丝袜美腿| 亚洲欧美天| 日韩人妻无码不卡网站| 3P丝袜熟女 色综合| 91热色| 欧美一级二级三级| 91殴美| 人妻第一页| 欧日韩一二三f区| 天堂av最新电影网| 欧美色亚洲| 2020天天色综合| 大香蕉懂9| 屁股久久久久久久久| 91精品人妻啪啪间| 91狠狠狠| 亚洲情欲| 美女尤物人人操| 日操粉逼逼| 无码日韩网站| 婷婷香蕉欧美在线一区二区三区| 啊啊啊用力在线观看| 国产成人主播| 亚洲精品乱码久久久久久蜜桃麻豆| 日韩青久久| 最近二区三区视频大全| 日韩免费福利在线观看| 人人操人人插人人摸人人干| 在线中文字幕极品av| 婷婷天堂站| 日韩一999精品| 免费成人在线熟妇网| 人妻天堂网| 日欧操屄| 乱色视频中文字幕| 国产丰满熟夫69mpp| 国产97综合| 亚洲不卡三级手机播放| 国产福利在线视频网站| 色丁香五月婷婷| 久久久婷婷| 欧美人妖内射| 欧美视频一区二区在线| 久久草草欧美精品| 欧美精品久久| 日韩免费在线观看不卡| 无码日韩网站| 性色av一区二区| 啊啊啊啊免费视频| 福利操逼| 高树玛利亚无码流出| 区自美91| ..日韩av毛片精品久久久| 五月天激情小说| 99re在线观看| 日韩啪啪视频| 探花一区在线| 国产第二页| 男啪女色黄无遮挡免费观看| 天天摸,夜夜摸| 性欧美精| 国内精品久久人妻性色av| 久久精品人体AV| 欧美精品三区| 日本1区2区不卡视频| 丝袜美腿诱惑亚洲欧美视频在线观看| 久久久精品九| 精品欧美А∨无码黑人大荫蒂 | 91四海无码日韩欧美| 国产亚洲欧美每日在线| 狠狠操狠狠插| 欧美丝袜中文字幕07在线| 韩日性爱av| 欧亚日韩三区| 欧美亚洲自拍另类人妻| 91 丝袜在线| 好爽视频在线观看| 久久露脸国产老熟女| 国产久久男人天堂| 美国aaaaa一级黄片| 国产精品suv一区| 中国农村熟妇毛片视频| 一区二区三区男女操逼黄色小电影| 男人综合网| 久99热| 91n处女在线观看| 伊人五月天激情| 亚洲97网站| 欧日a| 在线天堂资源亚洲| 99久久综合| 凹凸精品熟女在线观看| 欧美性猛交美女自慰91| 色香天天| 日韩二三区| 久久东京热久久| 五月婷婷六月色| 亚洲少妇视频| 欧美黄片欧美黄片xxx| 日本五区不卡| 乱色视频中文字幕| 少妇综合| 黑人天8A∨高清网站| 伊人久久综合影院| 欧亚揄拍偷拍精品视频| 久热99| 亚洲高清综合网| 亚洲成人免费电影| 男女做爰猛烈动高潮A片免费应用| 你操综合| 午夜AV人气不卡| 色综合1991| 强奸乱伦亚洲第一页| 青青草国产一区二区三区| 亚洲AV永久无码一区仙野| 天天干嫩逼网| 欧美一区二区日韩传媒搭讪精品| 欧美性爱www免费版| 激情文学亚洲| 夜夜操天天肏| 操逼操逼视频操逼| 91精品久久久久| 色鬼在线综合| 国产白嫩漂亮KTV在线| www.男人的天堂| 亚洲精品天天影视综合网 | 久久精品国产亚洲AV片多多| 久久春色| 亚洲91大片| 欧美第一页性| 操逼不卡中文字幕| 欧美亚洲中文| 日本高清加勒比| 久久99午夜精品一区人妻| 国产福利合集| 亚洲在钱| 综合97亚洲| 人妻熟女字幕一区二区| 久久久久久国产无码精品| 久久久久白虎| 久久亚州大香蕉| 久久久久久久久久久久久久久性生活视频| 99久久久无码国产精品性啊聊| 欧美激情精品久久久| 九九热精品免费视频| 国产18精品亚洲精品| 91一区二区三区蜜桃| 久热这里只有精品9| 97色97好| 东京太热久久久| 日逼国产| 先锋女优在线观看视频| 插B在线观看| AV在线资源| 欧美色997| 99在线精品视频| 新版天堂中文资源8在线| 免费中文综合精品| 91欧美大片| av天堂加勒比| 中文字幕第二页| 秋霞鲁丝午夜无码一区二区三| 亚洲欧美综合色| 色婷婷五月天| 六十路日本| 久操热线| 亚洲Av无码成人精品国产| 亚洲无码免费看| 黄色香蕉视频网站一区| 一区二区乱码福利| 91综合熟女| 精品视频一二三中文| 99草精| 夜夜久久久| 中文日韩欧美熟| 99999这里都精品| 一级黄碟在线看| 欧洲无码一区二区| 免费视频无码| 99久久9| 中文字幕日韩综合| 五月天婷婷成人网| 亚洲天堂人妻一区二区| 日韩有码免费视频| 久久久工口| 97精品一二区| 久久九七| 97天天弄| 国产乱码久久久| 青青操日韩| 97网色| 夫妻天天操岛国视频| 国产一级高清免费观看| 国产深夜福利| 久热在线精品免费观看| 激情抓乳插进去啪啪啪日韩| 日日夜夜精品视频| 国产美女自拍AV| 可以在线观看的黄色网址| 亚洲砖码砖专无区2023| 国产精品久久伊人| 国产在线76页| 91欧美成人色站| 蜜臀久久精品久久久久视频| 四虎免费视频| 亚洲精品九九九| 欧差乱伦二三| 黄色网址在线免费观看| 国产福利精品最新在线| 美女露胸露尿口| 色狠人在线99| 中文字幕第7页| 国产精品欧美在线观看| 国产精品人妻熟女aⅴ| 91三级理论片播放器| 国产11页| 亚洲美女 晚间男人天堂| 久久激情视频| 中文字幕精品探花视频| 亚洲日韩美女中文字幕乱| 久久精品色欧美aⅴ一区二区| 亚洲人妻av| 歐美一級亂黃99在綫精品| 老女人老91妇女老热女| 强乱老妇中文字幕| 亚洲欧洲成人在线电影| 国产网站在线播放| 欧美亚洲综合色| 成人欧美日超碰| 最新日本中文字幕| 人妻精品一区二区在线| 草伊人高潮喷水超碰| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 2020中文字幕在线| 俺去啦俺来也久久综合| 人妻熟女av国产网站| 91精品丝袜久久久久久无码人妻| 91精品久久久久久| 福利社区午夜一区二区| 精品一区二区三区蜜桃臀赵总 | 欧美资源| 另类天堂| 夜夜操中文字幕| 日韩精品资源专区二区| 婷婷中文字幕| 职场同事知名国产国产精品久久欧美日韩 | 超碰 欧美| 欧美日韩电影成人在线| 亚洲骚女一区二区三区| 亚洲影视第一页| www.伪伪| 麻豆九九九| 婷婷伊人五月| 欧美色色色| 丝袜美腿91| 91在线视频免费播放| 国产SV一线| 久久久久久九九九| 色欧美天天| 欧美综合亚洲| 久草大| 亚洲文学偷乱拍啪啪啪啪| 超97在线精品视频| WWW.加勒比人妻一区不卡.com| 久久狠狠色噜噜狠狠狠狠97| 五月激情影院| 人妻精品一区二区三区| 国产一区二区三区视频在线看| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 丝袜六区| 亚州性色| sss视频华人在线| 日韩精品人妻| 97一区二区蜜臀| 欧美激情综合| 动漫片子网站3黄| 欧美99999| 天天弄欧美| 91精品无码久久久久久久| 蜜桃精品一区二区三区ww| 亚洲国产97| 欧美中文字幕男人天堂久久精品 | 屁股久久久久久| 爱爱60秒免费视频| 韩国免费播放一级毛片| 成人熟女视频一区二区三区| 亚洲精品国产专区在线观看| 中文字幕免费观看| 综合一区二区影视| 爱做久久久久久| 91在线国产后入风骚翘臀美女素人| 中文字幕亚洲在线一区| 黄页网站成人免费| 97日本超碰综合| 亚洲一区二区在线观看91| 99re6国产精品99re在线| 久久性爱视频免费看| 歐美性天天| 欧美成人性爱视频免费观看| 亚洲第一视频 欧美风情 日韩| 亚洲九九夜夜| 亚洲麻豆av一区二区| 青青草原综合久久大伊人精品| 欧美aa一级片| 亚洲好色人妻| 99.色网| 性爱视频啪啪啪啪| 91超碰在线观看| 欧美亚洲丝袜人妻制服99| 精品蜜乳AV免费观看| 国产 大胆 对白| A 天堂在线观看视频| 久久男人的天堂| 亚洲永久永久永久永久一级一级一级精品 | 久久美女福利是上海美女| 2017天天插| 中文字幕片| 成人黑料社久久| 欧美最婬乱婬爆婬牲视频| 东北黄色电影| 无遮挡猛进视频免费无限观看 | 色一射色一射| 金莲网址| 中国人高清www色视频免费| 91美女在线看| 99激情| 色五天伊人| 日本不卡在线二区三区| 色眯眯av| 啊啊啊啊啊啊啊国| 人妻熟女字幕一区二区| 操逼无毒无码免费视频| 国产精品一二三在线看| 97干在线视频| 伊人久久亚洲色欲综合网站| 日韩欧美福利视频看看| 蜜臀操逼黄色视频操的好爽| 操逼操网| 亚洲国产奇米影视久久| 自拍偷拍亚洲熟女妇人精品| 男人天堂网手机版婷婷| 搡老女人老91妇女老熟女| 亚洲欧洲中文日韩女优乱码| 日本在线激情一区二区三区| 亚洲一区二区三区久久 亚洲一区二区| 黄页大片在线观看| 91bbbbbb| 国产精品岛国片在线观看| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 麻豆天美AV传媒第一页| 久久AV无码AV| 亚洲少妇色| 色网亚洲人| 男女激情黄色网址| 好爽要喷了| 亚洲制服欧美另类内射| 超碰97在线中文| 国产午夜在线观看视频| 亚洲影院小综合| 白丝jkav| 日本一级性爱| 97伊人| 女优免费一区二区永久| 亚洲色图 欧美| 亚洲三级网址久久最新| 伊人五月天婷婷| 91久久久老司机| aaa一级黄片| 四虎免费在线观看| 国精综合一二三区影视| a级成人毛片免费视频高清| 亚洲色图第一页| 九九Av| 夜夜骑夜夜操| 97视频播放| 女优视频第10页| 999久久久免费精品国产牛牛| 麻豆2区1区天美| 性色av网站| 精品传媒在线一区| 色婷婷久久综合超碰| 这里只有精品视频| 亚洲国产一区二区入口| 午夜噜噜噜| 午夜呻吟欧美| 国产精品秘 福利姬在线观看| 欧洲成人性爱视频| 欧美日韩97| 亚洲图片欧美偷拍| 日本顶级天天操狠狠操夜夜操中文字幕| 天美精品av| 五月丁香综合啪啪| 国产日韩在线播放| 日日插夜夜| 一区二区不卡免费| 走光一区92下载| 美女AV一区二区| 97高清啪啪| 久久男女激情视频网站| 伊人操你| 成人无遮挡毛片免费看| 精品蜜乳AV免费观看| 九热中文字幕| 久久精品 六十路 熟女 欧美| 少妇熟女视频一区二区三区| 天天色踪合| 蜜桃一区二区三区| 综合天天。| 亚洲欧美变态| 老熟妇一区二区三区| 96精品一区| 啊啊啊草死我| 麻豆视频国产一区二区| 亚欧高清| 午夜爽爽爽在线观看永久入口姬片| 国产人伦a片信息免费片| 最新中文字幕在线亚洲| 国产a级午夜毛片| 2024人人操人人摸| 亚洲综合影片| 国产后入清纯| 亚洲综合九九| 国产亚洲中文不卡二区| 久久久精品日本一道| 蜜臀AV成人精品蜜臀| 久久后入制服| 久久精品视| 亚洲熟妇一,二,三期| 天天做日日做天天欢。| 熟女这里只有精品6| 啊啊嗯嗯好爽| 天天躁日日躁AAA片李宗瑞| 精品九九九九九九九| 亚洲黄色| 囯产操逼片| 亚洲人91| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 中日韩久久久| 亚洲限制级在线| 精品人妻一区二区三区视频在线| 亚洲国产精品V?在线播放| 91操人| 啊啊啊啊啊好舒服视频| 蜜乳av一区二区| 一道本东京热加勒比一区二区三区| 久久亚洲天堂| 99精品在线观看| 欧美色蜜桃97| 国产精品久久久久无码AV会牛| 九九香蕉网| 久久同城AV| 久久九九国产精品| 少妇99| 日本操逼视频导航| 国产熟女二区| 999国产精品999| 国产精品粉嫩福利在线| 人人摸人人添人人操| 日韩大香蕉精品在线视频| 搞中出久久| 久久大香蕉97| 中文字幕一区av| 欧美成人精品欧美一级乱黄一区二…| 亚洲情色婷婷五月天| 九九碰九九爱97超| ′ !γ}丶。。久久精品欧美一区二区三区| 爱爱动态60秒| 97色欧州| 欧美性爱系列| 无码区蜜乳| 女上位精品在线| 91在线免费观看处女| 欧美A片中文字幕| 亚洲污污网站| 亚洲影视综合网| 近亲乱伦一区二区| 97超碰欧美中文字幕| 欧美成人一区二区| 麻豆久久久久久久久丝袜 | 亚洲女人91| 美女91色黄18| 大香蕉欧美伊| 伊人精品久久网站| 97在线免费| 欧美色图99| 久久99深爱久久99精品| 97操97色| 能看的AV| 成人资源中文字幕在线观看天天| 综合久久久久久久久91| 啊啊啊啊免费视频| 久草精品在线| 热久久无毒不卡| 蜜臀久久99精品| 亚州人妻| 欧美狠狠操| 精彩视频日韩| 亚洲不卡av在线| 爱爱动态120秒| 亚洲色 国产 欧美 日韩| 操操吧亚洲乱伦视频| 国产一区二区成人av在线播放| av网站国产主播在线| 97在线视频免费观看| 清纯唯美综合| 一级做受视频免费是看美女| 国产后入| 99热在线播放| 欧美成人A√在线一区二区| AAAA欧美日韩| 精品久久久av无码免费| 国产精品免费1区2区视频| 少妇一级婬片免费放一级a性色.| 亚洲天堂精品日韩电影| 亚洲无码国产精品久久| 久久九九视频九九视频| 国产 亚洲 丝袜 制服| 九九无码| 骚逼一区二区| 97超碰精品成| 日韩91网| 黄色成人网久久久久久| 日韩精品 视频一区二区| 岛国精品视频在线观看| 五月天综合| 久操影视| 人妻二区| 五月天成人综合| 久草草一二三四区久久| 91色欧美| 亚洲国产精品无码AV久久久| 99视频内射三四| 日韩欧美中文字| 少妇久久久久久| 十八禁啪啦拍视频无遮挡| 色女综合| 精品国产乱码久久久久久蜜臀| 密乳AV免费观看| 五月婷婷六月色| 情色五月天就去干| 日韩成人无码| 欧美黄色片AAAAA| 中文字幕神马久久| 91爆操视频| 欧美日韩青操| 日韩性爱视频在线免费观看| 天天综合网91入口| 欧美色网| 欧美日韩一干二干| 人人做天天爱| 美熟女逼导航AV操逼| 亚洲性网| 国产精品自产拍在线观看社区| 使劲用力艹少妇视频一区二区| 一本色道熟妇| 亚洲欧美校园另类春色| 亚洲精品成人| 日本精品九九九| 大奶的诱惑| 亚洲欧美性生活| 天天色黄色影院天天操| 性交一区二区在线播放| 国产黄色 A 片免费看| 熟女熟妇一区二区三区视频| 国产欧美一区激情交| 人人搡人人肉久久精品| 自慰白浆在线观看| 麻豆久久一区二区三区| 97亚洲资源| 人看人人摸人人操| 午夜a成v人电影| 无卡一区=区| 欧美日韩人人精品| 91精品人妻电影| 啊啊啊轻点在线观看| 久久国产精品91| 少妇干B| 无遮挡男女激烈动态图| 91日日夜夜| 诱惑人妻欧美一区在线播放| 国产特级毛片AAAAAA高潮流水| v91av| 久热99999| 东京成人一区| 亚洲男人bt天堂| 国产一级高清免费观看| 先锋女优在线观看视频| 久久久婷| 99热精品国产| 午夜男人天堂|