python打卡day46@浙大疏錦行

知識點回顧:

  1. 不同CNN層的特征圖:不同通道的特征圖
  2. 什么是注意力:注意力家族,類似于動物園,都是不同的模塊,好不好試了才知道。
  3. 通道注意力:模型的定義和插入的位置
  4. 通道注意力后的特征圖和熱力圖

內容參考

作業:

  1. 今日代碼較多,理解邏輯即可
  2. 對比不同卷積層特征圖可視化的結果(可選)

一、CNN特征圖可視化實現

import torch
import matplotlib.pyplot as pltdef visualize_feature_maps(model, input_tensor):# 注冊鉤子獲取中間層輸出features = []def hook(module, input, output):features.append(output.detach().cpu())# 選擇不同卷積層觀察target_layers = [model.layer1[0].conv1,model.layer2[0].conv1,model.layer3[0].conv1]handles = []for layer in target_layers:handles.append(layer.register_forward_hook(hook))# 前向傳播with torch.no_grad():_ = model(input_tensor.unsqueeze(0))# 移除鉤子for handle in handles:handle.remove()# 可視化不同層特征圖fig, axes = plt.subplots(len(target_layers), 5, figsize=(20, 10))for i, feat in enumerate(features):for j in range(5):  # 顯示前5個通道axes[i,j].imshow(feat[0, j].numpy(), cmap='viridis')axes[i,j].axis('off')plt.show()

二、通道注意力模塊示例

class ChannelAttention(nn.Module):def __init__(self, in_channels, reduction=16):super().__init__()self.avg_pool = nn.AdaptiveAvgPool2d(1)self.max_pool = nn.AdaptiveMaxPool2d(1)self.fc = nn.Sequential(nn.Linear(in_channels, in_channels // reduction),nn.ReLU(),nn.Linear(in_channels // reduction, in_channels),nn.Sigmoid())def forward(self, x):# ... existing code ...return x * attention_weights  # 應用注意力權重

三、熱力圖生成方法

def generate_heatmap(model, input_img):# 前向傳播獲取梯度model.eval()input_img.requires_grad = Trueoutput = model(input_img)pred_class = output.argmax(dim=1).item()# 反向傳播計算梯度model.zero_grad()output[0, pred_class].backward()# 獲取最后一個卷積層的梯度gradients = model.layer4[1].conv2.weight.gradpooled_gradients = torch.mean(gradients, dim=[0,2,3])# 生成熱力圖activations = model.layer4[1].conv2.activations.detach()for i in range(activations.shape[1]):activations[:,i,:,:] *= pooled_gradients[i]heatmap = torch.mean(activations, dim=1).squeeze()return heatmap

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

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

相關文章

JavaSec-SPEL - 表達式注入

簡介 SPEL(Spring Expression Language):SPEL是Spring表達式語言,允許在運行時動態查詢和操作對象屬性、調用方法等,類似于Struts2中的OGNL表達式。當參數未經過濾時,攻擊者可以注入惡意的SPEL表達式,從而執行任意代碼…

SpringCloud——OpenFeign

概述: OpenFeign是基于Spring的聲明式調用的HTTP客戶端,大大簡化了編寫Web服務客戶端的過程,用于快速構建http請求調用其他服務模塊。同時也是spring cloud默認選擇的服務通信工具。 使用方法: RestTemplate手動構建: // 帶查詢…

【深入學習Linux】System V共享內存

目錄 前言 一、共享內存是什么? 共享內存實現原理 共享內存細節理解 二、接口認識 1.shmget函數——申請共享內存 2.ftok函數——生成key值 再次理解ftok和shmget 1)key與shmid的區別與聯系 2)再理解key 3)通過指令查看/釋放系統中…

探索 Java 垃圾收集:對象存活判定、回收流程與內存策略

個人主頁-愛因斯晨 文章專欄-JAVA學習筆記 熱門文章-賽博算命 一、引言 在 Java 技術體系里,垃圾收集器(Garbage Collection,GC)與內存分配策略是自動內存管理的核心支撐。深入探究其原理與機制,對優化程序內存性能…

hbase資源和數據權限控制

hbase適合大數據量下點查 https://zhuanlan.zhihu.com/p/471133280 HBase支持對User、NameSpace和Table進行請求數和流量配額限制,限制頻率可以按sec、min、hour、day 對于請求大小限制示例(5K/sec,10M/min等),請求大小限制單位如…

大數據-275 Spark MLib - 基礎介紹 機器學習算法 集成學習 隨機森林 Bagging Boosting

點一下關注吧!!!非常感謝!!持續更新!!! 大模型篇章已經開始! 目前已經更新到了第 22 篇:大語言模型 22 - MCP 自動操作 FigmaCursor 自動設計原型 Java篇開…

Delphi 實現遠程連接 Access 數據庫的指南

方法一:通過局域網共享 Access 文件(簡單但有限) 步驟 1:共享 Access 數據庫 將 .mdb 或 .accdb 文件放在局域網內某臺電腦的共享文件夾中。 右鍵文件夾 → 屬性 → 共享 → 啟用共享并設置權限(需允許網絡用戶讀寫&a…

VR視頻制作有哪些流程?

VR視頻制作流程知識 VR視頻制作,作為融合了創意與技術的復雜制作過程,涵蓋從初步策劃到最終呈現的多個環節。在這個過程中,我們可以結合眾趣科技的產品,解析每一環節的實現與優化,揭示背后的奧秘。 VR視頻制作有哪些…

文件上傳/下載接口開發

接口特性 文件傳輸接口與傳統接口的核心差異體現在數據傳輸格式: 上傳接口采用 multipart/form-data 格式支持二進制文件傳輸下載接口接收二進制流并實現本地文件存儲 文件上傳接口開發 接口規范 請求地址:/createbyfile 請求方式:POST…

深入學習RabbitMQ隊列的知識

目錄 1、AMQP協議 1.1、介紹 1.2、AMQP的特點 1.3、工作流程 1.4、消息模型 1.5、消息結構 1.6、AMQP 的交換器類型 2、RabbitMQ結構介紹 2.1、核心組件 2.2、最大特點 2.3、工作原理 3、消息可靠性保障 3.1、生產端可靠性 1、生產者確認機制 2、持久化消息 3.…

【計算機網絡】NAT、代理服務器、內網穿透、內網打洞、局域網中交換機

🔥個人主頁🔥:孤寂大仙V 🌈收錄專欄🌈:計算機網絡 🌹往期回顧🌹:【計算機網絡】數據鏈路層——ARP協議 🔖流水不爭,爭的是滔滔不息 一、網絡地址轉…

[論文閱讀] 人工智能 | 大語言模型計劃生成的新范式:基于過程挖掘的技能學習

#論文閱讀# 大語言模型計劃生成的新范式:基于過程挖掘的技能學習 論文信息 Skill Learning Using Process Mining for Large Language Model Plan Generation Andrei Cosmin Redis, Mohammadreza Fani Sani, Bahram Zarrin, Andrea Burattin Cite as: arXiv:2410.…

C文件操作2

五、文件的隨機讀寫 這些函數都需要包含頭文件 #include<stdio.h> 5.1 fseek 根據文件指針的位置和偏移量來定位文件指針&#xff08;文件內容的光標&#xff09; &#xff08;重新定位流位置指示器&#xff09; int fseek ( FILE * stream, long int offset, int or…

react私有樣式處理

react私有樣式處理 Nav.jsx Menu.jsx vue中通過scoped來實現樣式私有化。加上scoped&#xff0c;就屬于當前組件的私有樣式。 給視圖中的元素都加了一個屬性data-v-xxx&#xff0c;然后給這些樣式都加上屬性選擇器。&#xff08;deep就是不加屬性也不加屬性選擇器&#xff09; …

【信創-k8s】海光/兆芯+銀河麒麟V10離線部署k8s1.31.8+kubesphere4.1.3

? KubeSphere V4已經開源半年多&#xff0c;而且v4.1.3也已經出來了&#xff0c;修復了眾多bug。介于V4優秀的LuBan架構&#xff0c;核心組件非常少&#xff0c;資源占用也顯著降低&#xff0c;同時帶來眾多功能和便利性。我們決定與時俱進&#xff0c;使用1.30版本的Kubernet…

單片機內部結構基礎知識 FLASH相關解讀

一、總線簡單說明 地址總線、控制總線、數據總線 什么是8位8051框架結構的微控制器&#xff1f; 數據總線寬度為8位&#xff0c;即CPU一次處理或傳輸的數據量為8位&#xff08;1字節&#xff09; 同時還有一個16位的地址總線&#xff0c;這個地方也剛好對應了為什么能看到內存…

HTTPS加密的介紹

HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff0c;超文本傳輸安全協議&#xff09;是HTTP協議的安全版本。它在HTTP的基礎上加入了SSL/TLS協議&#xff0c;用于對數據進行加密&#xff0c;并確保數據傳輸過程中的機密性、完整性和身份驗證。 在HTTPS出現之前&a…

【freertos-kernel】stream_buffer

文章目錄 補充任務通知發送處理ulTaskGenericNotifyTakexTaskGenericNotifyWait 清除xTaskGenericNotifyStateClearulTaskGenericNotifyValueClear 結構體StreamBufferHandle_tStreamBufferCallbackFunction_t 創建xStreamBufferGenericCreatestream buffer的類型 刪除vStreamB…

在word中點擊zotero Add/Edit Citation沒有反應的解決辦法

重新安裝了word插件 1.關掉word 2.進入Zotero左上角編輯-引用 3.往下滑找到Microsoft Word&#xff0c;點重新安裝加載項

新華三H3CNE網絡工程師認證—Easy IP

Easy IP 就是“用路由器自己的公網IP&#xff0c;給全家所有設備當共享門牌號”的技術&#xff01;&#xff08;省掉額外公網IP&#xff0c;省錢又省配置&#xff01;&#xff09; 生活場景對比&#xff0c;想象你住在一個小區&#xff1a;普通動態NAT&#xff1a;物業申請了 …