Monday, 29 July 2019

Keras multi-output data reshap for LSTM model

I have a Keras LSTM model that contains multiple outputs. The model is defined as follows:

outputs=[]

main_input = Input(shape= (seq_length,feature_cnt), name='main_input')
lstm = LSTM(32,return_sequences=True)(main_input)
for _ in range((output_branches)): #output_branches is the number of output branches of the model
    prediction = LSTM(8,return_sequences=False)(lstm)
    out = Dense(1)(prediction)
    outputs.append(out)

model = Model(inputs=main_input, outputs=outputs)
model.compile(optimizer='rmsprop',loss='mse')    

I have a problem when reshaping the output data. The code for reshaping the output data is:

y=y.reshape((len(y),output_branches,1))

I got the following error:

ValueError: Error when checking model target: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 5 array(s), but instead got the following list of 1 arrays: [array([[[0.29670931], [0.16652206], [0.25114482], [0.36952324], [0.09429612]],

   [[0.16652206],
    [0.25114482],
    [0.36952324],
    [0.09429612],...

How can I correctly reshape the output data?



from Keras multi-output data reshap for LSTM model

No comments:

Post a Comment