Advertisement
Guest User

Untitled

a guest
Sep 15th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. def max_length(tensor):
  2. return max(len(t) for t in tensor)
  3.  
  4. # Helper function to pad the query tensor and slot (target) tensor to the same length.
  5. # Also creates a tensor for teacher forcing.
  6. def create_tensors(input_tensor, target_tensor, nb_sample=9999999, max_len=0):
  7. len_input, len_target = max_length(input_tensor), max_length(target_tensor)
  8. len_input = max(len_input,max_len)
  9. len_target = max(len_target,max_len)
  10.  
  11.  
  12. # Padding the input and output tensor to the maximum length
  13. input_data = tf.keras.preprocessing.sequence.pad_sequences(input_tensor,
  14. maxlen=len_input,
  15. padding='post')
  16.  
  17. teacher_data = tf.keras.preprocessing.sequence.pad_sequences(target_tensor,
  18. maxlen=len_target ,
  19. padding='post')
  20.  
  21. target_data = [[teacher_data[n][i+1] for i in range(len(teacher_data[n])-1)] for n in range(len(teacher_data))]
  22. target_data = tf.keras.preprocessing.sequence.pad_sequences(target_data, maxlen=len_target, padding="post")
  23. target_data = target_data.reshape((target_data.shape[0], target_data.shape[1], 1))
  24.  
  25. nb = len(input_data)
  26. p = np.random.permutation(nb)
  27. input_data = input_data[p]
  28. teacher_data = teacher_data[p]
  29. target_data = target_data[p]
  30.  
  31. return input_data[:min(nb_sample, nb)], teacher_data[:min(nb_sample, nb)], target_data[:min(nb_sample, nb)],
  32. len_input, len_target
  33.  
  34. input_data_train, teacher_data_train, target_data_train, \
  35. len_input_train, len_target_train = create_tensors(input_tensor_train, target_tensor_train)
  36. input_data_test, teacher_data_test, target_data_test, \
  37. len_input_test, len_target_test = create_tensors(input_tensor_test, target_tensor_test, max_len=len_input_train)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement