当前位置:   article > 正文

想问一下LSTM为啥不收敛_lstm无法收敛

lstm无法收敛

按照别人的代码写了一个三层的 LSTM的代码,输入为(-1,stpes,input)的形式,具体大小为(32,10,512),做动作识别的,但是网络的损失值一直为固定范围内的值大概是四点多,网络损失一直不下降,请问是哪里错了吗,下面是那部分的代码

n_hidden_units=128    # 隐藏层神经元数目
num_layers=3            # 双向lstm神经网络的层数
n_steps=10
n_inputs=512

vgg_output = tf.reshape(vgg_output,[-1,n_steps,n_inputs])

def unit_lstm():
    # 定义一层 LSTM_cell,只需要说明 hidden_size, 它会自动匹配输入的 X 的维度
    lstm_cell = tf.contrib.rnn.BasicLSTMCell(num_units=n_hidden_units, forget_bias=1.0, state_is_tuple=True)
    #添加 dropout layer, 一般只设置 output_keep_prob
    lstm_cell = tf.contrib.rnn.DropoutWrapper(cell=lstm_cell, input_keep_prob=1.0, output_keep_prob=0.8)
    return lstm_cell
#调用 MultiRNNCell 来实现多层 LSTM
mlstm_cell = tf.contrib.rnn.MultiRNNCell([unit_lstm() for i in range(num_layers)], state_is_tuple=True)
outputs, state = tf.nn.dynamic_rnn(mls
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号