tensorflow lstm原理与代码从头构建

  • 2019 年 11 月 20 日
  • 筆記

tensorflow lstm原理与代码从头构建

简单的一层lstm

# 使用 basic LSTM Cell.  lstm_cell = tf.contrib.rnn.BasicLSTMCell(n_hidden_units, forget_bias=1.0, state_is_tuple=True)  init_state = lstm_cell.zero_state(batch_size, dtype=tf.float32) # 初始化全零 state  # 如果使用tf.nn.dynamic_rnn(cell, inputs), 我们要确定 inputs 的格式. tf.nn.dynamic_rnn 中的 time_major 参数会针对不同 inputs 格式有不同的值.  # 如果 inputs 为 (batches, steps, inputs) ==> time_major=False;  # 如果 inputs 为 (steps, batches, inputs) ==> time_major=True;  outputs, final_state = tf.nn.dynamic_rnn(lstm_cell, X_in, initial_state=init_state, time_major=False)  outputs size: [batch_size, max_time, cell_state_size]  final_state[1] size: [batch_size, cell_state_size]

Reference

  1. 各种LSTM代码比较全 地址