相关参考:

训练后的LSTM模型在进行预测时的初始h_n和c_n是什么或应该怎么设置?

Keras中对RNN网络的statefull和stateless设置:

链接:https://keras.io/zh/getting-started/faq/#how-can-i-use-stateful-rnns

===============================================

必须要承认,由于平时很少用RNN,所以对于LSTM的stateful和stateless这两者的区别也是头一次听说。

首先我们要知道LSTM的初始值这个概念,LSTM在初始时框架一般默认对初始值h_0和c_0赋值为0,具体见pytorch官方文档:

https://pytorch.org/docs/stable/generated/torch.nn.LSTM.html#torch.nn.LSTM

知道了这个初始值的概念后我们可以知道LSTM在每个batch的训练和预测时都是会使用这个默认值的,也就是说每个batch时h_0和c_0都是被设置为0的,由于在LSTM这样的RNN网络中每个sample都是一个时序类型的数据,因此在一个batch的计算中每个sample在计算不同时间步时上一时间步计算得到的h_t和c_t会作为t+1步时的h_0和c_0的输入值,但是当每个batch计算结束后计算下个batch数据时默认都是将h_0和c_0默认赋值为0的。但是,有时候可能sample过长,我们可以把原本的一个sample切分成前后两个sample,也可能本身sample之间就具备时序关系,这时候在一个epoch中计算上下两个batch时如果将上一个batch计算结束时的h_0和c_0作为下个batch计算时的初始值会提升模型的性能,而这种方式的LSTM则被称为stateful,而默认的那种前后batch都将初始值设置为0的默认方式被称为stateless。

框架中使用staleful的LSTM时需要保证上下batch中batch_size是相同的,并且batch内的sample不能shuffle;而且要知道只有少数的情况,如前后batch的数据有时序关联的情况下才适合使用stateful的LSTM,否则适用于默认的stateless的LSTM。

===============================================

 
 
 
 
 

循环神经网络 —— LSTM 有状态模型(stateful LSTM)和无状态模型(stateless LSTM)的更多相关文章

  1. 有状态的EJB对象和无状态的EJB对象

    一,定义有状态Bean和无状态Bean 有状态Bean: @Stateful @Remote public class StatefulEjbBean implements StatefulEjb{ ...

  2. http协议是无状态协议,它的无状态指的是什么,如何解决这种情况

    http是无状态的协议,也是不安全的协议, 它的无状态是指对于事务处理没有记忆能力,缺少状态意味着后续的操作需要前面的信息. 解决办法:1,通过cookie解决,2,通过session会话保存.

  3. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  4. TensorFlow学习笔记(六)循环神经网络

    一.循环神经网络简介 循环神经网络的主要用途是处理和预测序列数据.循环神经网络刻画了一个序列当前的输出与之前信息的关系.从网络结构上,循环神经网络会记忆之前的信息,并利用之前的信息影响后面节点的输出. ...

  5. TensorFlow框架(6)之RNN循环神经网络详解

    1. RNN循环神经网络 1.1 结构 循环神经网络(recurrent neural network,RNN)源自于1982年由Saratha Sathasivam 提出的霍普菲尔德网络.RNN的主 ...

  6. 【学习笔记】循环神经网络(RNN)

    前言 多方寻找视频于博客.学习笔记,依然不能完全熟悉RNN,因此决定还是回到书本(<神经网络与深度学习>第六章),一点点把啃下来,因为这一章对于整个NLP学习十分重要,我想打好基础. 当然 ...

  7. ServiceFabric极简文档-5.0 Service Fabric有状态与无状态

    Service Fabric 应用程序方案 2017/08/14 作者 Edward Chen Jack Zeng Azure Service Fabric提供了一个可靠而灵活的平台,可用于编写和运行 ...

  8. 无状态服务(stateless service)

    一.定义 无状态服务(stateless service)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本 ...

  9. 这个知识点不错,,学习一下先。。。无状态服务(stateless service)(转)

    这样的应用,显得高级一些哟~~:) +================== http://kyfxbl.iteye.com/blog/1831869 ========================= ...

  10. 有状态与无状态 cookie session

    服务器所维护的与客户交互活动的信息称为状态信息.不保存任何状态信息的服务器称为无状态服务器(stateless server),反之则称为有状态服务器(stateful server). 面向连接对应 ...

随机推荐

  1. 夜莺官方文档优化第一弹:手把手教你部署和架构讲解,消灭所有部署失败的 case!干!

    前置说明 各种环境的选型建议 Docker compose 方式:仅仅用于简单测试,不推荐在生产环境使用 Docker compose,升级起来挺麻烦的,除非你对 Docker compose 真的很 ...

  2. Spring源码——AOP实现原理

    引言 Spring AOP(Aspect Orient Programming),AOP翻译过来就是面向切面编程,它体现的是一种编程思想,是对面向对象编程(OOP)的一种补充. 在实际业务开发过程中, ...

  3. vue3 父子组件间的传值通信

    1.父转子 // 父组件 <template> <div> <div> <p>{{ count }}</p> <Son :countF ...

  4. 【解决方案】Java 互联网项目中消息通知系统的设计与实现(上)

    目录 前言 一.需求分析 1.1发送通知 1.2撤回通知 1.3通知消息数 1.4通知消息列表 二.数据模型设计 2.1概念模型 2.2逻辑模型 三.关键流程设计 本篇小结 前言 消息通知系统(not ...

  5. 呼吁 《上海市卫生健康&ldquo;信息技术应用创新白皮书》改正 C# 被认定为A 组件是错误认知

    近日,<上海市卫生健康"信息技术应用创新"白皮书>(以下简称<白皮书>)正式发布,介绍了"医疗信创核心应用适配方法.公立医院信息系统及全民健康信息 ...

  6. [好物推荐] Rime的86五笔输入法配置

    一个比较好用的Rime五笔输入法配置文件, 个人已经使用很多年了. 官网: https://github.com/KyleBing/rime-wubi86-jidian 安装方式: /home/xxx ...

  7. .NET6 个人博客-推荐文章加载优化

    个人博客-推荐文章加载优化 前言 随着博客文章越来越多,那么推荐的文章也是越来越多,之前推荐文章是只推荐8篇,但是我感觉有点少,然后也是决定加一个加载按钮,也是类似与分页的效果,点击按钮可以继续加载8 ...

  8. P3749 题解

    既然是求最大值而且有收益有代价,所以考虑建立一个最大权封闭子图模型. 收益 正的美味值是收益,所以假若 \(d_{i,j} \geq 0\) 则建边 \((s,pos_{i,j},d_{i,j})\) ...

  9. 2.模块文件以及增删改查(CURD操作)

    创建 db.py db.py 文件是我们管理数据库连接和模型基类的地方.它让我们的代码更加模块化和可维护,实际生产中也是类似的,无论是在 FastAPI 或者 Flask 等框架中,当使用到 SqlA ...

  10. HGAME2023 week1-week2

    确实是高质量比赛,学到了很多知识.认识到了很多的不足. 任重而道远啊... hgame_week1 web Classic Childhood Game F12检查源码,打开Events.js 发现 ...