问题标签 [rnn]

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.

0 投票
1 回答
83 浏览

tensorflow - 使用 LSTM 进行序列标记中的未知标记

我已经用 a,b,c 标签标记了数据集,并且必须用 a,b,c,others 类别标记传入的序列。它应该对已知序列进行分类和标记,或者说我以前没有见过它。

我认为我应该自定义我的网络以使标签独立。因此标签分数的总和不应为 1,并且每个标签分数都独立于其他标签分数。

例如

那么我应该在我的神经网络中更改什么设置:

0 投票
1 回答
203 浏览

python-3.x - 张量流中批次中每个项目的LSTM初始状态

我正在使用tf.nn.dynamic_rnn在 tensorflow 中运行 LSTM。我有一个N初始状态向量的张量和一个M = N * n输入的张量。每个系列由n输入项组成,我想用第 i 个初始状态向量评估第 i 个输入向量集,如下所示:

有没有办法直接通过单个调用tf.nn.dynamic_rnn和上述张量来做到这一点,还是我必须为每个初始状态向量及其相应的输入(导致len(initial_states)调用tf.nn.dynamic_rnn)求助于一个循环?

0 投票
1 回答
1372 浏览

tensorflow - LSTM 后跟均值池 (TensorFlow)

我知道LSTM Followed by Mean Pooling有一个类似的主题,但那是关于 Keras 的,我在纯 TensorFlow 中工作。

我有一个 LSTM 网络,其中重复由以下方式处理:

我为每个样本传递正确的序列长度(用零填充)。在任何情况下,输出都包含不相关的输出,因为根据序列长度,某些样本比其他样本产生更长的输出。

现在我正在通过以下方法提取最后一个相关输出:

sequence_length - 1我作为索引传递的地方。关于最后一个主题,我想选择所有相关输出,然后选择平均池,而不仅仅是最后一个。

现在,我尝试将嵌套列表作为索引传递给extract_axis_1tf.stack不接受。

有什么解决方法吗?

0 投票
2 回答
183 浏览

python - 增加 RNN 的复杂性

我一直在研究一个大数据集,我一直在尝试不同的机器学习算法。我使用 XGBoost 获得了非常好的结果,但我获得的最佳结果来自 SVM。但由于我的数据分布在 8 年,而且它是一个时间序列模型,因此我也想到了使用 RNN。我一直在通过增加层数或每层的节点数来试验 RNN-LSTM 的超参数,因为没有这样的经验法则。但我什至还没有接近我的 XGBoost 结果。我注意到的奇怪的事情是,即使我将 epoch 的数量从 100 增加到 1000,或者我将隐藏层的数量从 1 增加到 3,或者我改变每层的节点,模型的性能总是相同的既适用于训练集,也适用于测试集。我正在分享我的 RNN-LSTMs 代码,如果我遗漏了什么,请告诉我。从理论上讲,它至少与 SVM 一样好,如果不是更好的话,因为数据质量也非常好而且很长。

我无法从这个模型中获得可比的准确性。我还可以在 RNN 中尝试哪些其他事情,以使其至少类似于其他机器学习算法?

0 投票
1 回答
79 浏览

neural-network - RNN 在 Keras 上的运行情况如何?

我正在阅读他们网站上的 Keras 文档([ https://keras.io/getting-started/faq/]),我注意到他们对批次的定义说他们在批次中并行运行每个样本。对于几乎任何类型的神经网络,这都是完全可以接受的,但是如果我正在运行一个有状态设置为默认值 False 的 RNN,这是否意味着我的每个样本的隐藏状态都被重置了。

我的印象是,在对权重进行更新之前,每个批次都是按顺序运行的,因此隐藏状态的唯一损失是批次更改时(因为我已将 stateful 设置为 False)。

我的理解错了吗?

0 投票
2 回答
560 浏览

rnn - 用于 ML 字符串匹配的神经网络 RNN 算法

我在 csv 中有原始数据,列名 w1 有公司名称。

我正在编写一个神经网络 ML 程序,该程序将自行学习识别相似的公司名称。仅使用 ML 算法,如神经网络、RNN 等

我创建了一个列标签来分类相似的名称属于同一组,所以我的数据集变成了。

我创建了哈希矩阵,但我无法将此矩阵提供给神经网络。

附上我的代码

在这里我有问题,因为我不知道如何将这个 d1 哈希矩阵输入到神经网络中,当我运行输入这个哈希矩阵到神经网络时,我得到了错误,

有没有其他方法可以做到这一点,我也不确定如何将这个 d1 哈希矩阵输入神经网络

0 投票
1 回答
1628 浏览

model - keras RNN 中的错误非常低,但准确性低

更多的是一个理论问题。如果我在最后一层是 softmax 而输入层是 LSTM 的二元分类中的交叉熵损失接近于零,那么训练集上的准确率达到 54% 是否有意义?我会假设它会过度拟合数据,如果我的损失如此之低,那么我将拥有一个高精度的极端过度拟合函数。

我也尝试了不同的学习率,0.01、0.001、0.0001,结果完全相同。我还在第一个 LSTM 下添加了第二个 LSTM 层,以增加模型复杂性以故意过度拟合模型,但这也没有做任何事情。

我缺少什么理论概念?

并在开始时设置矩阵。当我早些时候测试其他东西时,有一些重叠。

这是股票数据,但我创建了一个分类器,所以它只是一个 0 或 1,基于它在 60 分钟内是更高还是更低。所以一开始就有很多随机性。我只是假设 LSTM 会过拟合并且我会得到很高的准确度。

这些是我的损失和准确性。

0 投票
1 回答
13723 浏览

machine-learning - LSTM Keras API 预测多个输出

我正在训练一个 LSTM 模型,使用以下 3 个不同特征的 50 步序列作为输入:

使用以下因变量

下面的代码仅用于预测 a,我如何让它在给定的时间步长预测并返回 [a,b,c] 的向量?

0 投票
1 回答
1075 浏览

python - 使用 TensorFlow 进行预测

我真的是张量流和所有这个领域的初学者,但我在 CS231n 课上看过 Andrej Karpathy 的所有讲座,所以我理解了代码。

所以这是代码(不是我的):https ://github.com/nfmcclure/tensorflow_cookbook/tree/master/09_Recurrent_Neural_Networks/02_Implementing_RNN_for_Spam_Prediction

这是一个 RNN 垃圾邮件分类器,效果很好(接受我在最后尝试创建预测的部分)。

我只是想了解如何为此创建一个预测函数,看起来像这样:

最后几行是我最后一次尝试给我以下错误: tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype float [[Node: Placeholder = Placeholder[dtype=DT_FLOAT, shape=<unknown>, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]

此外,我尝试使用使用TensorFlow 模型进行预测来做一些事情,我还阅读了https://www.tensorflow.org/serving/serving_basic并且我尝试过的每件事都失败了......

由于我只是一个初学者,因此欢迎解释,但我不确定我是否知道如何编码,所以你也可以发布代码答案。

(Python 3.6 顺便说一句)

谢谢!

0 投票
1 回答
616 浏览

tensorflow - 在 Tensorflow 中处理来自 tf.nn.dynamic_rnn 的输出

我将一个 3 层 LSTM 传递给该tf.nn.dynamic_rnn函数。我想以dynamic_rnn一种特定的方式处理函数的输出:也就是说,我想让dynamic_rnn输出流到一个完全连接的层。的输出dynamic_rnn是 rank-3 张量,形状为[batch_size, sequence_length, hidden_dim].

我曾经将output[:, -1]其形状为 的传递[batch_size, hidden_dim]给 FC 层,因为我曾经只想使用dynamic_rnn.

但是,这次我想使用整个序列的输出,即output[:],它是一个 3-d 张量,但是与 FC 层的连接的权重用 2-d tensor 表示W