python學習打卡day47

DAY 47 注意力熱圖可視化

昨天代碼中注意力熱圖的部分順移至今天

知識點回顧:

熱力圖

作業:對比不同卷積層熱圖可視化的結果

# 可視化空間注意力熱力圖(顯示模型關注的圖像區域)
def visualize_attention_map(model, test_loader, device, class_names, num_samples=3):"""可視化模型的注意力熱力圖,展示模型關注的圖像區域"""model.eval()  # 設置為評估模式with torch.no_grad():for i, (images, labels) in enumerate(test_loader):if i >= num_samples:  # 只可視化前幾個樣本breakimages, labels = images.to(device), labels.to(device)# 創建一個鉤子,捕獲中間特征圖activation_maps = []def hook(module, input, output):activation_maps.append(output.cpu())# 為最后一個卷積層注冊鉤子(獲取特征圖)hook_handle = model.conv3.register_forward_hook(hook)# 前向傳播,觸發鉤子outputs = model(images)# 移除鉤子hook_handle.remove()# 獲取預測結果_, predicted = torch.max(outputs, 1)# 獲取原始圖像img = images[0].cpu().permute(1, 2, 0).numpy()# 反標準化處理img = img * np.array([0.2023, 0.1994, 0.2010]).reshape(1, 1, 3) + np.array([0.4914, 0.4822, 0.4465]).reshape(1, 1, 3)img = np.clip(img, 0, 1)# 獲取激活圖(最后一個卷積層的輸出)feature_map = activation_maps[0][0].cpu()  # 取第一個樣本# 計算通道注意力權重(使用SE模塊的全局平均池化)channel_weights = torch.mean(feature_map, dim=(1, 2))  # [C]# 按權重對通道排序sorted_indices = torch.argsort(channel_weights, descending=True)# 創建子圖fig, axes = plt.subplots(1, 4, figsize=(16, 4))# 顯示原始圖像axes[0].imshow(img)axes[0].set_title(f'原始圖像\n真實: {class_names[labels[0]]}\n預測: {class_names[predicted[0]]}')axes[0].axis('off')# 顯示前3個最活躍通道的熱力圖for j in range(3):channel_idx = sorted_indices[j]# 獲取對應通道的特征圖channel_map = feature_map[channel_idx].numpy()# 歸一化到[0,1]channel_map = (channel_map - channel_map.min()) / (channel_map.max() - channel_map.min() + 1e-8)# 調整熱力圖大小以匹配原始圖像from scipy.ndimage import zoomheatmap = zoom(channel_map, (32/feature_map.shape[1], 32/feature_map.shape[2]))# 顯示熱力圖axes[j+1].imshow(img)axes[j+1].imshow(heatmap, alpha=0.5, cmap='jet')axes[j+1].set_title(f'注意力熱力圖 - 通道 {channel_idx}')axes[j+1].axis('off')plt.tight_layout()plt.show()# 調用可視化函數
visualize_attention_map(model, test_loader, device, class_names, num_samples=3)

@浙大疏錦行

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86233.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86233.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86233.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL-運維篇

運維篇 日志 錯誤日志 錯誤日志是 MySQL 中最重要的日志之一,它記錄了當 mysqld 啟動和停止時,以及服務器在運行過程中發生任何嚴重錯誤時的相關信息當數據庫出現任何故障導致無法正常使用時,建議首先查看此日志。 該日志是默認開啟的&am…

Prompt Tuning(提示調優)到底訓練優化的什么部位

Prompt Tuning(提示調優)到底訓練優化的什么部位 在自然語言處理(NLP)領域,Prompt Tuning(提示調優)是一種輕量級的模型優化技術,其核心目標是通過優化提示(Prompt)來引導預訓練語言模型(如GPT、BERT等)更好地完成特定任務,而無需大規模調整模型的主體參數。 一…

基于FPGA的超聲波顯示水位距離,通過藍牙傳輸水位數據到手機,同時支持RAM存儲水位數據,讀取數據。

基于FPGA的超聲波顯示水位距離 前言一、整體框架二、代碼架構1.超聲波測距模塊2.藍牙數據發送模塊3.數碼管數據切換模塊4.數碼管驅動模塊6.串口驅動7.頂層模塊8.RAM ip核 仿真相關截圖 前言 隨著工業化進程的加速和環境保護意識的提升,對水資源管理和水位監測的需求…

OD 算法題 B卷【水果攤小買賣】

文章目錄 水果攤小買賣 水果攤小買賣 小王手里有點閑錢,想做點水果買賣,給出兩個數組m, n, m[i]表示第i個水果的成本價,n[i]表示第i個水果能賣出的價格;假如現在有本錢k,試問最后最多能賺多少錢&#xff1…

(新手友好)MySQL學習筆記(6):分組查詢,正則表達式

目錄 分組查詢 創建分組 過濾分組 分組查詢練習 正則表達式 匹配單個實例 匹配多個實例 正則表達式練習 練習答案 分組查詢練習答案 正則表達式練習答案 分組查詢 創建分組 group by 子句:根據一個或多個字段對結果集進行分組,在分組的字段上…

Android 之 kotlin 語言學習筆記四(Android KTX)

一、Android KTX 簡介 Android KTX 是包含在 Android Jetpack 及其他 Android 庫中的一組 Kotlin 擴展程序。KTX 擴展程序可以為 Jetpack、Android 平臺及其他 API 提供簡潔的慣用 Kotlin 代碼。為此,這些擴展程序利用了多種 Kotlin 語言功能,其中包括&…

云原生思維重塑數字化基座:從理念到實踐的深度剖析

📝個人主頁🌹:慌ZHANG-CSDN博客 🌹🌹期待您的關注 🌹🌹 一、引言:云原生為何成為數字化的“基礎設施語言”? 隨著5G、人工智能、物聯網等技術逐步進入規模化落地階段&am…

【C/C++】STL實現版本為什么比手寫版本高?

文章目錄 為什么標準庫版本效率更高?1 具體介紹1.1 **內聯優化(Inlining)和模板展開**1.2 **分支預測友好(Branch Prediction)**1.3 **迭代器解耦 靜態分發**1.4 **代碼緊湊,編譯器優化空間大**1.5 **高質…

35.成功解決編寫關于“江協科技”編寫技巧第二期標志位積累的問題

江科大學長又發布了第二期的編寫技巧! 大家可以看看:https://space.bilibili.com/383400717 最后面給了一個未完成的任務: 這里我已經把這個問題給解決了! 總代碼放在資源里面,key.c放在文章最后面!同時感…

STM32什么是寄存器

提示:文章 文章目錄 前言一、背景二、2.12.2 三、3.1 總結 前言 前期疑問: 1、什么是寄存器? 答:在4GB的地址空間中,512MB的block2上,每4個字節組成32位,這個32位為一個單元,控制&a…

【Pinia】Pinia和Vuex對比

Pinia 是 Vue 官方團隊成員專門開發的一個全新狀態管理庫,并且 Vue 的官方狀態管理庫已經更改為了 Pinia。 在 Vuex 官方倉庫中也介紹說可以把 Pinia 當成是不同名稱的 Vuex 5,這也意味不會再出 5 版本了。 優點 1. 更加輕量級,壓縮后提交只…

通過 Ansible 在 Windows 2022 上安裝 IIS Web 服務器

拓撲結構 這是一個用于通過 Ansible 部署 IIS Web 服務器的實驗室拓撲。 前提條件: 在被管理的節點上安裝WinRm 準備一張自簽名的證書 開放防火墻入站tcp 5985 5986端口 準備自簽名證書 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…

Oracle雙平面適用場景討論會議

4月28日,我在杭州組織召開了Oracle雙平面會議討論沙龍。在國產化數據庫浪潮的今天,Oracle數據庫作為國產數據庫的應急庫,在國產數據庫發生故障或者性能下降時,如何更好的使用Oracle。會議主題如下: 1、背景與痛點速覽&…

10.Linux進程信號

1. 理解信號 信號VS信號量 老婆:老婆餅-》沒有任何關系!信號:鬧鐘,上課鈴聲,臉色...人-》進程;信號中斷人正在做的事,是一種事件的異步通知機制; 我們自習一會,等張三回…

求解插值多項式及其余項表達式

例 求滿足 P ( x j ) f ( x j ) P(x_j) f(x_j) P(xj?)f(xj?) ( j 0 , 1 , 2 j0,1,2 j0,1,2) 及 P ′ ( x 1 ) f ′ ( x 1 ) P(x_1) f(x_1) P′(x1?)f′(x1?) 的插值多項式及其余項表達式。 解: 由給定條件,可確定次數不超過3的插值多項式。…

C++刷題:日期模擬(1)

(注:本文所展示代碼均為本人所寫,不一定為最優) 我們首先用純邏輯和手動計算來拆解日期模擬題,再來代碼實現,看看這些問題的底層思路怎么玩明白~ 一、基礎日期計算:直接算“過幾天是…

深入剖析Nginx:從入門到高并發架構實戰

深入剖析Nginx:從入門到高并發架構實戰 摘要:本文全面解析Nginx的核心功能、架構原理及實戰配置,涵蓋負載均衡、反向代理、動靜分離等高級應用場景,助你構建高性能Web服務架構。 一、Nginx是什么?為什么它如此重要&…

Qt客戶端技巧 -- 窗口美化 -- 圓角窗口

不解析&#xff0c;直接給代碼例子 利用窗口重繪事件處理函數paintEvent main.cpp #include <QtCore/qglobal.h> #if QT_VERSION > 0x050000 #include <QtWidgets/QApplication> #else #include <QtGui/QApplication> #endif#include "roundedwin…

Three.js學習筆記-三要素

Three.js 學習筆記-三要素 一、Three.js 簡介 (一)前世今生 Three.js 是一款運行在瀏覽器中的 3D 引擎,由 Ricardo Cabello(Mr.doob)在 2010 年 4 月于 GitHub 首次發布 。其起源可追溯到本世紀初,代碼最初用 ActionScript 編寫,2009 年移植到 JavaScript。隨著 Web…

動力電池點焊機:驅動電池焊接高效與可靠的核心力量|比斯特自動化

在新能源汽車與儲能設備需求激增的背景下&#xff0c;動力電池的制造工藝直接影響產品性能與安全性。作為電芯與極耳連接的核心設備&#xff0c;點焊機如何平衡效率、精度與可靠性&#xff0c;成為電池企業關注的重點。 動力電池點焊機的核心功能是確保電芯與極耳的穩固連接。…