当前位置: 首页 > news >正文

LSTM学习笔记

上一篇文章中我们提到,CRNN模型中用于预测特征序列上下文的模块为双向LSTM模块,本篇中就来针对该模块的结构和实现做一些理解。

Bidirectional LSTM模块结构如下图所示:

在Pytorch中,已经集成了LSTM模块,定义如下:

CLASStorch.nn.LSTM(self, input_size, hidden_size, num_layers=1, bias=True, batch_first=False, dropout=0.0, bidirectional=False, proj_size=0, device=None, dtype=None)

 参数说明:

  • input_size:输入的feature数;
  • hidden_size:隐藏状态h的的feature数;
  • num_layers:递归层的数量。如果num_layers=2,意味着将两个LSTM堆叠在一起,第二个LSTM模块的输入为第一个LSTM的输出,由第二个LSTM输出最终结果。
  • bias:偏置,默认为True,若设为False,则不使用b_ih和b_hh(这两个参数会在下文说明)
  • batch_first:为True时,输入和输出形状为(batch, seq, feature),否则为(seq, batch, feature)。
  • dropout:默认为0。若为非零值,则在每个LSTM层的输出上引入dropout层,dropout概率为设置的dropout值。
  • bidirectional:默认为False。若为True,则为双向LSTM,在CRNN网络中,我们将该参数设置为True。 
  • proj_size:默认为0。若设置为非零值,意味着使用映射大小的size,关于proj_size,pytorch文档中有如下说明:

对于输入序列中的每个元素,每一层需要进行如下计算:

其中,

  • xt​为t时刻的输入;
  • ht是t时刻的隐藏状态,ht-1为t-1时刻的隐藏状态;
  • ct为t时刻的元组状态(cell state);
  • it、ft、gt和ot分别为input gate、forget gate、cell gate、和output gate;
  • σ为sigmoid 函数;
  • ⊙为Hadamard乘积(矩阵点乘)。

对于多层LSTM,输入为上一层的隐含状态,Pytorch文档中对此有较详细的说明:

关于可学习模型参数的说明:

  • weight_ih_l[k]:第k层的input-hidden权重参数(W_ii|W_if|W_ig|W_io),k=0时,形状为(4*hidden_size, input_size) ;k>0时,,若proj_size为0,则权重参数形状为(4*hidden_size, num_directions * hidden_size),若proj_size>0,则权重参数形状为(4*hidden_size, num_directions * proj_size)。
  • weight_hh_l[k]:第k层的hidden-hidden权重参数(W_hi|W_hf|W_hg|W_ho)。若proj_size=0,权重形状:(4*hidden_size, hidden_size);若proj_size>0,则权重形状为(4*hidden_size, proj_size)。
  • bias_ih_l[k]:第k层的input-hidden偏置(b_hi|b_hf|b_hg|b_ho),形状为(4*hidden_size)。
  • bias_hh_l[k]:第k层的hidden-hidden偏置(b_hi|b_hf|b_hg|b_ho),形状为(4*hidden_size)。
  • weight_hr_l[k]:第k层的projection权重,形状为(proj_size, hidden_size),该参数只有在proj_size>0的时候存在。
  • weight_ih_l[k]_reverse:weight_ih_l[k]的反向权重,只在bidirectional=True的时候存在。
  • weight_hh_l[k]_reverse:weight_hh_l[k]的反向权重,只在bidirectional=True的时候存在。
  • bias_ih_l[k]_reverse:bias_ih_l[k]的反向权重,只在bidirectional=True的时候存在。
  • bias_hh_l[k]_reverse:bias_hh_l[k]的反向权重,只在bidirectional=True的时候存在。
  • weight_hr_l[k]_reverse:weight_hr_l[k]的反向权重,只在bidirectional=True的时候存在。

参考资料:LSTM — PyTorch 2.1 documentation

相关文章:

LSTM学习笔记

上一篇文章中我们提到,CRNN模型中用于预测特征序列上下文的模块为双向LSTM模块,本篇中就来针对该模块的结构和实现做一些理解。 Bidirectional LSTM模块结构如下图所示: 在Pytorch中,已经集成了LSTM模块,定义如下&…...

Android 13.0 Recent列表不显示某个app

1.概述 在13.0 的系统产品rom定制化开发中,在点击导航栏最近任务列表时,如果做到不显示某个app 呢 一种做法是在app中直接处理 一种做法是在framework中处理 接下来看这两种处理方法 1, app中处理 为该应用AndroidManifest xml文件中主MainActivity设置属性 android:exclu…...

速盾网络:高防ip是什么

速盾网络:高防IP是什么 在当今信息化社会中,网络安全问题日益突出,各种网络攻击威胁层出不穷。为了保护企业的网络安全,提高网络业务的稳定性,高防IP应运而生。那么,什么是高防IP呢? 高防IP是…...

全志A133AndroidQ编译方式

编译uboot: cd longan/brandy/brandy-2.0 ./build.sh -p sun50iw10p1 //A133-android-10-plus\longan\brandy\brandy-2.0\u-boot-2018\u-boot.bin复制为u-boot-sun50iw10p1.bin 或者 //longan\brandy\brandy-2.0\u-boot-2018\configs\sun50iw10p1_defconfig cd …...

2024首更---Web Service 教程

Web Services 简介 Web Services 可使您的应用程序成为 Web 应用程序。 Web Services 通过 Web 进行发布、查找和使用。 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: HTMLXML 如果您希望首先学习这些项目,请在…...

Day29- 贪心算法part03

一、K 次取反后最大化的数组和 题目一:1005. K 次取反后最大化的数组和 1005. K 次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰…...

RPA与ChatGPT的融合:智能化流程的未来

RPA(Robotic Process Automation)是一种利用软件机器人模拟人类操作的技术,可以实现对各种业务流程的自动化执行。ChatGPT是一种基于深度学习的自然语言生成模型,可以根据给定的上下文生成流畅、连贯、有逻辑的文本。RPA与ChatGPT…...

Ubuntu安装maven并且配置阿里源

ubuntu环境搭建专栏🔗点击跳转 Ubuntu系统环境搭建(十二)——Ubuntu安装maven并且配置阿里源 文章目录 Ubuntu系统环境搭建(十二)——Ubuntu安装maven并且配置阿里源1.安装maven1.1更新源列表1.2安装1.3验证 2.配置阿…...

如何通过idea使用JDK8.0创建Spring项目

目前 IDEA 进行了优化,所以我们在创建 Spring 项目时会发现,以及不能选择通过 JDK8.0 创建了,这是因为官方已经不再提供 JDK8.0 创建 Spring 项目,我们可以通过修改创建 Spring 项目的路径来解决该问题 在创建 Spring 项目的页面&…...

Spark读取kafka(流式和批数据)

spark读取kafka(批数据处理) # 按照偏移量读取kafka数据 from pyspark.sql import SparkSessionss SparkSession.builder.getOrCreate()# spark读取kafka options {# 写kafka配置信息# 指定kafka的连接的broker服务节点信息kafka.bootstrap.servers: n…...

经典目标检测YOLO系列(二)YOLOV2的复现(1)总体网络架构及前向推理过程

经典目标检测YOLO系列(二)YOLOV2的复现(1)总体网络架构及前向推理过程 和之前实现的YOLOv1一样,根据《YOLO目标检测》(ISBN:9787115627094)一书,在不脱离YOLOv2的大部分核心理念的前提下,重构一款较新的YOLOv2检测器,来对YOLOV2有…...

怎样使用崭新的硬盘

新买的一块硬盘,接到电脑上,打开机器,却找不到新的硬盘,怎么回事?新的硬盘是坏的么?怎样才能把新硬盘用起来? 可能有几种原因导致您的电脑无法识别新的硬盘。以下是一些建议的解决方法&#xff…...

Kafka-多线程消费及分区设置

目录 一、Kafka是什么?消息系统:Publish/subscribe(发布/订阅者)模式相关术语 二、初步使用1.yml文件配置2.生产者类3.消费者类4.发送消息 三、减少分区数量1.停止业务服务进程2.停止kafka服务进程3.重新启动kafka服务4.重新启动业…...

计算机导论06-人机交互

文章目录 人机交互基础人机交互概述人机交互及其发展人机交互方式人机界面 新型人机交互技术显示屏技术跟踪与识别(技术)脑-机接口 多媒体技术多媒体技术基础多媒体的概念多媒体技术及其特性多媒体技术的应用多媒体技术发展趋势 多媒体应用技术文字&…...

hot100:07接雨水

题目链接: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 算法思想: 这里采取的是暴力解法和双指针的解法,但是这个题目还有其他的两种解法(单调栈和动态规划,同学可以自行了解&#xff…...

Docker安装MySQL教程分享(附MySQL基础入门教程)

docker安装MySQL Docker可以通过以下命令来安装MySQL容器: 首先确保已经在计算机上安装了Docker。如果没有安装,请根据操作系统的不同进行相应的安装。 打开终端或命令提示符,并运行以下命令拉取最新版本的MySQL镜像: docker pu…...

麒麟V10挂载iso,配置yum源

本文介绍yum 如何挂载本地镜像源 1) 拷贝镜像到本地 2) 执行以下命令: # mount -o loop 镜像路径及镜像名字 /mnt(或 media) 挂载前 挂载后 3) 进入/etc/yum.repos.d(yum.repos.d 是一个目录,该目录是分析 RPM 软件…...

《Linux C编程实战》笔记:信号的捕捉和处理

Linux系统中对信号的处理主要由signal和sigaction函数来完成&#xff0c;另外还会介绍一个函数pause&#xff0c;它可以用来响应任何信号&#xff0c;不过不做任何处理 signal函数 #include <signal.h> void (*signal(int signum, void (*handler)(int)))(int);可以分解…...

python算法与数据结构---单调栈与实践

单调栈 单调栈是一个栈&#xff0c;里面的元素的大小按照它们所在栈的位置&#xff0c;满足一定的单调性&#xff1b; 性质&#xff1a; 单调递减栈能找到左边第一个比当前元素大的元素&#xff1b;单调递增栈能找到左边第一个比当前元素小的元素&#xff1b; 应用场景 一般用…...

文心一言使用分享

ChatGPT 和文心一言哪个更好用&#xff1f; 一个直接可以用&#xff0c;一个还需要借助一些工具&#xff0c;还有可能账号会消失…… 没有可比性。 通用大模型用于特定功能的时候需要一些引导技巧。 import math import time def calculate_coordinate(c, d, e, f, g, h,…...

统信UOS/麒麟KYLINOS用户看过来:除了Termius,这款开源免费的SSH工具electerm更香!

国产操作系统用户的SSH工具新选择&#xff1a;electerm深度体验报告 对于统信UOS和麒麟KYLINOS用户而言&#xff0c;远程服务器管理是日常工作中的高频需求。Termius作为老牌SSH工具确实表现不俗&#xff0c;但今天我们要探讨的electerm&#xff0c;或许能给你带来意想不到的惊…...

瑞芯微RK3572正式发布,中阶AIoT八核处理器,性能功耗双突破

5月8日&#xff0c;瑞芯微正式发布面向中阶AIoT市场的八核处理器RK3572。这款新品以8nm先进制程为基础&#xff0c;在高性能、低功耗与全栈 AI 能力之间实现突破性平衡&#xff0c;为消费电子、智能硬件等广泛场景提供极具竞争力的算力底座。根据官方数据。RK3572相比上一代中阶…...

好书推荐《VirtualLab Fusion入门与进阶实用教程(第二版)》

目 录第一章 VirtualLab Fusion理论基础 1 1.1 几何光学和光线追迹 1 1.2 物理光学和光场追迹 1 1.2.1 统一场追迹 3 1.2.2 第二代场追迹 6 第二章 VirtualLab Fusion安装与更新 10 2.1 VirtualLab 版本说明及系统配置要求 10 2.2 VirtualLab安装与更新 11 2.3 安装过程中可能遇…...

DeepSeek那些官方不会告诉你的隐藏功能,用好3个算你厉害

DeepSeek那些官方不会告诉你的隐藏功能&#xff0c;用好3个算你厉害 DeepSeek上线这么久&#xff0c;你真的把它用透了吗&#xff1f; 今天这期&#xff0c;威少把自己用了一年DeepSeek的经验整理了一下&#xff0c;发现有5个功能&#xff0c;官方没有重点推荐&#xff0c;但用…...

统信UOS离线部署实战:手把手教你用yum缓存提取sshpass等软件包(附完整命令)

统信UOS离线部署全流程指南&#xff1a;从缓存提取到依赖解析 在高度安全隔离的内网环境中&#xff0c;统信UOS系统管理员常面临一个核心挑战&#xff1a;如何将联网环境获取的软件包完整迁移到离线机器。与常见的/var/cache/yum路径不同&#xff0c;统信UOS的缓存机制有其特殊…...

Go语言性能分析:pprof与trace

Go语言性能分析&#xff1a;pprof与trace 1. pprof使用 import ("net/http/pprof"_ "net/http/pprof" )func main() {http.ListenAndServe(":6060", nil) }2. trace使用 import "runtime/trace"func main() {f, _ : os.Create("t…...

别死磕数据线!聊聊EMMC BGA布线里那些能删掉的‘废脚’

别死磕数据线&#xff01;EMMC BGA布线中那些被忽略的"废脚"优化策略 在PCB layout工程师的日常工作中&#xff0c;EMMC存储器的BGA封装布线常常让人头疼不已。0.5mm的球间距、密集的数据线、严格的阻抗要求&#xff0c;这些因素叠加在一起&#xff0c;往往让设计者…...

免费本地语音识别的终极解决方案:3步实现完全离线实时语音转文字

免费本地语音识别的终极解决方案&#xff1a;3步实现完全离线实时语音转文字 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 在数字化办公和在线学习日益普及的今天&#xff0c;你是否还在为云端语音识别服务的隐私…...

别再傻傻分不清了!用一张图看懂SRE、DevOps工程师和传统运维到底差在哪

从技能图谱到职业选择&#xff1a;SRE、DevOps与传统运维的实战边界 在数字化转型浪潮中&#xff0c;企业技术岗位的职责边界正经历着前所未有的重构。当招聘网站上同时出现"SRE工程师"、"DevOps专家"和"云运维主管"时&#xff0c;许多从业者会陷…...

国内开通 GPT 会员的自助充值流程记录

国内用户开通 GPT Plus / Pro&#xff0c;比较常见的卡点是支付方式、流程步骤和账号安全。我看了下 cdk.hohy6.com 这个页面&#xff0c;它的流程比较直接&#xff1a;选择套餐&#xff0c;填写 Session Token&#xff0c;支付宝付款&#xff0c;然后系统为自己的 ChatGPT 账号…...