Guest User

Create_model.py

a guest
Oct 23rd, 2016
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.85 KB | None | 0 0
  1. import numpy as np
  2. from keras.models import Sequential
  3. from keras.layers import Dense, LSTM, Flatten, Dropout, Activation, Convolution2D, Reshape
  4. from keras.layers.advanced_activations import ELU
  5.  
  6. from keras.optimizers import RMSprop
  7. from keras.utils.data_utils import get_file
  8. import random
  9. import sys
  10.  
  11. #wave = open('wavnp31.txt').read()
  12. #print(len(wave))
  13. with open('wavnp31.txt') as f:
  14.     wave = [tuple(map(float, i.split(' '))) for i in f]
  15.  
  16. print("corpus length of tuples:",len(wave))
  17. wavlen = len(wave)
  18. #wave=list(set(wave))
  19. maxlen = 100
  20. step = 15
  21.  
  22. sequences = []
  23. next_sample = []
  24.  
  25. seq_index =  dict((c,i) for i, c in enumerate(wave))
  26. op_seq_index = dict((i,c) for i, c in enumerate(wave))
  27.  
  28. for i in range(0, len(wave) - maxlen,step):
  29.     sequences.append(wave[i:i+maxlen])
  30.     next_sample.append(wave[i+maxlen])
  31.    
  32. print(len(sequences))
  33.  
  34. X = np.zeros((len(sequences), maxlen, len(wave)), dtype=np.bool)
  35. y = np.zeros((len(sequences), len(wave)), dtype=np.bool)
  36.  
  37. #create vectors
  38. for i, sequences in enumerate(sequences):
  39.     for j, wave in enumerate(sequences):
  40.         X[i, j, seq_index[wave]] = 1
  41.     y[i, seq_index[next_sample[i]]] = 1
  42.  
  43.  
  44. #create model
  45. model = Sequential()
  46. model.add(LSTM(128, input_shape=(maxlen, wavlen)))
  47. model.add(Dense(wavlen))
  48. model.add(Activation('softmax'))
  49.  
  50. optimizer = RMSprop(lr=0.01)
  51. model.compile(loss='categorical_crossentropy', optimizer=optimizer)
  52.  
  53.  
  54. for iteration in range(1,2):
  55.     print("Iteration:",iteration)
  56.     model.fit(X,y,batch_size=128,nb_epoch=1)
  57.     start_index = random.randint(0, wavlen - maxlen -1)
  58. #   for diversity in [0.2,0.5,1.0,1.2]:
  59.     x_predict = np.zeros(1, maxlen, wavlen)
  60.     for t, wave in enumerate(sequences):
  61.         x_predict[0,t, seq_index[wave]] = 1
  62.     pred = model.predict(x_predict, verbose=0)[0]
  63.     print(pred)
  64.  
  65. #       next_ind = sample(pred, diversity)
  66. #       next_val = op_seq_index[next_ind]
Advertisement
Add Comment
Please, Sign In to add comment