Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- from keras.models import Sequential
- from keras.layers import Dense, LSTM, Flatten, Dropout, Activation, Convolution2D, Reshape
- from keras.layers.advanced_activations import ELU
- from keras.optimizers import RMSprop
- from keras.utils.data_utils import get_file
- import random
- import sys
- #wave = open('wavnp31.txt').read()
- #print(len(wave))
- with open('wavnp31.txt') as f:
- wave = [tuple(map(float, i.split(' '))) for i in f]
- print("corpus length of tuples:",len(wave))
- wavlen = len(wave)
- #wave=list(set(wave))
- maxlen = 100
- step = 15
- sequences = []
- next_sample = []
- seq_index = dict((c,i) for i, c in enumerate(wave))
- op_seq_index = dict((i,c) for i, c in enumerate(wave))
- for i in range(0, len(wave) - maxlen,step):
- sequences.append(wave[i:i+maxlen])
- next_sample.append(wave[i+maxlen])
- print(len(sequences))
- X = np.zeros((len(sequences), maxlen, len(wave)), dtype=np.bool)
- y = np.zeros((len(sequences), len(wave)), dtype=np.bool)
- #create vectors
- for i, sequences in enumerate(sequences):
- for j, wave in enumerate(sequences):
- X[i, j, seq_index[wave]] = 1
- y[i, seq_index[next_sample[i]]] = 1
- #create model
- model = Sequential()
- model.add(LSTM(128, input_shape=(maxlen, wavlen)))
- model.add(Dense(wavlen))
- model.add(Activation('softmax'))
- optimizer = RMSprop(lr=0.01)
- model.compile(loss='categorical_crossentropy', optimizer=optimizer)
- for iteration in range(1,2):
- print("Iteration:",iteration)
- model.fit(X,y,batch_size=128,nb_epoch=1)
- start_index = random.randint(0, wavlen - maxlen -1)
- # for diversity in [0.2,0.5,1.0,1.2]:
- x_predict = np.zeros(1, maxlen, wavlen)
- for t, wave in enumerate(sequences):
- x_predict[0,t, seq_index[wave]] = 1
- pred = model.predict(x_predict, verbose=0)[0]
- print(pred)
- # next_ind = sample(pred, diversity)
- # next_val = op_seq_index[next_ind]
Advertisement
Add Comment
Please, Sign In to add comment