Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. def model1(vocab_len):
  2. model = Sequential()
  3. model.add(LSTM(128,input_shape=(buff_length, vocab_len)))
  4. model.add(Dense(units=60, activation='relu'))
  5. model.add(Dense(units=vocab_len, activation='softmax'))
  6. model.summary()
  7. return model
  8.  
  9. def one_hot(Y, char2idx, vocablen):
  10. Ty = len(Y)
  11. Yoh = np.zeros((Ty, vocablen))
  12. for idx in range(Ty):
  13. Yoh[idx, char2idx[Y[idx]]] = 1
  14. return Yoh
  15.  
  16. def trainer(X, vocab, char2idx, no_epochs=1, batch_size=10):
  17. model = model1(len(vocab))
  18. model.compile(optimizer='Adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
  19. for epn in range(no_epochs):
  20. np.random.seed(1 + epn)
  21. Tx = len(X)
  22. indices = np.random.randint(0, Tx, batch_size)
  23. X_train = []
  24. Y_train = []
  25. for index in indices:
  26. name = str(X[index])
  27. for chIndex in range(len(name) - 1):
  28. if chIndex >= buff_length - 1:
  29. X_train.append(name[chIndex - buff_length + 1: chIndex + 1])
  30. Y_train.append(name[chIndex + 1])
  31.  
  32. for i in range(len(X_train)):
  33. print ((X_train[i] + ' : '+ Y_train[i]) )
  34.  
  35. X_train_oh = np.copy(one_hot_buffer(X_train, char2idx, len(vocab)))
  36. Y_train_oh = np.copy(one_hot(Y_train, char2idx, len(vocab)))
  37.  
  38. print(X_train_oh.shape,':',Y_train_oh.shape)
  39. model.fit(x=X_train_oh, y=Y_train_oh)
  40.  
  41. model.save('name_model.h5')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement