b-up:Enzo_mi:Transformer DETR系列

1.視頻1:self-Attention|自注意力機制 |位置編碼 | 理論 + 代碼

注意:

q-查詢; k-商品標簽; v-值(具體商品)

* 不是指乘法,類似概念

a1:相似度; b1:總分

?

若想了解 I? ?這個詞? 與其他詞的相似度,則用q1分別乘以 k2,k3,k4

若想了解 dog? ?這個詞? 與其他詞的相似度,則用q4分別乘以 k1,k2,k3

注意:

(1,4,2)? 1 表示一個batch size, 4表示一個token, 2表示每個token的長度

位置編碼

因為self-attention的輸出沒有位置信息, 將a4放在最后一個輸出的b4,? 與? 將a4 放在第一個輸出的b4,? ?兩個b4完全相同,沒有包含位置對其的影響(沒有包含位置信息)

?

一共有j個token, 每個token都有i個維度,

對于奇數維度的位置編碼,使用cos 生成

對于偶數維度的位置編碼,使用sin?生成

2. 視頻2:Multi-Head Attention | 算法 + 代碼

?

上一節課講的是 single head

這節課將multi-head,? ?其中 h表示head的個數

講了 幾種q,k,v的計算方法

方法1:見上個圖片,w1 2x6? 分成三份(每份 2x2),分別與ai相乘,分別生成三份q,每個q 1x2

方法2:先使用統一的權重, 生成q,k,v, 然后再將q,k,v, 分別切分多個 ,如q切分為q1,q2,q3,q4,q5。

形成多個head

對于每個head,向上一節課那樣,分別生成b1,b2...bm

?將得到的b先按列concat,? 再按行concat,? 得到一個mxd 的矩陣

m表示token的個數;d表示每一個token的維度

代碼實現

首先定義一個x,? ?(1,4,2)

1表示batch size

4表示token個數

2表示token?

?

?

實例化一個類,傳入三個參數

第一個參數:dim_in表示輸入中每個token的維度(即輸入x的最后一個維度)

第二個參數:d_model表示如果使用single self-attention? 時,qkv總的向量長度

第三個參數:num_heads表示指定head的個數

指定qkv的總向量長度為6;指定一共有3個head;

所以每個head的維度等于 6/3=2,

定義三個全連接層,分別從輸入x中提取qkv

表示每個head的維度 dk

從三個全連接層分別提取q,k,v

提取的qkv的維度等于d_model? ?即6,? (1,4,6)

將其reshape, 將6拆分為3x2

(1,4,3,2)

3表示3個head

將3進行移動,得到

(1,3,4,2)

4,2表示每個head的qkv的維度,

此時即可以對每個head進行并行處理

第一行表示:

q乘以k的轉置,再除以根號下dk,? 得到相似度分數

(個人:這里感覺自已聽得有問題,沒有完全理解)

對dist的最后一個維度做softmax,? 然后乘以v? 得到b

將b的維度調整為(1,4,3,2)

4表示4個token

3表示3個head

2表示每個b的維度

再將(1,4,3,2)reshape成 (1,4,6)

b最后維度為6

再將b經過全連接層,得到最終結果? ,最終結果的維度也是(1,4,6)

個人:

聽得比較迷糊

本來是想聽聽這個,看看能否理解YOLO11里面的PSA, 還是沒有搞懂

?

參考資料:

1.self-Attention|自注意力機制 |位置編碼 | 理論 + 代碼_嗶哩嗶哩_bilibili

2.Multi-Head Attention | 算法 + 代碼_嗶哩嗶哩_bilibili

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

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

相關文章

算法題(179):單調棧

審題: 本題是單調棧的模板題 補充:單調棧 單調棧中的數據始終保持單調遞增或單調遞減 使用情景:給定一個數組,要求尋找 1.某個數左側,離他最近且值大于他的數 2.某個數左側,離他最近且值小于他的數 3.某個數…

CF每日5題(1500-1600)

545C 貪心 1500 題意:給 n 棵樹在一維數軸上的坐標 xix_ixi? ,以及它們的長度 hih_ihi?。現在要你砍倒這些樹,樹可以向左倒也可以向右倒,砍倒的樹不能重合、當然也不能覆蓋其他的樹原來的位置,現在求最大可以砍倒的…

HW藍隊:天眼告警監測分析之Web攻擊

Web攻擊 信息泄露 敏感數據包括但不限于:口令、密鑰、證書、會話標識、License、隱私數據(如短消息的內容)、授權憑據、個人數據(如姓名、住址、電話等)等,在程序文件、配置文件、日志文件、備份文件及數據庫中都有可能包含敏感數據 信息收集方法 漏洞分類 備份文…

大騰智能國產3D CAD軟件正式上架華為云云商店

深圳市大騰信息技術有限公司(以下簡稱“大騰智能”)與華為云達成深度合作,大騰智能CAD軟件及配套服務通過了華為云在功能適配、安全可用、穩定高效等方面的嚴選商品認證,已正式上架華為云云商店,成為華為云云商店的聯營…

論文復現-windows電腦在pycharm中運行.sh文件

1.更改終端路徑(前提:已下載git bash)2.授權打開pycharm終端,輸入 chmod x 文件名3.根據當前位置,運行.sh文件

開關電源安全保護電路:浪涌保護、過流保護、過壓保護

開關電源安全保護電路:浪涌保護、過流保護、過壓保護 引言 對于開關電源而言, 安全、可靠性歷來被視為重要的性能之一. 開關電源在電氣技術指標滿足電子設備正常使用要求的條件下, 還要滿足外界或自身電路或負載電路出現故障的情況下也能安全可靠地工作. 為此, 須有多種保護措…

C語言(十)

一、函數概述函數是面向過程編程思想的具體體現,主要作用:降低程序之間的耦合性提高代碼的復用性和可維護性一個完整的 C 程序由**一個或多個程序模塊(源文件)**組成。為便于開發與調試,通常會將代碼拆分為多個源文件&…

QT項目-仿QQ音樂的音樂播放器(第二節)

目錄 自定義控件: BtForm類中實現 BtForm上的動畫效果 自定義控件: 該控件實際由:圖?、?字、動畫三部分組成。圖?和?字分別?QLabel展?,動畫部分內部實際為4 個QLabel。 ① 將BtForm的geometry的寬度和?度修改為200*35。…

【世紀龍科技】數字課程資源-新能源汽車概論

一、課程介紹本課程為通過項目任務式教學,全面系統的講解了新能源汽車的基礎知識及相關技能,培養和提高學生的動手能力和理論知識的工程應用能力。以典型工作任務帶動知識與技能的學習,采用項目教學培養學生的崗位技能、學習能力和職業素養。…

iOS Core Data 本地數據庫 使用詳解:從模型關系到數據操作

一、引言:Core Data,在本地數據持久化中的地位在 iOS 開發中,本地數據存儲幾乎是每一個 App 都繞不開的問題。無論是緩存用戶信息、離線瀏覽內容,還是記錄用戶操作歷史,一個合適的數據持久化方案都能大大提升應用的體驗…

Java-79 深入淺出 RPC Dubbo 動態路由架構詳解:從規則設計到上線系統集成

點一下關注吧!!!非常感謝!!持續更新!!! 🚀 AI篇持續更新中!(長期更新) AI煉丹日志-30-新發布【1T 萬億】參數量大模型!Kim…

Linux內核中動態內存分配函數解析

在C語言中,動態內存分配通常用于在運行時申請內存。在內核編程中,動態內存分配與用戶空間有所不同,因為內核需要更謹慎地處理內存,且不能使用用戶空間的庫(如glibc)。下面我們將詳細分析Linux內核中動態申請…

Next.js 中配置不同頁面布局方案

在 Next.js 應用中,你可以通過多種方式實現某些頁面全屏、某些頁面帶菜單/頁眉/頁腳的需求。以下是幾種實現方案: 方案一:使用多個布局組件 1. 創建不同的布局組件 // app/default-layout.tsx import Header from /components/header; import…

Spring Boot 使用外置 Servlet 容器:從配置到部署全指南

在 Spring Boot 開發中,我們通常使用嵌入式 Servlet 容器(如 Tomcat),它能將應用打包成可執行 JAR,簡化部署流程。但在某些場景下(如需要支持 JSP、復雜的容器定制或企業級部署規范)&#xff0c…

借助AI學習開源代碼git0.7之九diff-files

借助AI學習開源代碼git0.7之九diff-files diff-files.c 是一個用于比較工作目錄中的文件和 Git 索引(暫存區)中文件的工具。 實質上,它是 git diff命令在不指定特定提交時功能的核心實現。 主要功能分析: 1. 核心功能 diff-files …

社區資源媒體管理系統設計與實現

社區資源媒體管理系統設計與實現 1. 系統概述 社區資源媒體管理系統是一個專為社區戶外廣告打造的高效、專業化平臺,旨在實現社區媒體的數字化管理、智能投放和便捷交易。該系統將整合社區各類廣告資源,為廣告主、物業公司和社區居民提供一站式服務。 1.…

12.1.6 weak_ptr

weak_ptr weak_ptr會指向一個share_ptr&#xff08;使用一個share_ptr來初始化weak_ptr&#xff09;&#xff0c;但并不會增加這個share_ptr的引用計數器&#xff0c;其析構也不會減少share_ptr的引用計數器。 構造函數及使用 #include <iostream> #include <memory&g…

深度分析Java內存模型

Java 內存模型&#xff08;Java Memory Model, JMM&#xff09;是 Java 并發編程的核心基石&#xff0c;它定義了多線程環境下線程如何與主內存&#xff08;Main Memory&#xff09;以及線程的本地內存&#xff08;工作內存&#xff0c;Working Memory&#xff09;交互的規則。…

代碼隨想錄算法訓練營第五十二天|圖論part3

101. 孤島的總面積 題目鏈接&#xff1a;101. 孤島的總面積 文章講解&#xff1a;代碼隨想錄 思路&#xff1a; 與島嶼面積差不多&#xff0c;區別是再dfs的時候&#xff0c;如果碰到越界的&#xff0c;需要用一個符號標記這不是孤島再continue #include <iostream> #i…

前端實現 excel 數據導出,封裝方法支持一次導出多個Sheet

一、前言 后臺管理項目有時會有需要前端導出excel表格的功能&#xff0c;有時還需要導出多個sheet&#xff0c;并給每個sheet重新命名&#xff0c;下面我們就來實現一下。 二、實現效果圖 三、實現步驟 1、 安裝 命令行安裝 xlsx 和 file-saver npm install xlsx -S npm i…