长短期记忆网络(LSTM)重点!(自己汇集了很多资料在这篇博客)

news2025/1/17 23:05:21

文章目录

  • 参考资料推荐
  • 基础知识
  • 评论区精髓
  • 代码实现
    • 底层实现
    • 简洁实现

在这里插入图片描述

参考资料推荐

心心念念 学了这么久 ,终于学到第57集了。
参考一篇掘金的图文LSTM

李宏毅老师的手撕视频配套课件
27:39 开始手撕

看完了李沐老师的LSTM又去找了李宏毅老师的课程然后发现又多了个导师。学成归来,感觉这块没听明白的同学也可以去找一下李宏毅的视频,李宏毅老师手算lstm真的猛,感觉看完他的视频之后对这块的理解更深了。链接:

【【LSTM长短期记忆网络】3D模型一目了然,带你领略算法背后的逻辑】
这个视频不错:

基础知识

在这里插入图片描述
在这里插入图片描述
这两个东西相互独立,没有说 有了一个 ,就不能有另一个。
C 范围 是 -1—+1之间,
F 和 I 的值 都在0-1 之间,
所以这两个加起来的值,可能在 -2到+2之间。
所以再做一次 tanh,把取值放到-1到+1之间,
在做一次点乘,来决定要不要输出这个玩意。

在这里插入图片描述
比起之前重置放在最前面,这个重置放在了最后面。

比起GRU 多了个c。
在这里插入图片描述

评论区精髓

在这里插入图片描述

代码实现

底层实现

import torch
from torch import nn
from d2l import torch as d2l

batch_size, num_steps = 32, 35
train_iter, vocab = d2l.load_data_time_machine(batch_size, num_steps)


def get_lstm_params(vocab_size, num_hiddens, device):
    num_inputs = num_outputs = vocab_size

    def normal(shape):
        return torch.randn(size=shape, device=device) * 0.01

    def three():
        return (normal(
            (num_inputs, num_hiddens)), normal((num_hiddens, num_hiddens)),
                torch.zeros(num_hiddens, device=device))

    W_xi, W_hi, b_i = three()
    W_xf, W_hf, b_f = three()
    W_xo, W_ho, b_o = three()
    W_xc, W_hc, b_c = three()
    W_hq = normal((num_hiddens, num_outputs))
    b_q = torch.zeros(num_outputs, device=device)
    params = [W_xi, W_hi, b_i, W_xf, W_hf, b_f, W_xo, W_ho, b_o, W_xc, W_hc, b_c, W_hq, b_q]
    for param in params:
        param.requires_grad_(True)
    return params
# 初始化函数
def init_lstm_state(batch_size, num_hiddens, device):
    return (torch.zeros((batch_size, num_hiddens), device=device),
           torch.zeros((batch_size, num_hiddens),device=device))
# 实际模型
def lstm(inputs, state, params):
    [W_xi, W_hi, b_i, W_xf, W_hf, b_f, W_xo, W_ho, b_o, W_xc, W_hc, b_c, W_hq, b_q] = params
    (H, C) = state
    outputs = []
    for X in inputs:
        I = torch.sigmoid((X @ W_xi) + (H @ W_hi) + b_i)
        F = torch.sigmoid((X @ W_xf) + (H @ W_hf) + b_f)
        O = torch.sigmoid((X @ W_xo) + (H @ W_ho) + b_o)
        C_tilda = torch.tanh((X @ W_xc) + (H @ W_hc) + b_c)
        C = F * C + I * C_tilda
        H = O * torch.tanh(C)
        Y = (H @ W_hq) + b_q
        outputs.append(Y)
    return torch.cat(outputs, dim=0), (H, C)
# 训练
vocab_size, num_hiddens, device = len(vocab), 256, d2l.try_gpu()
num_epochs, lr = 500, 1
model = d2l.RNNModelScratch(len(vocab), num_hiddens, device, get_lstm_params, init_lstm_state, lstm)
d2l.train_ch8(model, train_iter, vocab, lr, num_epochs, device)

简洁实现

# 简洁实现
num_inputs = vocab_size
lstm_layer = nn.LSTM(num_inputs, num_hiddens)
model = d2l.RNNModel(lstm_layer, len(vocab))
mode = model.to(device)
d2l.train_ch8(model, train_iter, vocab, lr, num_epochs, device)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/44588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

西门子机床联网

一、设备信息确认 1、确认型号 数控面板拍照确认: 此系统为:西门子828D 还有一种情况是面板无任何版本信息,这时就需要进入系统里面再确认。 2、确认通讯接口 1、数控面板的后面 X130为网络标号 2、其他位置 其他位置一般是前面位置用…

H3C mstp+vrrp实验 新华三杯拆解

H3C mstpvrrp实验一、实验拓扑二、实验要求局域网规划:可靠性:三、实验配置(一)链路聚合1.创建链路聚合组2.检查(二)VLAN1.创建vlan2.放行vlan3.检查(三)MSTP1.配置MSTP域2.配置主备…

通俗易懂的java设计模式(1)-单例模式

什么是单例模式? 单例模式是java中最简单的一种设计模式 需要注意的问题: 1.单例类有且只能有一个实例 2.单例类必须自己创建出这个实例,并提供给外界 那么如何自己创建实例而不让外界创建呢?很简单,我们将无参的构造函…

麦芽糖-刀豆球蛋白A,maltose-ConcanavalinA,刀豆球蛋白A-PEG-麦芽糖

麦芽糖-刀豆球蛋白A,maltose-ConcanavalinA,刀豆球蛋白A-PEG-麦芽糖 中文名称:麦芽糖-刀豆球蛋白A 英文名称:maltose-ConcanavalinA 别称:刀豆球蛋白A修饰麦芽糖,ConA-麦芽糖 还可以提供PEG接枝修饰麦芽糖,麦芽糖…

SpringCloud-alibaba-Nacos 从理论到落地使用

Nacos: Dynamic Naming and Configuration Service 就是: 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。、 下面是生态图: Nacos EurekaConfig Bus 即 Nacos就是注册中心 配置中心的组合 他能干什么呢? 1、替代Eu…

防火墙firewalld

RHEL7中有几种防火墙共存:firewalld、iptables、ebtables等。基于iptables的防火墙默认不启动,但仍然可以继续使用。RHEL7默认使用firewalld作为防火墙,管理工具是firewall-cmd。RHEL7的内核版本是3.10,在此版本的内核里防火墙的包…

论文阅读2 Learning Hierarchy-Aware Knowledge Graph Embeddings for Link Prediction

目录 问题 创新 1、Introduction 2、相关工作 3、HAKE模型 原文:[1911.09419] Learning Hierarchy-Aware Knowledge Graph Embeddings for Link Prediction (arxiv.org) 问题 现有的知识图嵌入模型主要关注对称/反对称、反转和复合symmetry/antisymmetry, i…

EquiVSet

又搬来一个于最优子集的神经集合函数学习方法 集合函数被广泛应用于各种场景之中,例如商品推荐、异常检测和分子筛选等。在这些场景中,集合函数可以被视为一个评分函数:其将一个集合作为输入并输出该集合的分数。我们希望从给定的集合中选取…

【新知实验室-TRTC开发】实时音视频之欢度世界杯

目录 一、什么是TRTC 二、用5分钟跑通一个demo 1、开通腾讯云-TRTC 2、获取demo必须的两把钥匙 2.1输入应用名称 2.2下载对应的源码包(手机、web、小程序等) 2.3拿到钥匙 2.4完成 三、搭建一起看世界杯应用 1、解压源码(耗时30S&#x…

Linux下top命令详解

Linux下top命令用法详解 作为一名Linux软件攻城狮,top命令大家应该并不陌生。top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。top可以动态显示过程,不断刷新当前状态。top命令提供了实时的对系统处理器的状态监视。它将…

Kotlin高仿微信-第5篇-主页-通讯录

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

【博客547】keepalived实现vip的原理剖析

keepalived实现vip的原理剖析 keepalived实现vip的原理:vrrp gratuitous arp 1、vrrp vrrp更多细节参考:vrrp技术白皮书 相关术语: VRRP工作过程 VRRP的工作过程为: 1、虚拟路由器中的路由器根据优先级选举出Master。Master…

【Python】五、程序循环结构

文章目录实验目的一、掌握while语句二、掌握for循环和range()内建函数三、掌握循环语句嵌套四、掌握break语句和continue语句五、编写程序实现猜数字的游戏1.设计思路2.设计算法3.参考代码4.实验截图实验目的 掌握循环结构;培养学生动手查阅资料能力和解决实际问题的…

matlab实现线性参数的最小二乘法处理

一、实验目的 最小二乘法原理是一种在多学科领域中获得广泛应用的数据处理方法。通过实验要求掌握最小二乘法基本原理、正规方程以及组合测量的最小二乘法处理办法。 二、实验原理 (1)测量结果的最可信赖值应在残余误差平方和为最小的条件下求出&#…

破局模块总结 -- 宁向东的清华管理学课总结

1. 管理学就是要破局而出 为什么需要管理学?德鲁克说,我们需要选择正确的事情去做,并且把事情作对。 管理学是一个分析、权衡和决策的学问,分析、权衡和选择的目的是什么?就是要破局而出。 管理學是研究人類管理活動…

《Linux运维总结:基于快照模式迁移单节点elasticsearch数据(方案二)》

一、背景信息 说明:由于整个系统需要从互联网迁移到政务外网,elasticsearch作为其中一个组件,也需要将 所有索引数据 迁移到政务外网。 由于数据量比较大,所以使用快照的模式对elasticsearch数据进行备份及恢复操作,提…

[附源码]计算机毕业设计springboot病人跟踪治疗信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

接口测试当中的权限限制测试和状态机测试【杭州多测师_王sir】【杭州多测师】...

一、权限限制 权限限制我需要单独拎出来讲,它很重要!很多系统中都存在系统管理员、普通用户等不同角色的用户,系统管理员拥有一些普通用户没有的权限,比如系统管理员可以发布公告,而普通用户则只能查看,系统…

【MATLAB教程案例48】初识点云——pcshow,pointCloud,pcwrite,pcread,pcdenoise等点云基本操作函数学习

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 本课程效果预览 目录 1.软件版本 2.什么是点云?

〖全域运营实战白宝书 - 高转化文案速成篇①〗- 文案速成导学与常见文案类型

大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 &#x1f4e…