Guest User

Pasties 2016-12-18 17:10:36 +0000

a guest
Dec 18th, 2016
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.11 KB | None | 0 0
  1. import numpy as np
  2. np.random.seed(1337)
  3.  
  4. import keras
  5. from keras.models import Sequential
  6. from keras.layers import Dense, LSTM, TimeDistributed
  7. from keras.utils import np_utils
  8. from tqdm import tqdm
  9.  
  10. import random
  11. random.seed(1)
  12.  
  13.  
  14. def generate():
  15.     X = np.array([[random.choice([0, 1]) for _ in range(n)]
  16.                   for _ in range(length)])
  17.     Y = np.concatenate(([[0] * n], X[:-1]))
  18.     X = X.reshape(length, 1, n)
  19.     Y = Y.reshape(length, 1, n)
  20.     return X, Y
  21.  
  22. n = 1
  23.  
  24. model = Sequential()
  25. model.add(LSTM(n + max(n, 5), batch_input_shape=(1, 1, n),
  26.                return_sequences=True, stateful=True))
  27. model.add(TimeDistributed(Dense(n, activation='sigmoid')))
  28. model.compile(loss='binary_crossentropy', optimizer='adam',
  29.               metrics=['binary_accuracy'])
  30.  
  31.  
  32. for i in tqdm(range(10)):
  33.     length = 30
  34.     X, Y = generate()
  35.     for _ in tqdm(range(15)):
  36.         model.fit(X, Y, batch_size=1, nb_epoch=1, shuffle=False, verbose=0)
  37.         model.reset_states()
  38.  
  39. print()
  40.  
  41. for i in range(5):
  42.     length = 20
  43.     X, Y = generate()
  44.  
  45.     print(model.evaluate(X, Y, batch_size=1, verbose=0)[1])
  46.     model.reset_states()
Add Comment
Please, Sign In to add comment