问题标签 [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.
elasticsearch - 使用机器学习创建异常检测
弹性堆栈的新x-pack ML给我留下了深刻的印象。似乎他们的技术随着时间的推移学习数据模式,并且可以预测多个域中的异常。
我想知道可以使用什么方法和网络拓扑来创建类似的功能。假设由于 x-pack 适用于时间序列数据,RNN 将是一个好的开始,这是否公平?
对您的意见和参考感兴趣。
python - Tensorflow:递归神经网络批量训练
我正在尝试在 Tensorflow 中实现 RNN。我正在编写自己的函数,而不是使用 RNN 单元来练习。
问题是序列标记,输入大小是 [32, 48, 900],其中 32 是批量大小,48 是时间步长,900 是词汇大小,它是一个热编码向量。输出是 [32, 48, 145],其中前两个维度与输入相同,但最后一个维度是输出词汇量大小(one-hot)。基本上这是一个 NLP 标记问题。
我收到以下错误:
InvalidArgumentError(参见上文的追溯):logits 和标签必须相同大小:logits_size=[48,145] labels_size=[1536,145]
实际的 labels_size 是 [32, 48, 145] 但它在不受我控制的情况下合并了前两个维度。仅供参考 32 * 48 = 1536
如果我以批量大小 1 运行我的 RNN,它会按预期工作。我不知道如何解决这个问题。我在代码的最后一行遇到了问题。
我粘贴了代码的相关部分:
tensorflow - Tensorflow:如果 LSTM 被“重用”用于新输入,它的隐藏状态会重置吗?在一次向前传球中
问题:我有一个变量范围名称为“rnn”的 LSTM 单元,并将其分配为“范围”。
如果我在图表中使用 scope.reuse_variables(),我知道权重被重用于新的输入 X...
但是如果重用权重,LSTM隐藏状态会自动重置吗?...或者我是否必须在每次调用 scope.reuse_variables() 时显式重置隐藏状态
谢谢 !
python - 如何使原始 rnn 发出自定义输出而不是默认值?
根据原始 RNN 的 Tensorflow 文档,您可以在初始时间步长中将 cell_output 设置为您自己的形状,此时 time=0 以发出您自己的输出。
目前,它仅在我们将初始(时间 = 0)单元输出设置为 None 并且发出的其余单元输出等于前一个单元输出时才有效,但这不是我们想要的。我们希望发出我们自己的输出,而不是 RNN 单元的内部状态。
下面是相关的源代码:
这是我们在尝试创建图表时收到的错误消息:
ValueError:这两个结构没有相同的嵌套结构。第一个结构: ,第二个结构: (,)。
欢迎任何想法
tensorflow - 具有 time_major=True 的 dynamic_rnn 的输出形状
我正在使用 TensorFlow 来实现 RNN。我这样创建循环单元:
(1, ?, 16)
正如我所期望的那样,它将输出形状报告为。第二个维度是?
因为max_time
未知。
现在我将其切换到time_major=True
. 根据文档,我希望只交换前两个轴,所以输出形状应该是(?, 1, 16)
. 但事实并非如此。相反,它是(1, 1, 16)
. 这是怎么回事? max_time
仍然未知,那么为什么将其硬编码为1?
tensorflow - tf.contrib.seq2seq.TraininHelper 在 Bahdanau seq2seq 实现中期望什么输入?
在阅读了Bahdanau 论文并将其翻译成当前的 tf.contrib.seq2seq API 之后,我对应该输入解码器的内容感到困惑。特别是,TrainingHelper 看起来应该收到一个时移的标签列表。
下面是我的工作示例,但我不确定它是否正确。
注意倒数第三行。
TrainingHelper 是否应该将编码器注释输入注意力包装的解码器系统?
- 亲:如果
inputs
不是 shape likeannotations
,则 AttentionWrapper 最终会抱怨形状 - 这种形状在系统中出现的唯一位置是在编码器中。 - 缺点:如果这是正确的,解码器从哪里获得基本事实?
- 缺点:注意力包装的解码器(
attn_cell
)已经知道从哪里获取注释(这不是注意力机制的重点吗?)
无论如何,实际上,我得到了一个可训练的系统,但在我看来有些可疑(包括它相对于简单的 LSTM 表现不佳,但目前这绝对是切线)。
tensorflow - 如何将`None` Batch Size 传递给 tensorflow 动态 rnn?
我正在尝试建立一个CNN+LSTM+CTC
单词识别模型。
最初我有一个图像,我正在转换使用 CNN
文字图像提取的特征并构建一系列特征,我将其作为顺序数据传递给RNN
.
以下是我将特征转换为顺序数据的方式
[[a1,b1,c1],[a2,b2,c2],[a3,b3,c3]] -> [[a1,a2,a3],[b1,b2,b3],[c1,c2,c3]]
:a,b,c
使用CNN
.
目前我可以将常量传递batch_size
给模型common.BATCH_SIZE
,但我想要的是能够将变量传递batch_size
给模型。
如何才能做到这一点 ?
更新:
我收到如下错误:
neural-network - 了解一个简单的 LSTM pytorch
这是文档中的 LSTM 示例。我不知道了解以下内容:
- 什么是输出大小,为什么没有在任何地方指定?
- 为什么输入有 3 个维度。5和3代表什么?
- h0 和 c0 中的 2 和 3 分别代表什么?
编辑:
*** RuntimeError: 预期矩阵,得到 3D、2D 张量
tensorflow - 在 tensorflow 上训练 LSTM 时,GPU 温度读数为 88 C
我在 tensorflow 中有一个 1 层 LSTM 模型,并且我的 GPU 的温度读数在训练阶段变得相当高。始终在 80 C 和 90 C 之间变化。我的 GPU 是 24/7 冷藏室中的水冷 gtx 1080“超级时钟”版本。该模型有效,但这个温度让我担心。我想知道这是否正常和安全。
我正在用标记化的 reddit 评论训练 LSTM 的下一个单词预测问题。我从 wildml.com 的不同教程中得到了这个想法。以下是有关它的一些详细信息:
- TensorFlow 1.2.1、Cuda tk 8.0、Cudnn 6.0、Nvidia 驱动程序 375.66
- 我的训练数据包含 20 万条 reddit 评论。
- 我的字典由 8000 个单词组成,这意味着每个预测有 8000 个分类
- 我使用 GLOVE 预训练的 100 维维基百科词嵌入
- 我没有使用占位符来提供我的输入。这一切都由 TFRecordfiles 阅读器完成,它将示例输入到 100k 容量的随机洗牌队列
- 从随机洗牌队列,它进入一个填充 FIFO 队列,在那里我生成了 20 个零填充小批量
- 20 个大小的小批量进入一个 tf.dynamic_rnn(),其中 LSTM 单元的隐藏维度为 150
- 我使用 tf.sign() 掩盖损失并使用 Adam 优化器最小化结果
我注意到当我提高小批量大小时温度会升高很多。1 号小批量(单个示例),读数在 72-75 摄氏度之间。对于 10 号小批量,它立即达到 78 摄氏度并保持在 78-84 摄氏度的范围内。对于 20 号小批量,84 -88 C. 30 小批量,87-92 C。
如果我将隐藏维度提高到 200、250、300 等,同时保持小批量大小固定,我也会得到类似的温度升高。
我也训练了相同的模型,但只使用占位符提供数据,即不使用 TFRecord、队列和小批量。它保持在 65 C 左右,但显然远未优化和理想地使用占位符来喂网。
我真的很感谢你的帮助,说实话,我有点绝望。
- - - - - - - - -编辑 - - - - - - - - - - -
事实证明,我的 BIOS 上已将水冷却器泵配置为根据 CPU 温度而变化……显然 GPU 温度不会影响它,这就是发生的事情。它以 50% 的容量运行。好吧,我已经将它调整为始终保持 100%,现在相同的模型以大约 100 的最高温度运行。83 C. 仍然不完美,但有很大的改进。我想由于我的模型的复杂性 + 我的 GPU 的 1.8 GHz 时钟非常高,我无能为力。
deep-learning - 图解释深度学习
我正在尝试建立一个对句子进行分类的模型。我正在使用递归神经网络(RNN)模型“GRUcell”,我有以下图表。我使用的损失函数是交叉熵。你能解释一下为什么每次迭代后的损失接近 0 到 1 吗?我找不到任何解释,谢谢。 在此处输入图像描述