【发布时间】:2018-06-30 13:51:17
【问题描述】:
我想构建一个具有 3 层的 LSTM 网络。代码如下:
num_layers=3
time_steps=10
num_units=128
n_input=1
learning_rate=0.001
n_classes=1
...
x=tf.placeholder("float",[None,time_steps,n_input],name="x")
y=tf.placeholder("float",[None,n_classes],name="y")
input=tf.unstack(x,time_steps,1)
lstm_layer=rnn_cell.BasicLSTMCell(num_units,state_is_tuple=True)
network=rnn_cell.MultiRNNCell([lstm_layer for _ in range(num_layers)],state_is_tuple=True)
outputs,_=rnn.static_rnn(network,inputs=input,dtype="float")
使用num_layers=1 可以正常工作,但是如果使用不止一层,我会在这一行得到错误:
outputs,_=rnn.static_rnn(network,inputs=input,dtype="float")
ValueError: 尺寸必须相等,但为 256 和 129 'rnn/rnn/multi_rnn_cell/cell_0/cell_0/basic_lstm_cell/MatMul_1'(操作: 'MatMul') 输入形状:[?,256], [129,512]。
谁能解释值 129 和 512 的来源?
【问题讨论】:
标签: python tensorflow deep-learning lstm recurrent-neural-network