【ConvLSTM第一期】ConvLSTM原理

目錄

  • 🧠 一、ConvLSTM 原理詳解
    • 1.1 背景
    • 1.2 ConvLSTM 的結構
  • 參考

ConvLSTM(Convolutional Long Short-Term Memory)是一種結合了卷積神經網絡(CNN)與循環神經網絡(RNN)中 LSTM(長短期記憶)模型的結構,專用于處理具有時序性和空間結構的數據(如視頻、時序圖像等)。

在這里插入圖片描述
下面我將詳細講解ConvLSTM的原理與Python實現方法。

🧠 一、ConvLSTM 原理詳解

1.1 背景

傳統的 LSTM適合處理一維時間序列數據(如語音、文本),但不適合處理空間結構顯著的二維或三維數據(如圖像或視頻幀)。

LSTM 是為 一維序列(如文本、語音) 設計的,輸入形狀是:

(batch, time, features)

例如:

x = torch.rand(32, 10, 100)  # 32個序列,每個10步,每步是100維向量

? 如果你把圖像當成向量輸入 LSTM,會發生什么?

  • 你必須把圖像 flatten(攤平),如 64×64 變成 4096
  • 這樣會 丟失空間結構(像素之間的鄰接關系)

ConvLSTM 的改進 —— 處理 3D 空間信息

ConvLSTM 通過將傳統 LSTM 中的全連接操作替換為 卷積操作,從而保留空間結構信息。

ConvLSTM 的輸入不是 (batch, time, feature),而是:

(batch, time, channels, height, width)

每一個時間步輸入的是一個圖像(或圖像幀),保留空間結構。

🔁 它在每一時間步中,不再執行全連接運算,而是對圖像執行 2D 卷積操作:
在這里插入圖片描述

(+) 是矩陣乘法(LSTM)
(*) 是卷積操作(ConvLSTM)

1.2 ConvLSTM 的結構

在普通 LSTM 中,狀態更新公式如下:

i_t = σ(W_xi * x_t + W_hi * h_{t-1} + b_i)
f_t = σ(W_xf * x_t + W_hf * h_{t-1} + b_f)
o_t = σ(W_xo * x_t + W_ho * h_{t-1} + b_o)
g_t = tanh(W_xg * x_t + W_hg * h_{t-1} + b_g)c_t = f_t ⊙ c_{t-1} + i_t ⊙ g_t
h_t = o_t ⊙ tanh(c_t)

LSTM的單元結構如下:
在這里插入圖片描述

為了克服LSTM在處理三維信息中的不足,ConvLSTM 將 LSTM 中的2D的輸入轉換成了3D的tensor,最后兩個維度是空間維度(行和列)。對于每一時刻t的數據,ConvLSTM 將 LSTM 中的一部分連接操作替換為了卷積操作,即通過當前輸入和局部鄰居的過去狀態來進行預測。
在這里插入圖片描述

在這里插入圖片描述

在 ConvLSTM 中,相應的乘法操作 * 被替換為卷積操作 ?:

i_t = σ(W_xi ? x_t + W_hi ? h_{t-1} + b_i)
f_t = σ(W_xf ? x_t + W_hf ? h_{t-1} + b_f)
o_t = σ(W_xo ? x_t + W_ho ? h_{t-1} + b_o)
g_t = tanh(W_xg ? x_t + W_hg ? h_{t-1} + b_g)c_t = f_t ⊙ c_{t-1} + i_t ⊙ g_t
h_t = o_t ⊙ tanh(c_t)

其中:

  • ? 表示卷積操作
  • 輸入 x_t 是一個多通道圖像(如幀)
  • h_t 和 c_t 是隱藏狀態和單元狀態的張量,包含空間結構

在這里插入圖片描述

參考

1、Tensor(張量)的解釋說明

Tensor(張量)就是一個多維數組。

維度舉例說明
0D3.14標量
1D[1, 2, 3]向量
2D[[1,2],[3,4]]矩陣
3DRGB 圖像:(通道, 高, 寬)
4D(batch, 通道, 高, 寬)一批圖像
5D(batch, 時間, 通道, 高, 寬)一批視頻序列(ConvLSTM 的輸入張量)

PyTorch 中:

x = torch.rand(2, 10, 1, 64, 64)  # 一個 batch=2 的視頻序列

表示:

  • 2 個樣本
  • 每個樣本有 10 幀圖像(時間維度)
  • 每幀是 1 通道(灰度圖)
  • 每幀的大小是 64×64(空間維度)

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

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

相關文章

4.8.1 利用Spark SQL實現詞頻統計

在利用Spark SQL實現詞頻統計的實戰中,首先需要準備單詞文件并上傳至HDFS。接著,可以通過交互式方法或創建Spark項目來實現詞頻統計。交互式方法包括讀取文本文件生成數據集,扁平化映射得到新數據集,然后將數據集轉成數據幀&#…

Linux相關概念和易錯知識點(41)(UDP、TCP報頭結構)

目錄 1.UDP(1)傳輸層(2)UDP報頭(3)緩沖區和sk_buff①緩沖區②sk_buff 2.TCP(1)發送和接受緩沖區(2)報頭結構①按序到達②可靠傳輸③流量控制④緊急指針 1.UDP…

光譜相機在生態修復監測中的應用

光譜相機通過多維光譜數據采集與智能分析技術,在生態修復監測中構建起?“感知-評估-驗證”?的全周期管理體系,其核心應用方向如下: 一、土壤修復效能量化評估 ?重金屬污染動態監測? 通過短波紅外(1000-2500nm)波…

[網頁五子棋]項目介紹以及websocket的消息推送(輪詢操作)、報文格式和握手過程(建立連接過程)

文章目錄 項目背景核心技術創建項目WebSocket消息推送輪詢操作 報文格式握手過程(建立連接過程) 項目背景 用戶模塊 用戶的注冊和登錄管理用戶的天梯分數,比賽場數,獲勝場數等信息 匹配模塊 依據用戶的天梯積分,來實現匹配機制 對戰模塊 把兩…

時序模型介紹

一.整體介紹 1.單變量 vs 多變量時序數據 單變量就是只根據時間預測,多變量還要考慮用戶 2.為什么不能用機器學習預測: a.時間不是影響標簽的關鍵因素 b.時間與標簽之間的聯系過于弱/過于復雜,因此時序模型依賴于時間與時間的相關性來進行預…

尚硅谷redis7 86 redis集群分片之3主3從集群搭建

86 redis集群分片之3主集群搭建 3主3從redis集群配置 找3臺真實虛擬機,各自新建 m?dir -p /myredis/cluster 新建6個獨立的redis實例服務 IP:192.168.111.175端口6381/端口6382 vim /myredis/cluster/redisCluster6381.conf bind 0.0.0.0 daemonize yes protected-mode no …

Python服務器請求轉發服務

前言: 服務器無法連接外網 配置步驟 準備python腳本服務器內下載python 示例 1.下載python創建虛擬環境以及配置 -- 磁盤空間 df -h -- 下載apt sudo yum install apt -y-- 下載python pip sudo apt install python3 python3-pip python3-venv -y-- 測試查看 …

02.K8S核心概念

服務的分類 有狀態服務:會對本地環境產生依賴,例如需要把數據存儲到本地磁盤,如mysql、redis; 無狀態服務:不會對本地環境產生任何依賴,例如不會存儲數據到本地磁盤,如nginx、apache&#xff…

Java八股-Java優缺點,跨平臺,jdk、jre、jvm關系,解釋和編譯

java優勢劣勢? 優勢:面向對象,平臺無關,垃圾回收,強大的生態系統 劣勢:運行速度慢(相比于c和rust這樣的原生編譯語言會比較慢),語法繁瑣(相比于python&…

Attention Is All You Need論文閱讀筆記

Attention is All You Need是如今機器學習研究者必讀的論文,該文章提出的Transformer架構是如今很多機器學習項目的基礎,說該文章極大推動了機器學習領域的研究也不為過。 但這么重要,也是必讀的文章對初學者來說其實并不友好,很多…

【MAC】YOLOv8/11/12 轉換為 CoreML 格式并實現實時目標檢測

在本文中,我們將詳細介紹如何將 YOLOv8/11/12 模型轉換為 CoreML 格式,并使用該模型在攝像頭實時檢測中進行目標檢測。主要適用于M1、M2、M3、M4芯片的產品。 以下教程在YOLOv8/11/12均適用,此處就以 YOLOv11 舉例 目錄 前提條件YOLOv8/11/12 轉換為 CoreML實時目標檢測結論…

Redis--緩存擊穿詳解及解決方案

緩存擊穿 緩存擊穿問題也稱熱點key問題,就是一個高并發訪問(該key訪問頻率高,訪問次數多)并且緩存重建業務比較復雜的key突然失效了,大量的請求訪問會在瞬間給數據庫帶來巨大的沖擊。 緩存重建業務比較復雜&#xff…

UniApp X:鴻蒙原生開發的機會與DCloud的崛起之路·優雅草卓伊凡

UniApp X:鴻蒙原生開發的機會與DCloud的崛起之路優雅草卓伊凡 有句話至少先說,混開框架中目前uniapp x是率先支持了鴻蒙next的開發的,這點來說 先進了很多,也懂得審時度勢。 一、UniApp X如何支持鴻蒙原生應用? UniAp…

域名解析怎么查詢?有哪些域名解析查詢方式?

在互聯網的世界里,域名就像是我們日常生活中的門牌號,幫助我們快速定位到想要訪問的網站。而域名解析則是將這個易記的域名轉換為計算機能夠識別的IP地址的關鍵過程。當我們想要了解一個網站的域名解析情況,或者排查網絡問題時,掌…

算力卡上部署OCR文本識別服務與測試

使用modelscope上的圖像文本行檢測和文本識別模型進行本地部署并轉為API服務。 本地部署時把代碼中的檢測和識別模型路徑改為本地模型的路徑。 關于模型和代碼原理可以參見modelscope上這兩個模型相關的頁面: iic/cv_resnet18_ocr-detection-db-line-level_damo iic…

大語言模型的完整訓練周期從0到1的體系化拆解

以下部分內容參考了AI。 要真正理解大語言模型(LLM)的創生過程,我們需要將其拆解為一個完整的生命周期,每個階段的關鍵技術相互關聯,共同支撐最終模型的涌現能力。以下是體系化的訓練流程框架: 階段一&am…

吃水果(貪心)

文章目錄 題目描述輸入格式輸出格式樣例輸入樣例輸出提交鏈接提示 解析參考代碼 題目描述 最近米咔買了 n n n 個蘋果和 m m m 個香蕉,他每天可以選擇吃掉一個蘋果和一個香蕉(必須都吃一個,即如果其中一種水果的數量為 0 0 0,則…

【FAQ】HarmonyOS SDK 閉源開放能力 —Account Kit(4)

1.問題描述: LoginWithHuaweiIDButton不支持深色模式下定制文字和loading樣式? 解決方案: LoginWithHuaweiIDButtonParams 中的有個supportDarkMode屬性,設置為true后,需要自行響應系統的變化,見文檔&am…

【C語言】指針詳解(接)

前言: 文接上章,在上章節講解了部分指針知識點,在本章節為大家繼續提供。 六指針與字符串:C 語言字符串的本質 在 C 語言中,字符串實際上是一個以\0結尾的字符數組。字符串常量本質上是指向字符數組首元素的指針&…

第5講、Odoo 18 CLI 模塊源碼全解讀

Odoo 作為一款強大的企業級開源 ERP 系統,其命令行工具(CLI)為開發者和運維人員提供了極大的便利。Odoo 18 的 odoo/cli 目錄,正是這些命令行工具的核心實現地。本文將結合源碼,詳細解讀每個 CLI 文件的功能與實現機制…