def METHOD_NAME(self, inputs):
    x, a, _ = self.get_inputs(inputs)
    F = tf.shape(x)[-1]
    to_pad = self.channels - F
    ndims = len(x.shape) - 1
    output = tf.pad(x, [[0, 0]] * ndims + [[0, to_pad]])
    for i in range(self.n_layers):
        m = tf.matmul(output, self.kernel[i])
        m = self.propagate(m, a)
        output = self.rnn(m, [output])[0]
    output = self.activation(output)
    return output