Basic usage

The standard Legendre Memory Unit (LMU) layer implementation in KerasLMU is defined in the keras_lmu.LMU class. The following code creates a new LMU layer:

import keras_lmu

lmu_layer = keras_lmu.LMU(
    memory_d=1,
    order=256,
    theta=784,
    hidden_cell=tf.keras.layers.SimpleRNNCell(units=10),
)

Note that the values used above for memory_d, order, theta, and units are arbitrary example values; actual parameter settings will depend on your specific application. memory_d represents the dimensionality of the signal represented in the LMU memory, order represents the dimensionality of the LMU basis, theta represents the dimensionality of the sliding window, and units represents the dimensionality of the hidden component. To learn more about these parameters, check out the LMU class API reference.

Creating KerasLMU layers

The LMU class functions as a standard Keras layer and is meant to be used within a Keras model. The code below illustrates how to do this using a Keras model with a 10-dimensional input and a 20-dimensional output.

from tensorflow.keras import Input, Model
from tensorflow.keras.layers import Dense

inputs = Input((None, 10))
lmus = lmu_layer(inputs)
outputs = Dense(20)(lmus)

model = Model(inputs=inputs, outputs=outputs)

Other parameters

The LMU class has several other configuration options; see the API reference for all the details.