Skip to content

Instantly share code, notes, and snippets.

@BenMacKenzie
Created March 24, 2017 14:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BenMacKenzie/9b0cb52c5329909b2514cdc70b4ea173 to your computer and use it in GitHub Desktop.
Save BenMacKenzie/9b0cb52c5329909b2514cdc70b4ea173 to your computer and use it in GitHub Desktop.
same as 2c, but save model to file
from keras.models import Sequential
from keras.layers import LSTM, TimeDistributed, Dense, Activation
from keras.models import load_model
import numpy as np
# same as 2c except it saves model to file.
def train_model():
train_input = [np.random.randint(0,2) for r in xrange(1000)]
train_output = [0]
for i in range(1, len(train_input)):
if(train_input[i]==train_input[i-1]):
train_output.append(1)
else:
train_output.append(0)
train_input = np.reshape(train_input, (200, 5, 1))
train_output = np.reshape(train_output, (200,5,1))
print "test and training data loaded"
model = Sequential()
model.add(LSTM(10, return_sequences=True, batch_input_shape=(1, 5, 1), stateful=True))
model.add(TimeDistributed(Dense(1)))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='sgd', metrics=['accuracy'])
model.fit(np.asarray(train_input), np.asarray(train_output), epochs=400, batch_size=1, shuffle=False)
model.save('seq_2d.h5')
#train_model()
model = load_model('seq_2d.h5')
print model.predict(np.asarray([1,0,0,1,1]).reshape(1,5,1))
print model.predict(np.asarray([1,1,0,0,1]).reshape(1,5,1))
print model.predict(np.asarray([0,0,0,0,1]).reshape(1,5,1))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment