[隨筆] nn.Embedding的前向傳播與反向傳播

nn.Embedding的前向傳播與反向傳播

nn.Embedding的前向計算過程

embedding module 的前向過程其實是一個索引(查表)的過程
表的形式是一個 matrix(embedding.weight, learnable parameters)

matrix.shape: (v, h)
v:vocabulary size=num_embedding
h:hidden dimension=embedding_dim

僅從數學的角度來說(方便推導模型),具體索引的過程,可以通過 one hot + 矩陣乘法的形式實現的

input.shape: (b, s)
> b:batch size
> s:seq len當執行下行代碼時,會進行如下計算 embed = embedding(input) > input.shape(b,s) 	e.g [[0, 2, 2,1]]
> 最終的維度變化情況:(b, s) ==> (b, s, h)1.(b, s) 經過 one hot => (b, s, v)
inputs: [[0, 2, 2, 1 , 1]] 
inputs One-Hot: 數值分類(0-4 => 五分類) 0:[1,0,0,0,0][[[1,0,0,0,0],[0,0,1,0,0],[0,0,1,0,0],[0,1,0,0,0],[0,1,0,0,0]]]
matrix(embedding.weight):[[ 1.0934,  1.7521, -1.9529, -1.0145,  0.5770],[-0.4371, -0.4270, -0.4908, -0.3988,  0.9695],[ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],[ 0.7268, -0.4491, -0.8089,  0.7516,  1.2716],[ 0.7785, -0.4336, -0.7542, -0.1953,  0.9711]]

2.(b, s, v) @ (v, h) ==> (b, s, h)

x(b, s, h):[[[ 1.0934,  1.7521, -1.9529, -1.0145,  0.5770],[ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],[ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000],[-0.4371, -0.4270, -0.4908, -0.3988,  0.9695],[-0.4371, -0.4270, -0.4908, -0.3988,  0.9695]]]

本質上,embedding(input) 是一個內存尋址的過程:

假設 inputs 是一個包含詞索引的張量,i是數值化文本 inputs上的Token,weight 是嵌入矩陣。對于每個索引 i,嵌入向量 v_i 對應的計算過程是:v_i=embedding.weight[i]
nn.Embedding的反向傳播過程

只有前向傳播中用到的索引會接收梯度。

假如反向傳播過來的梯度是 [0.1,0.1,0.3] ,原始的embedding矩陣= [[1. ,1. ,1.],[1. ,1. ,1.]] , lr=0.1

那么 反向傳播以后embedding的參數就為 [[1. ,1. ,1.],[1. ,1. ,1.]] - 1 * [[0.1,0.1,0.3],[0.,0.,0.]]

即 [[0.99. ,0.99 ,0.97],[1. ,1. ,1.]]

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

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

相關文章

構建實時、融合的湖倉一體數據分析平臺:基于 Delta Lake 與 Apache Iceberg

1. 執行摘要 挑戰: 傳統數據倉庫在處理現代數據需求時面臨諸多限制,包括高昂的存儲和計算成本、處理海量多樣化數據的能力不足、以及數據從產生到可供分析的端到端延遲過高。同時,雖然數據湖提供了低成本、靈活的存儲,但往往缺乏…

Maven error:Could not transfer artifact

問題描述 當項目從私有倉庫下載依賴時,Maven 報錯,無法從遠程倉庫下載指定的依賴包,錯誤信息如下: Could not transfer artifact com.ding.abcd:zabk-java:pom from/to releases (http://192.1122.101/repory/mavenleases/): 此…

Dify 生成提示詞的 Prompt

Dify 生成提示詞的 Prompt **第1次提示詞****第2次提示詞****第3次提示詞**總結 Dify 生成提示詞是,會和LLM進行3次交互,下面是和LLM進行交互是的Prompt。 以下是每次提示詞的概要、目標總結以及原始Prompt: 第1次提示詞 概要: …

sqli-labs靶場 less4

文章目錄 sqli-labs靶場less 4 聯合注入 sqli-labs靶場 每道題都從以下模板講解,并且每個步驟都有圖片,清晰明了,便于復盤。 sql注入的基本步驟 注入點注入類型 字符型:判斷閉合方式 (‘、"、’、“”&#xf…

【什么是動態鏈接?這里的動態是什么意思?鏈接了什么?】

動態鏈接(Dynamic Linking)詳解 1. 什么是動態鏈接? 動態鏈接是 Java 虛擬機(JVM)在運行時將字節碼中的符號引用(Symbolic Reference)轉換為直接引用(Direct Reference)…

AWS S3深度剖析:云存儲的瑞士軍刀

1. 引言 在當今數據驅動的世界中,高效、可靠、安全的數據存儲解決方案至關重要。Amazon Simple Storage Service (S3)作為AWS生態系統中的核心服務之一,為企業和開發者提供了一個強大而靈活的對象存儲平臺。本文將全面解析S3的核心特性,幫助讀者深入理解如何充分利用這一&q…

【Game】Powerful——Martial Arts Challenge(6)

文章目錄 攻略關卡一(虎子)關卡二關卡三關卡四關卡五關卡六——奇窮 攻略 關卡一(虎子) 參戰選手 出手順序 關卡二 參戰選手 出手順序 關卡三 參戰選手 出手順序 關卡四 參戰選手 出手順序 關卡五 參戰選手 出手順序 關卡六…

PPIO × UI-TARS:用自然語言操控電腦,AI Agent 的極致體驗

Manus的爆火預示著AI 正在從單純的文本生成和圖像識別邁向更復雜的交互場景。字節跳動近期推出的開源項目 UI-TARS Desktop 為我們展示了一種全新的可能性:能夠通過自然語言理解和處理來控制計算機界面。這款工具代表了人工智能與人機交互領域的重大突破&#xff0c…

電腦屏保壁紙怎么設置 桌面壁紙設置方法詳解

電腦桌面壁紙作為我們每天面對的第一視覺元素,不僅能夠彰顯個人品味,還能營造舒適的工作或娛樂氛圍。電腦桌面壁紙怎么設置呢?下面本文將為大家介紹Windows和macOS兩大主流操作系統中設置電腦桌面壁紙的方法,幫助大家快速設置個性…

popupwindow攔截返回點擊

目的:彈窗只有點擊按鈕可以關閉。 前提:彈窗內有輸入框 試了網上的一些方法 設置彈窗焦點 setFocusable(false) (會導致軟鍵盤無法顯示)重寫 onBackPressed 方法 (不會走這里)為 popupwindow 設置 onKey…

數學知識——矩陣乘法

使用矩陣快速冪優化遞推問題 對于一個遞推問題,如遞推式的每一項系數都為常數,我們可以使用矩陣快速冪來對算法進行優化。 一般形式為: F n F 1 A n ? 1 F_nF_1A^{n-1} Fn?F1?An?1 由于遞推式的每一項系數都為常數,因此對…

GitHub 趨勢日報 (2025年04月07日)

GitHub 趨勢日報 (2025年04月07日) 本日報由 TrendForge 系統生成 https://trendforge.devlive.org/ 📈 今日整體趨勢 Top 10 排名項目名稱項目描述今日獲星語言1microsoft/markitdownPython tool for converting files and office documents to Markdown.? 1039P…

ROS多設備交互

ROS多設備連接同一個Master:ROS Master多設備連接-CSDN博客 在多個PC端連接同一個ROS Master后,接下來就可以實現不同設備之間的話題交流,Master主機端啟動不同PC端的功能包等功能了 盡管多個PC端擁有不同的ROS工作空間,但是只要…

基于國內環境 在Ubuntu 上安裝 Docker 指南

前言 在容器化技術主導云原生時代的今天,Docker 憑借其輕量化、高移植性和秒級部署能力,已成為開發與運維的必備工具。然而,國內用戶在 Ubuntu 系統上安裝 Docker 時,常因 ?官方鏡像源訪問受限、網絡延遲高、依賴包安裝失敗 等問…

數據結構:二叉樹(三)·(重點)

二叉樹的存儲結構 ?叉樹?般可以使?兩種結構存儲,?種順序結構,?種鏈式結構。 順序結構 順序結構存儲就是使?數組來存儲,?般使?數組只適合表?完全?叉樹,因為不是完全?叉樹會有 空間的浪費,完全?叉樹更適合…

EasyExcel實現圖片導出功能(記錄)

背景:在舊系統的基礎上,導出一些工單信息時,現需要新添加處理人的簽名或者簽章,這就涉及圖片的上傳、下載、寫入等幾個操作。 1、EasyExcel工具類 (1)支持下拉框的導出。 import com.alibaba.excel.Easy…

Android Material Design 3 主題配色終極指南:XML 與 Compose 全解析

最小必要顏色配置 <!-- res/values/themes.xml --> <style name"Theme.MyApp" parent"Theme.Material3.DayNight"><!-- 基礎三原色 --><item name"colorPrimary">color/purple_500</item><item name"col…

【Git】“warning: LF will be replaced by CRLF”的解決辦法

一、原因分析 不同操作系統的換行符標準不同&#xff1a; ? Windows&#xff1a;使用 CRLF&#xff08;\r\n&#xff09;表示換行&#xff1b; ? Linux/Mac&#xff1a;使用 LF&#xff08;\n&#xff09;表示換行 Git 檢測到本地文件的換行符與倉庫設置或目標平臺不兼容時…

PyTorch 深度學習實戰(33):聯邦學習與隱私保護

在上一篇文章中,我們探討了多模態學習與CLIP模型的應用。本文將深入介紹聯邦學習(Federated Learning)這一新興的分布式機器學習范式,它能夠在保護數據隱私的前提下實現多方協作的模型訓練。我們將使用PyTorch實現一個基礎的聯邦學習框架,并在圖像分類任務上進行驗證。 一…

藍橋杯 web 展開你的扇子(css3)

普通答案&#xff1a; #box:hover #item1{transform: rotate(-60deg); } #box:hover #item2{transform: rotate(-50deg); } #box:hover #item3{transform: rotate(-40deg); } #box:hover #item4{transform: rotate(-30deg); } #box:hover #item5{transform: rotate(-20deg); }…