问题标签 [lstm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
deep-learning - 如何从特征向量或单词生成句子?
我使用 VGG 16-Layer Caffe 模型作为图像说明,每张图像有几个说明。现在,我想从这些标题(单词)中生成一个句子。
我在一篇关于 LSTM 的论文中读到,我应该从训练网络中移除 SoftMax 层,并将层中的 4096 特征向量fc7
直接提供给 LSTM。
我是 LSTM 和 RNN 的新手。
我应该从哪里开始?是否有任何教程显示如何通过序列标签生成句子?
neural-network - 多元序列学习的特征表示
我一直在尝试训练一个模型来从单音乐谱中生成序列。在互联网上,我发现了一些使用字符级 lstm 网络和音乐 ABC 表示法的人的例子(很多使用 karpathy 在 Torch 中的实现:http: //karpathy.github.io/2015/05/21/rnn-effectiveness /)。
虽然这看起来相当有效,但序列并没有包含尽可能紧凑的音乐信息。我的想法是将音乐信息直接表示为一系列音符。但是,一个音符有多个特征:音高、八度、持续时间、是否连接到下一个音符等。我不确定如何将这些信息正确表示为特征向量,也没有找到很多关于这个主题的信息.
我的数据集在音符音高和长度方面的多样性非常有限。它可能包含 3 个八度,10 个不同的音符时长,只有 4/4 拍号。然而,代表这些音符的每个不同组合会得到一个巨大的输入特征向量。
任何建议将不胜感激!
machine-learning - 如何使用 4096D 向量作为 LSTM 的输入?
我正在尝试构建一个为图像生成句子描述的深度学习系统。为此,我使用了经过训练的 CNN caffe 模型来获得 4096 维的特征向量。据我了解,我需要将这个 4096 维向量作为 LSTM 的输入。这如何在 caffe 或其他框架中完成?
machine-learning - 何时停止训练神经网络?
我正在尝试使用 RNN 进行特定领域的分类研究,并积累了数千万条文本。由于运行整个数据集需要几天甚至几个月的时间,我只选择了一小部分进行测试,比如 100 万个文本(80% 用于训练,20% 用于验证)。我使用词向量化对整个语料库进行了预训练,并将 Dropout 应用于模型以避免过度拟合。当它在 12 小时内训练 60000 条文本时,损失已经下降到相当低的水平,准确率达到 97%。我应该继续还是不继续?对继续训练有帮助吗?
它仍在运行第一个 epoch,恐怕如果我现在停止,模型将无法覆盖整个...
neural-network - LSTM NN:前向传播
我是神经网络的新手,正在从头开始创建 LSTM。我有前向传播工作......但我对在训练模型、反向传播和内存管理的上下文中的前向传播中的移动部分有一些疑问。
所以,现在,当我运行前向传播时,我将新列堆叠f_t, i_t, C_t, h_t, etc
在它们对应的数组上,因为我为 bptt 梯度计算积累了先前的位置。
我的问题是 4 部分:
1)为了保留合理的长期记忆,我需要回溯多长时间?(内存向后延伸 20-40 个时间步可能是我的系统所需要的(尽管我可以从更长的时间段中受益——这只是获得良好性能的最低限度——而且我只是在争取最低限度的权利现在,所以我可以让它工作)
2)一旦我认为我的模型“经过训练”,我是否有任何理由保持超过 2 个时间步长来计算下一个C
和h
值?(C_t
Cell 状态在哪里,h_t
是 LSTM 网络的最终输出) 在这种情况下,我需要多个版本的前向传播函数
3)如果我要训练的时间序列数据有限,并且我想训练我的模型,那么当我在训练数据上一遍又一遍地训练它时,我的模型的性能是否会收敛(而不是在一些最大平均性能附近振荡) ? 如果我实施 dropout,它会收敛吗?
4)我需要考虑多少渐变分量?当我计算各种矩阵的梯度时,我在时间步 t 得到主要贡献,从时间步 t-1 得到次要贡献(并且计算一直递归到 t=0)?(换句话说:主要贡献是否在梯度计算中占主导地位——由于次要分量引起的斜率变化是否足以保证在我反向传播时间步长时实现递归......)
python-2.7 - 为 LSTM 二进制分类构建语音数据集
我正在尝试使用 theano 进行二进制 LSTM 分类。我已经浏览了示例代码,但是我想构建自己的。
我有一小部分正在使用的“Hello”和“Goodbye”录音。我通过为它们提取 MFCC 特征并将这些特征保存在文本文件中来对它们进行预处理。我有 20 个语音文件(每个 10 个),我正在为每个单词生成一个文本文件,因此 20 个文本文件包含 MFCC 功能。每个文件都是一个 13x56 矩阵。
我现在的问题是:如何使用这个文本文件来训练 LSTM?
我对此比较陌生。我也浏览了一些关于它的文献,但没有发现对这个概念的真正理解。
任何使用 LSTM 的更简单方法也将受到欢迎。
python - 如何在 TensorFlow 中处理具有可变长度序列的批次?
我试图使用 RNN(特别是 LSTM)进行序列预测。但是,我遇到了可变序列长度的问题。例如,
我正在尝试使用基于此基准的简单 RNN 来预测当前单词之后的下一个单词,以构建 PTB LSTM 模型。
但是,num_steps
参数(用于展开到先前的隐藏状态)在每个 Tensorflow 的 epoch 中应该保持不变。基本上,批处理句子是不可能的,因为句子的长度不同。
在这里,num_steps
在我的情况下,每个句子都需要更改。我已经尝试了几个黑客,但似乎没有任何工作。
machine-learning - TensorFlow 中的堆叠 RNN 模型设置
我有点迷失在 TensorFlow 中为文本分类构建堆叠 LSTM 模型。
我的输入数据是这样的:
我的代码骨架如下所示:
问题是无论数据集有多大,损失和准确率都没有改善的迹象(看起来完全是随机的)。我做错什么了吗?
更新:
machine-learning - Keras 中的序列标记
我正在研究句子标签问题。我自己完成了嵌入和填充,我的输入看起来像:
对于句子中的每个单词,我想预测四个类中的一个,所以我想要的输出应该如下所示:
我的简单网络架构是:
它在训练时显示大约 95%,但是当我尝试使用训练有素的模型预测新句子时,结果真的很糟糕。看起来模型刚刚学习了一些关于第一个单词的类,并且每次都显示出来。我认为问题可以是:
自己写的padding(句尾零向量),会不会让学习变差?
我应该尝试学习不同长度的句子,没有填充(如果是的话,你能帮我如何在 Keras 中训练这种模型吗?)
错误的学习目标,但我尝试了均方误差、二元交叉熵等,它没有改变。
我认为带有
TimeDistributedDense
andsoftmax
的东西我已经知道它是如何工作的,但仍然不是 100% 确定。
我很高兴看到有关此问题的任何提示或帮助,谢谢!
python - 如何堆叠 LSTM 层以对语音文件进行分类
我一直在尝试实现一个基于 LSTM 的分类器来对离散语音进行分类。我用 13 mfcc 创建了特征向量。对于给定的文件,具有 [99, 13] 的 2D 向量。在遵循 mnist_irnn 示例之后,我可以设置单层 RNN 来分类我的语音文件。但现在我想向网络添加更多层。因此,我一直在尝试用两个 LSTM 层和 softmax 层作为输出层来实现网络。在这里浏览了许多帖子后,我可以按如下方式设置网络,在模型构建期间它不会抛出任何异常。
我一直在不同的点尝试不同的价值观。(目前我一直在尝试使用小样本,因此值非常小)但是,现在它在训练期间抛出异常。一些尺寸不匹配。
我想知道我在这里做错了什么。我整天都在浏览代码,但我仍然无法找出尺寸不匹配的原因。
此外,如果有人能解释 output_dim 的含义,我将非常感激。(当我们在给定层中有n个节点时,是单个节点输出的向量的形状吗?它应该等于下一层的节点数吗?)