Skip to content

Instantly share code, notes, and snippets.

@fkluger
Created January 18, 2018 23:51
Show Gist options
  • Save fkluger/fc071cd8d9e8e675d68cde321f2b7541 to your computer and use it in GitHub Desktop.
Save fkluger/fc071cd8d9e8e675d68cde321f2b7541 to your computer and use it in GitHub Desktop.
from keras.models import Model
from keras.layers import Input, LSTM
import numpy as np
def model1():
input_state = Input(shape=(1,))
input_data = Input(shape=(1, 1))
output, _, _ = LSTM(1, return_state=True)(input_data, initial_state=[input_state, input_state])
return Model(inputs=[input_state, input_data], outputs=[output])
def model2():
input_state = Input(shape=(1,))
input_data = Input(shape=(1, 1))
# Using model1 as a layer raises an error:
output = model1()([input_state, input_data])
# Using the following line instead gives no error:
# output, _, _ = LSTM(1, return_state=True)(input_data, initial_state=[input_state, input_state])
return Model(inputs=[input_state, input_data], outputs=[output])
model = model2()
p = model.predict([np.zeros((1,1)), np.zeros((1,1,1))])
print(p)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment