Tensorflow RNN输入大小

弗拉德·费罗尤(Vlad Firoiu)

我正在尝试使用tensorflow创建循环神经网络。我的代码是这样的:

import tensorflow as tf

rnn_cell = tf.nn.rnn_cell.GRUCell(3)

inputs = [tf.constant([[0, 1]], dtype=tf.float32), tf.constant([[2, 3]], dtype=tf.float32)]

outputs, end = tf.nn.rnn(rnn_cell, inputs, dtype=tf.float32)

现在,一切运行正常。但是,我对实际发生的事情感到困惑。输出尺寸始终是批量大小x rnn单元格隐藏状态的尺寸-它们如何完全独立于输入尺寸?

如果我的理解是正确的,则在每个步骤将输入连接到rnn的隐藏状态,然后乘以权重矩阵(以及其他操作)。这意味着权重矩阵的尺寸需要取决于输入大小,这是不可能的,因为rnn_cell是在声明输入之前创建的!

弗拉德·费罗尤(Vlad Firoiu)

在看到关于tensorflow的GRU实现的问题答案,我意识到了发生了什么。与我的直觉相反,GRUCell构造函数根本不创建任何权重或偏差变量。相反,它创建自己的变量作用域,然后在实际调用时按需实例化变量。Tensorflow的变量作用域机制可确保变量仅创建一次,并在后续对GRU的调用中共享。

我不确定他们为什么决定采用这种相当混乱的实现方式,据我所知,这是没有记载的。对我来说,使用python的对象级变量作用域将tensorflow变量封装在GRUCell本身中似乎更合适,而不是依赖于其他隐式作用域机制。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Tensorflow:RNN与char输入

来自分类Dev

Keras/Tensorflow 输入到 RNN 层

来自分类Dev

Tensorflow 最大输入层大小

来自分类Dev

RNN中的隐藏大小与输入大小

来自分类Dev

Tensorflow RNN序列训练

来自分类Dev

Tensorflow 动态 RNN - 形状

来自分类Dev

TensorFlow的tf.nn.dynamic_rnn运算符的输入张量如何构造?

来自分类Dev

TensorFlow的tf.nn.dynamic_rnn运算符的输入张量如何构造?

来自分类Dev

如何将向量和标签的 Pandas DataFrame 转换为 TensorFlow 中 RNN 的输入

来自分类Dev

使用 tensorflow 更改 mobilenet_ssd 的输入图像大小

来自分类Dev

用于可变大小输入的 Tensorflow Lite

来自分类Dev

Tensorflow RNN细胞权重共享

来自分类Dev

Tensorflow网格LSTM RNN TypeError

来自分类Dev

TensorFlow 动态 RNN 未训练

来自分类Dev

Tensorflow RNN 输出张量形状

来自分类Dev

使用 Tensorflow 2 创建 RNN

来自分类Dev

tensorflow / tflearn输入形状

来自分类Dev

Tensorflow NN输入尺寸

来自分类Dev

TensorFlow模型的输入

来自分类Dev

TensorFlow 打印输入张量?

来自分类Dev

TensorFlow CSV 输入

来自分类Dev

Tensorflow,在RNN中保存状态的最佳方法?

来自分类Dev

TensorFlow中的RNN模型内存不足

来自分类Dev

在Tensorflow RNN示例中从ID获取单词

来自分类Dev

通过rnn ValueError进行Tensorflow反向传播

来自分类Dev

Tensorflow RNN文本生成示例教程

来自分类Dev

在Tensorflow中创建高度可定制的RNN

来自分类Dev

在Tensorflow RNN示例中从ID获取单词

来自分类Dev

在Tensorflow RNN中使用CSV训练数据