问题标签 [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.
python - 在 tensorflow 代码示例中无法理解 lstm 的使用
为什么pred
在任何训练迭代发生之前计算变量?我希望在每次迭代的每次数据传递期间都会pred
生成(通过RNN()
函数) ?
一定有什么我错过了。pred
类似于函数对象吗?我查看了文档tf.matmul()
并返回一个张量,而不是一个函数。
这是代码:
python - 我应该什么时候在 LSTM 代码中初始化状态?
这是 UDACITY 用于情感分类的 LSTM 代码。
这是整个句子-rnn代码的链接:udacity/sentiment-rnn
我想知道为什么他们在 for 循环下初始化单元状态以进行 epoch。
我认为当输入语句发生变化时,单元格状态必须为零初始化,所以它必须在小批量for循环语句下。
谁能解释为什么?
谢谢!
python-3.x - 张量流中的“tf.contrib.rnn.DropoutWrapper”到底是做什么的?(三题)
据我所知, DropoutWrapper 的使用如下
.
我唯一知道的是它用于训练时的辍学。这是我的三个问题
input_keep_prob、output_keep_prob 和 state_keep_prob 分别是什么?(我猜他们定义了 RNN 每一部分的 dropout 概率,但具体在哪里?)
这种情况下的 dropout 是否不仅适用于 RNN 训练,还适用于预测过程?如果是真的,有没有办法决定我是否在预测过程中使用 dropout?
- 作为tensorflow网页中的API文档,如果variational_recurrent=True dropout根据论文“Y. Gal, Z Ghahramani.“A Theoretically Grounded Application of Dropout in Recurrent Neural Networks”中的方法工作。https: //arxiv.org/ abs/1512.05287 "我大致了解了这篇论文。当我训练 RNN 时,我使用“批处理”而不是单个时间序列。在这种情况下,tensorflow会自动为批次中的不同时间序列分配不同的dropout掩码吗?
python-2.7 - 用于亚当优化器的Tensorflow variable_scope?
版本:Python 2.7.13 和 TF 1.2.1
背景:我正在尝试创建一个 LSTM 单元并传递 N x M 的输入并输出 N x M+1。我想将输出通过 softmax 层,然后通过具有负对数似然损失函数的 Adam 优化器。
问题:如标题所述,当我尝试设置我的 training_op = optimizer.minimize(nll) 时,它会崩溃并询问变量范围。我应该怎么办?
代码:
错误信息:
python-3.x - 如何在 tensorflow 中使用 python3 预测 LSTM 模型中的情绪?
在变量中加载了一些 positiveFiles 和negativeFiles
训练和测试方法
在这里,我试图以 1 或 0 的形式预测给定句子的输出。通过这个从检查点加载这个文件后..我想如何测试这个句子是肯定的(1)或否定的(0)。
请帮忙。
python - 无状态 LSTM 存在的意义何在?
LSTM 的主要目的是利用其记忆特性。基于此,无状态 LSTM 存在的意义何在?难道我们不通过这样做将它“转换”成一个简单的神经网络吗?
换句话说.. LSTM 的无状态使用是否旨在对输入数据中的序列(窗口)进行建模 - 如果我们在 keras 的拟合层中应用shuffle = False - (例如,对于 10 个时间步长的窗口捕获任何模式10 个字符的单词之间)?如果是,为什么我们不将初始输入数据转换为与正在检查的定序器的形式相匹配,然后使用普通的 NN?
如果我们选择shuffle = True那么我们将丢失任何可以在我们的数据中找到的信息(例如时间序列数据 - 序列),不是吗?在这种情况下,我希望 in 的行为类似于普通 NN,并通过设置相同的随机种子在两者之间获得相同的结果。
我的想法是否遗漏了什么?
谢谢!
keras - .fit() 层的 shuffle = 'batch' 参数如何在后台工作?
当我使用.fit()
图层训练模型时,参数 shuffle 预设为 True。
假设我的数据集有 100 个样本,批量大小为 10。当我设置时shuffle = True
,keras 首先随机选择样本(现在 100 个样本具有不同的顺序),并且在新的顺序上它将开始创建批次:批次1:1-10,批次2:11-20等
如果我设置shuffle = 'batch'
它应该如何在后台工作?直观地说,使用前面的 100 个样本数据集的示例,批量大小 = 10,我的猜测是 keras 首先将样本分配给批次(即批次 1:样本 1-10 遵循数据集原始顺序,批次 2:11-20 遵循数据集的原始顺序也是如此,批次 3 ... 依此类推),然后打乱批次的顺序。因此模型现在将在随机排序的批次上进行训练,例如:3(包含样本 21 - 30)、4(包含样本 31 - 40)、7(包含样本 61 - 70)、1(包含样本 1 - 10 ), ... (我制定了批次的顺序)。
我的想法是对的还是我错过了什么?
谢谢!
tensorflow - Tensorflow 堆叠 GRU 单元
我正在尝试在 tensorflow 中使用 MultiRNNCell 和 GRUCell 实现堆叠 RNN。
从GRUCell的默认实现可以看出,GRUCell的“输出”和“状态”是一样的:
这是有道理的,因为它与定义一致。但是,当我们将它们与 MultiRNNCell 堆叠时,定义为:
(代码已被压缩以突出显示相关位)
在这种情况下,任何不是第一个 GRUCell 的 GRUCell 都会收到相同的“输入”和“状态”值。本质上,它在单个输入上运行,即前一层的输出。
由于重置/更新门的值取决于两个输入值(输入/状态)的比较,这最终不会成为冗余操作,最终会直接从第一层传递值吗?
MultiRNNCell 的这种架构似乎主要是在设计时考虑了 LSTM 单元,因为它们将输出和单元状态分开,但不适用于 GRU 单元。
keras - 使用 LSTM 预测特定时间序列
我有一个非常具体的问题:
我有 2 个表:配置和选择
- 配置:包含大约 300 列的每周条目
- 选择:包含或多或少相同的每周条目,但每列的数量较少
表格示例:
周 | 一个 | 乙 | c | d | ...
第 1 周 | 340 | 650 | 740 | 570 | ...
第 2 周 | 320 | 450 | 700 | 500 | ...
第 3 周 | ...
我想做的是:
- 根据配置训练 LSTM
神经网络的结构:300 个输入神经元,X 隐藏层神经元,300 个输出神经元
- 我的输入神经元“是”配置值
- 我的输出神经元“是”选择值
目标:根据配置预测未来的选择
是否可以使用 keras - LSTM 实现此设置?
我感谢您的帮助 :)