'Most basic RNN: output = new_state = activation(W * input + U * state + B).'

def __call__(self, inputs, state, scope=None):

    with tf.variable_scope((scope or type(self).__name__)):
        output = self._activation(_linear([inputs, state], self._num_units, True, 0.0, self.weights_init, self.trainable, self.restore, self.reuse))
        with tf.variable_scope('Linear', reuse=True):
            self.W = tf.get_variable('Matrix')
            self.b = tf.get_variable('Bias')
    return (output, output)
