LSTM应用汇总
#定义LSTM lstm = tf.nn.rnn_cell.BasicLSTMCell(lstm_hidden_size) #将lstm的状态初始化为全0数组 #state.c和state.h分别对应图中的c状态和h状态 #和其他神经网络一样,在优化循环神经网络时,每次也会使用一个batch的训练样本。 state = lstm.zero_state(batch_size,tf.float32) #定义损失 loss = 0.0 #前馈网络 for i in range(num_steps): #每一步处理时间序列中的一个时刻。将当前输入current_input(Xt)和前一时刻状态 #state(Ht-1和Ct-1)传入定义的LSTM结构可以得到当前LSTM的输出lstm_output(Ht)和 #更新后状态state(Ht和Ct)。lstm_output用于输出给其他层,state用于输出给下一时刻, #它们在dropout等方面可以有不同的处理方式。 lstm_output,state = lstm(current_input,state) #将当前时刻LSTM结构的输出传入一个全连接层得到最后的输出 final_output = fully_connected(lstm_output) #计算当前时刻输出的损失 loss += calc_loss(final_output