I am working on Handwriting Recognition where I am Struggling to understand MDLSTM. I have gone through "Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks" the paper where image is passed to 4 LSTM layers. Each LSTM layer is scanning the image in four different directions(i.e. Left, Right, Top, Bottom). I have tried below code for implementation in keras but i am not sure about how to implement the scanning part in LSTM. Give me some idea/reference code which can help to understand whole process.
left = Sequential()
left.add(LSTM(output_dim=hidden_units, init='uniform', inner_init='uniform',
forget_bias_init='one', return_sequences=True, activation='tanh',
inner_activation='sigmoid', input_shape=(99, 13)))
right = Sequential()
right.add(LSTM(output_dim=hidden_units, init='uniform', inner_init='uniform',
forget_bias_init='one', return_sequences=True, activation='tanh',
inner_activation='sigmoid', input_shape=(99, 13), go_backwards=True))
top = Sequential()
top.add(LSTM(output_dim=hidden_units, init='uniform', inner_init='uniform',
forget_bias_init='one', return_sequences=True, activation='tanh',
inner_activation='sigmoid', input_shape=(99, 13)))
bottom = Sequential()
bottom.add(LSTM(output_dim=hidden_units, init='uniform', inner_init='uniform',
forget_bias_init='one', return_sequences=True, activation='tanh',
inner_activation='sigmoid', input_shape=(99, 13)))
model = Sequential()
model.add(Merge([left, right,top,bottom], mode='sum'))