<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
#首先定義一個 分類數*分類數 的空混淆矩陣 conf_matrix = torch.zeros(Emotion_kinds, Emotion_kinds) # 使用torch.no_grad()可以顯著降低測試用例的GPU佔用 with torch.no_grad(): for step, (imgs, targets) in enumerate(test_loader): # imgs: torch.Size([50, 3, 200, 200]) torch.FloatTensor # targets: torch.Size([50, 1]), torch.LongTensor 多了一維,所以我們要把其去掉 targets = targets.squeeze() # [50,1] -----> [50] # 將變數轉為gpu targets = targets.cuda() imgs = imgs.cuda() # print(step,imgs.shape,imgs.type(),targets.shape,targets.type()) out = model(imgs) #記錄混淆矩陣引數 conf_matrix = confusion_matrix(out, targets, conf_matrix) conf_matrix=conf_matrix.cpu()
混淆矩陣的求取用到了confusion_matrix函數,其定義如下:
def confusion_matrix(preds, labels, conf_matrix): preds = torch.argmax(preds, 1) for p, t in zip(preds, labels): conf_matrix[p, t] += 1 return conf_matrix
在當我們的程式執行結束 test_loader 後,我們可以得到本次資料的 混淆矩陣,接下來就要計算其 識別正確的個數以及混淆矩陣視覺化:
conf_matrix=np.array(conf_matrix.cpu())# 將混淆矩陣從gpu轉到cpu再轉到np corrects=conf_matrix.diagonal(offset=0)#抽取對角線的每種分類的識別正確個數 per_kinds=conf_matrix.sum(axis=1)#抽取每個分類資料總的測試條數 print("混淆矩陣總元素個數:{0},測試集總個數:{1}".format(int(np.sum(conf_matrix)),test_num)) print(conf_matrix) # 獲取每種Emotion的識別準確率 print("每種情感總個數:",per_kinds) print("每種情感預測正確的個數:",corrects) print("每種情感的識別準確率為:{0}".format([rate*100 for rate in corrects/per_kinds]))
執行此步的輸出結果如下所示:
對上邊求得的混淆矩陣視覺化
# 繪製混淆矩陣 Emotion=8#這個數值是具體的分類數,大家可以自行修改 labels = ['neutral', 'calm', 'happy', 'sad', 'angry', 'fearful', 'disgust', 'surprised']#每種類別的標籤 # 顯示資料 plt.imshow(conf_matrix, cmap=plt.cm.Blues) # 在圖中標註數量/概率資訊 thresh = conf_matrix.max() / 2 #數值顏色閾值,如果數值超過這個,就顏色加深。 for x in range(Emotion_kinds): for y in range(Emotion_kinds): # 注意這裡的matrix[y, x]不是matrix[x, y] info = int(conf_matrix[y, x]) plt.text(x, y, info, verticalalignment='center', horizontalalignment='center', color="white" if info > thresh else "black") plt.tight_layout()#保證圖不重疊 plt.yticks(range(Emotion_kinds), labels) plt.xticks(range(Emotion_kinds), labels,rotation=45)#X軸字型傾斜45° plt.show() plt.close()
好了,以下就是最終的視覺化的混淆矩陣啦:
例如 F1分數、TP、TN、FP、FN、精確率、召回率 等指標, 待補充哈(因為暫時還沒用到)~
到此這篇關於pytorch分類模型繪製混淆矩陣以及視覺化詳的文章就介紹到這了,更多相關pytorch繪製混淆矩陣內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45