如何处理极长的LSTM序列长度?

2024-02-06

我有一些数据以非常高的速率(大约每秒数百次)采样。对于任何给定实例,这会导致平均序列长度很大(约 90,000 个样本)。整个序列有一个标签。我正在尝试使用 LSTM 神经网络将新序列分类为这些标签之一(多类分类)。

然而,使用具有如此大序列长度的 LSTM 会导致网络变得相当大。

有哪些方法可以有效地“分块”这些序列,以便我可以减少神经网络的序列长度,同时仍然保留在整个实例中捕获的信息?


当序列很长时,RNN 可能会面临以下问题:梯度消失和梯度爆炸.

有方法。首先你需要明白的是为什么我们需要尝试上面的方法?这是因为随时间反向传播由于上述问题,可能会变得非常困难。

是的,LSTM 的引入大大减少了这个问题,但当它太长时,你仍然可能会遇到这样的问题。

所以一种方法是裁剪渐变。这意味着您为梯度设置了上限。参考这个堆栈溢出问题 https://stackoverflow.com/questions/36498127/how-to-effectively-apply-gradient-clipping-in-tensor-flow

那么你问的这个问题

有哪些方法可以有效地“分块”这些序列?

一种方法是随时间截断的反向传播。有多种方法可以实现这一点截断的BPTT。简单的想法是

  1. 仅计算给定时间步数的梯度 这意味着,如果您的序列有 200 个时间步长,并且只给出 10 个时间步长,那么它将仅计算 10 个时间步长的梯度,然后将该 10 个时间步长中存储的内存值传递到下一个序列(作为初始细胞状态)。这个方法是什么使用tensorflow计算截断的BPTT。 https://www.tensorflow.org/tutorials/recurrent#truncated-backpropagation

2.获取完整序列并且仅反向传播选定时间块中某些给定时间步长的梯度。这是一个持续的方式

这是我找到的最好的文章,解释了这些截断的 BPTT 方法。好简单。参考这个截断反向传播的风格 https://r2rt.com/styles-of-truncated-backpropagation.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理极长的LSTM序列长度? 的相关文章

  • 如何反转 dropout 来补偿 dropout 的影响并保持期望值不变?

    我正在学习神经网络中的正则化deeplearning ai课程 在dropout正则化中 教授说 如果应用dropout 计算出的激活值将比不应用dropout时 测试时 更小 因此 我们需要扩展激活以使测试阶段更简单 我理解这个事实 但我
  • 神经网络不能立即重现?

    通过使用反向传播导数 弹性 的前馈神经网络中的随机权重初始化 误差图上的初始位置位于某个随机谷的顶部 该随机谷可能是也可能不是局部最小值 可以使用方法来克服局部最小值 但假设这些方法没有被使用 或者在给定的地形上不能很好地工作 那么神经网络
  • 无法使用tensorflow 2.0.0 beta1保存模型

    我已尝试了文档中描述的所有选项 但没有一个允许我将模型保存在tensorflow 2 0 0 beta1中 我还尝试升级到 也不稳定 TF2 RC 但这甚至破坏了我在测试版中工作的代码 所以我很快就回滚到测试版 请参阅下面的最小复制代码 我
  • 如何使用 Encog 标准化 CSV 文件?

    我需要规范化 CSV 文件 我关注了 Jeff Heaton 写的这篇文章 http www heatonresearch com content how does encog 30 normalize 这是我的 一些 代码 File so
  • 使用 keras 澄清 Yolo v3 模型输出

    我将 yolo v3 模型与 keras 一起使用 该网络为我提供了形状如下的输出容器 1 13 13 255 1 26 26 255 1 52 52 255 所以我找到了这个link https www cyberailab com ho
  • 使用神经网络包进行多项分类

    这个问题应该很简单 但文档没有帮助 我正在使用 R 我必须使用neuralnet多项式分类问题的包 所有示例均针对二项式或线性输出 我可以使用二项式输出进行一些一对一的实现 但我相信我应该能够通过使用 3 个单元作为输出层来做到这一点 其中
  • 如何防止我的程序陷入局部最大值(前馈人工神经网络和遗传算法)

    我正在开发一个前馈人工神经网络 ffann 它将以简单计算的形式获取输入并返回结果 充当袖珍计算器 结果不会很准确 人工网络使用遗传算法对权重进行训练 目前我的程序陷入局部最大值 正确答案为 5 6 误差范围为 1 30 正确答案 10 误
  • 使用 TensorFlow 和 Keras 的卷积神经网络精度较低 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我计划创建一个 CNN 来预测蘑菇类型 并从互联网上收集了 2500 多张照片 数据集有 156 个类别 不同类型的蘑菇 我在 Tensorfl
  • 如何使用pycaffe重构caffe网络

    我想要的是 加载网络后 我将分解一些特定的图层并保存新的网络 例如 原网 数据 gt conv1 gt conv2 gt fc1 gt fc2 gt softmax New net 数据 gt conv1 1 gt conv1 2 gt c
  • 如何使用 lstm 执行多类多输出分类

    I have multiclass multioutput classification see https scikit learn org stable modules multiclass html https scikit lear
  • Encog:BasicNetwork:无需预先构建数据集的在线学习

    我正在尝试使用 encog 库作为强化学习问题的函数逼近器 更准确地说 我正在尝试启动并运行多层感知器 BasicNetwork 由于我的代理将根据我选择的任何 RL 算法以某种方式探索世界 因此我无法预先构建任何 BasicNeuralD
  • ValueError:混淆矩阵不支持多标签指示符

    我在尝试在二元分类问题中使用混淆矩阵时遇到此错误 Y and Yhat都是numpy数组 我已经尝试过 argmax作为建议的解决方案 我不再收到错误 但输出不是我知道的混淆矩阵 Accuracy 0 9982449999999999 Ac
  • 神经网络的激活函数选择[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们可以对神经网络的隐藏层和输出层使用不同的激活函数吗 使用这种方案有什么明显的优势吗 对于网络的最后一层 激活单元也取决于任务 分类
  • 从 [tensorflow 1.00] 中的 softmax 层提取概率

    使用张量流 我有一个 LSTM 分类模型 以 softmax 作为最终节点 这是我的 softmax 层 with tf name scope Softmax as scope with tf variable scope Softmax
  • sigmoid 的导数

    我正在使用反向传播技术创建一个神经网络进行学习 我知道我们需要找到所使用的激活函数的导数 我正在使用标准 sigmoid 函数 f x 1 1 e x 我已经看到它的导数是 dy dx f x f x 1 f x 这可能是一个愚蠢的问题 但
  • Tensorflow:ValueError:形状必须具有相同的等级,但为 0 和 2

    我在乘以 x1 Wo1 时遇到形状错误 但我找不到原因 错误 ValueError 形状必须具有相同的等级 但为 0 和 2将形状 0 与其他形状合并 对于 add 2 x 操作 Pack 输入形状 20 1 import tensorfl
  • 如何返回 Keras 中验证丢失的历史记录

    使用 Anaconda Python 2 7 Windows 10 我正在使用 Keras 示例训练语言模型 print Build model model Sequential model add GRU 512 return seque
  • TensorFlowdynamic_rnn 回归器:ValueError 维度不匹配

    我想构建一个用于回归的玩具 LSTM 模型 This http mourafiq com 2016 05 15 predicting sequences using rnn in tensorflow html不错的教程对于初学者来说已经太
  • 使用神经网络包保存神经网络图时遇到问题 - R

    我正在使用neuralnetR 中的包 但是将绘图保存到磁盘时遇到问题 data iris attach iris library neuralnet nn lt neuralnet as numeric Species Sepal Len
  • Tensorflow ValueError:形状 (?, 1) 和 (?,) 不兼容

    当我用 3 个 lstm 层运行代码时 我遇到了这个错误 不知道如何修复它 任何人都可以帮忙 这里 MAX SEQUENCE LENGTH 250 运行成本函数后 我收到错误 ValueError 形状 1 和 不兼容 Generate a

随机推荐

  • 正在验证 MVC 隐藏字段

    我的页面上有一些字段 它们的显示和消失取决于您在页面上所做的下拉选择 所以 举例来说 我有 section Html LabelFor model gt model AuctionTypeId div Html DropDownList A
  • 在我的下一个 Android 应用程序更新中使用新的数据库版本覆盖现有的已发布 Sqlite DB

    我想覆盖旧应用程序版本附带的现有数据库 并在下一个应用程序更新中使用新完全填充的数据库 然而 onUpgrade 永远不会被调用 尽管我尝试在将 DB version 传递给 SQLiteOpenHelper 类时更改它 public cl
  • FTDI 的 libMPSSE 上“遇到 NULL 表达式”

    我的问题是针对 FTDI 的 libMPSSE 库在 Linux 上与 USB 转串口 SPI I2C 等 适配器配合使用的问题 当我执行与该库链接的任何程序时 会调用方法 Init libMPSSE 无需显式调用 并抛出以下消息 Infr
  • 如何在 Python 中的 Opencv Cam 窗口中提供启动、停止、捕获和关闭按钮

    如何在视频捕获窗口中提供开始 停止 捕获和关闭按钮来启动 停止 拍摄快照 关闭窗口 我使用以下代码打开相机进行视频流 import cv2 cv as cv cv NamedWindow camera 1 capture cv Captur
  • 3ds Max .NET SDK 和创建参考制作器

    我有 Net DLL for Max 和 ui 我想对视口中某些节点的参数更改做出反应 我想到的最简单的解决方案是创建 ReferenceMaker 插件并为我想要观看的节点设置参考 根据文档应该是 public class Referen
  • Valgrind 导致长双精度数字问题

    我的代码中有以下函数 用于检查数字是否具有允许的值 在日志空间中 template
  • ASP.NET MVC 3 模型绑定资源

    我正在寻找一个很好的资源 它非常全面地描述了模型绑定如何与 ASP NET MVC 3 或在较小程度上 MVC 2 和不同的方法一起工作 除了零碎的内容之外 我找不到关于这个主题的任何好的资源 网上的信息更多的是关于 如何做 X 而不是解释
  • ASP.NET MVC3 - 您如何处理探测请求?

    我们的网站上线了 当然 我们开始收到大量的探测请求 喜欢 blog wp login php admin admin php etc 所以问题是 你用它们做什么 现在 在每种情况下都会抛出 404 错误 并且 elmah 会发送有关该错误的
  • 为什么我们不能在某个进程上接受()套接字并从其子进程中接收()数据?

    我正在尝试在 Linux 上实现一个简单的 Web 服务器 它连接到客户端 浏览器 接收来自客户端的一些请求 例如 GET 然后用所需的文件发回响应 我正在使用套接字通信 我想在服务器启动时创建一个工作进程 子进程 池 其工作是处理传入的请
  • 如何将肥皂基本身份验证请求添加到 WSDL

    我怎样才能对 WSDL 进行 Soap AUTH BASIC 身份验证 以便阅读 WSDL 的人知道我需要针对特定 方法进行该操作 使用下面的示例 我成功地将 SOAP 基本身份验证传递到另一端的 php Web 服务 PHP net So
  • PHP imageftbbox imagettftext - 简单的字母间距/字距调整?

    有谁知道使用 imagettftext 进行字母间距 字距调整的简单方法 我的脚本按照我现在的需要工作 但我确实可以使用具有 CSS 样式的生成文本 letter spacing 0 01em 所以它与页面上的标准文本相匹配 但我没有看到任
  • 如何选择列表中所有无序的元素?

    这个问题源于评论里的讨论这个答案 https stackoverflow com questions 1390832 how to sort nearly sorted array in the fastest time possible
  • 如何使用executeReader()方法检索一个单元格的值

    我需要执行以下命令并将结果传递给标签 我不知道如何使用 Reader 来做到这一点 有人可以帮我吗 String sql SELECT FROM learer WHERE learer id index SqlCommand cmd new
  • 使用 CoreData 嵌套撤消组

    我想将撤消管理器添加到 coredata 支持的 iPhone 应用程序中 当用户尝试添加新对象 通过点击 按钮 时 我加载一个新的模式视图控制器并在 viewDidLoad 中启动一个新的撤消组 当用户按下 取消 按钮时 我想回滚 can
  • 删除 Spark 数据框中重复的所有记录

    我有一个包含多列的 Spark 数据框 我想找出并删除列中具有重复值的行 其他列可能不同 我尝试使用dropDuplicates col name 但它只会删除重复的条目 但仍会在数据框中保留一条记录 我需要的是删除最初包含重复条目的所有条
  • Google 街景中像素距地面的高度/标高

    我正在寻找谷歌街景中每个像素距地面的高度 我知道可以计算的几件事是 像素间距 https stackoverflow com questions 21591462 get heading and pitch from pixels on s
  • 删除特定的kafka消息

    我想指示 kafka 尽可能删除一条消息 如果使用键和日志压缩 可以将键设置为消息 ID 并将消息内容设置为 null 但我寻找更直接的东西 不依赖于设置密钥 例如通过消息 ID None
  • 如何在 NSMenuItem 内绘制内联样式标签(或按钮)

    当 App Store 有更新时 它会在菜单项中显示一个内联样式元素 如下面屏幕截图中的 1 new 另一个我们可以看到这种菜单的地方是10 10 Yosemite的分享菜单 当您安装任何添加新共享扩展的应用程序时 共享菜单中的 更多 项目
  • AWS SSO、Codecommit(GRC git 克隆链接)和 npm install

    单点登录 SSO 在 AWS 账户上实施 运行后aws sso login 使用 GRC 链接 克隆节点和存储库是可行的 然而 运行npm install在 repo 中会导致不同的错误 前任 包 json dependencies com
  • 如何处理极长的LSTM序列长度?

    我有一些数据以非常高的速率 大约每秒数百次 采样 对于任何给定实例 这会导致平均序列长度很大 约 90 000 个样本 整个序列有一个标签 我正在尝试使用 LSTM 神经网络将新序列分类为这些标签之一 多类分类 然而 使用具有如此大序列长度