Tensorflow 将输入传递到tf.nn.static\n

Tensorflow 将输入传递到tf.nn.static\n,tensorflow,neural-network,recurrent-neural-network,Tensorflow,Neural Network,Recurrent Neural Network,根据文件规定,static\u rnn的第二个参数应设置为“输入的长度T列表,每个输入都是形状的张量[批处理大小,输入大小],或这些元素的嵌套元组。” 我将列列表传递给了static\u rnn,但我得到了ValueError:linear需要2D参数。因此,input\u size不能为1。input\u size和T具体指什么?为什么input\u size不能为1 我突然想到,static\u rnn可能需要一个矩阵包含一个热向量的列表。在这种情况下,input size将是词汇表长度。但

根据文件规定,
static\u rnn
的第二个参数应设置为“输入的长度T列表,每个输入都是形状的张量
[批处理大小,输入大小]
,或这些元素的嵌套元组。”

我将列列表传递给了
static\u rnn
,但我得到了ValueError:linear需要2D参数。因此,
input\u size
不能为1。
input\u size
和T具体指什么?为什么
input\u size
不能为1


我突然想到,
static\u rnn
可能需要一个矩阵包含一个热向量的列表。在这种情况下,
input size
将是词汇表长度。但是如果
静态\u rnn
需要一个热向量,文档会这样说,对吗?

输入大小
表示特征的数量,它可以是
1
,例如在普通时间序列预测中。很可能是因为你的张量是
[batch\u size]
,而不是
[batch\u size,1]

因此,您不必对您的特征进行热编码(尽管您可以),只需设置正确的输入张量排名即可

示例代码:

n_输入=1
n_神经元=5
X0=tf.placeholder(dtype=tf.float32,shape=[None,n_输入])
X1=tf.placeholder(dtype=tf.float32,shape=[None,n_输入])
基本细胞=tf.nn.rnn细胞.基本细胞(数量单位=n个神经元)
输出顺序,状态=tf.nn.static(基本单元[X0,X1],数据类型=tf.float32)
Y0,Y1=输出顺序