import tensorflow as tf

        feature_mat = tf.reshape(feature_mat, [-1, config.n_inputs])  # 9
        # New feature_mat's shape: [time_steps*batch_size, n_inputs]  # 128 * batch_size, 9

        # Linear activation, reshaping inputs to the LSTM's number of hidden:
        hidden = tf.nn.relu(tf.matmul(
            feature_mat, config.W['hidden']
        ) + config.biases['hidden'])
        # New feature_mat (hidden) shape: [time_steps*batch_size, n_hidden] [128*batch_size, 32]

        print("--n_steps--")
        print(config.n_steps)
        print("--hidden--")
        print(hidden)

        # Split the series because the rnn cell needs time_steps features, each of shape:
        hidden = tf.split(0, config.n_steps/4, hidden)  # (0, 128, [128*batch_size, 32])
        # New hidden's shape: a list of length "time_step" containing tensors of shape [batch_size, n_hidden]

        # Define LSTM cell of first hidden layer:
        lstm_cell = tf.nn.rnn_cell.BasicLSTMCell(config.n_hidden, forget_bias=1.0)

        # Stack two LSTM layers, both layers has the same shape
        lsmt_layers = tf.nn.rnn_cell.MultiRNNCell([lstm_cell] * 2)

        # Get LSTM outputs, the states are internal to the LSTM cells,they are not our attention here
        outputs, _ = tf.nn.rnn(lsmt_layers, hidden, dtype=tf.float32)
        # outputs' shape: a list of lenght "time_step" containing tensors of shape [batch_size, n_hidden]

        print("------------------list-------------------")
        print(outputs)
