【发布时间】:2017-06-27 05:40:39
【问题描述】:
我正在看这个教程,他为 MNIST 分类编写了一个 tensorflow 代码。
这是RNN模型:
batch_size = 128
chunk_size = 28
n_chunks = 28
rnn_size = 128
def recurrent_neural_network(x):
layer = {'weights':tf.Variable(tf.random_normal([rnn_size,n_classes])),
'biases':tf.Variable(tf.random_normal([n_classes]))}
x = tf.transpose(x, [1,0,2])
x = tf.reshape(x, [-1, chunk_size])
x = tf.split(x, n_chunks, 0)
lstm_cell = rnn.BasicLSTMCell(rnn_size,state_is_tuple=True)
outputs, states = rnn.static_rnn(lstm_cell, x, dtype=tf.float32)
output = tf.matmul(outputs[-1],layer['weights']) + layer['biases']
return output,outputs,states
在此之后,我分别打印输出和状态的维度
像这样:
print("\n", len(outputs),"\n",len(outputs[0]),"\n",len(outputs[0][0]))
print("\n", len(states),"\n",len(states[0]),"\n",len(states[0][0]))
我得到打印语句的输出为:
28
128
128
2
128
128
我了解输出形状为 28x128x128 (time_steps x rnn_size x batch_size)
但我不明白“状态”的形状?
【问题讨论】:
标签: python tensorflow deep-learning lstm recurrent-neural-network