if __name__ == "__main__": D_input = 39 D_label = 24 learning_rate = 7e-5 num_units = 1024 EPOCH = 100 train_data = "" test_data = " " # 样本的输入和标签 inputs = tf.placeholder(tf.float32, [None, None, D_input], name="inputs") labels = tf.placeholder(tf.float32, [None, D_label], name="labels") # 实例LSTM类 rnn_cell = LSTM(inputs, D_input, num_units, orthogonal_initializer) # 调用scan计算所有hidden states rnn0 = rnn_cell.all_steps() # 将3维tensor [n_steps, n_samples, D_cell]转成 矩阵[n_steps*n_samples, D_cell] # 用于计算outputs rnn = tf.reshape(rnn0, [-1, num_units]) # 输出层的学习参数 W = weight_init([num_units, D_label]) b = bias_init([D_label]) output = tf.matmul(rnn, W) + b # 损失 loss = tf.reduce_mean((output-labels)**2) # 训练所需 train_step = tf.train.AdamOptimizer(learning_rate).minimize(loss) # 建立session并实际初始化所有参数 sess = tf.InteractiveSession() tf.global_variables_initializer().run() train_epoch(EPOCH, train_data, test_data)