Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. LSTMCell = tf.contrib.rnn.BasicLSTMCell(HIDDEN_SIZE, state_is_tuple=True)
  2. LSTMCell = tf.contrib.rnn.DropoutWrapper(LSTMCell, output_keep_prob=0.5, seed=42)
  3. MultiRNNCell = tf.contrib.rnn.MultiRNNCell([LSTMCell]* NUM_LAYERS, state_is_tuple=True)
  4.  
  5. state = get_initialstate_variables(MultiRNNCell)
  6.  
  7. rnn_outputs,finalstate = tf.nn.dynamic_rnn(MultiRNNCell, x, dtype=tf.float32,initial_state=state)#, sequence_length=seqlen, getSequenceLength(sequence))
  8.  
  9. rnn_outputs = tf.reshape(rnn_outputs, [-1, HIDDEN_SIZE])
  10. logits = tf.add(tf.matmul(rnn_outputs, weights['output']),bias['output'])
  11.  
  12. v = [i+(TRUNCATED_BACKPROPAGATION_FEATUREFRAME- NUM_FRAMELABELS_TOPREDICT) for i in range(NUM_FRAMELABELS_TOPREDICT)]
  13.  
  14. index = tf.transpose([(tf.range(0,BATCH_SIZE)*TRUNCATED_BACKPROPAGATION_FEATUREFRAME) + i for i in v])
  15. index = tf.reshape(index, [-1])
  16.  
  17. logits = tf.gather(logits, index)
  18. logits = tf.reshape(logits, [BATCH_SIZE, -1])#, FEATURE_PER_FRAME])
  19.  
  20. return logits
  21.  
  22. x_split = tf.split(features, TRUNCATED_BACKPROPAGATION_FEATUREFRAME,1)
  23. y_split = tf.split( labels, NUM_FRAMELABELS_TOPREDICT, 1)
  24. weights = {
  25. 'output': tf.get_variable("wo", initializer=tf.random_normal([LSTM_SIZE*2, FEATURE_PER_FRAME], seed=seed, stddev=1/np.sqrt(FEATURE_PER_FRAME * 1.0)))
  26. }
  27. biases = {
  28. 'output': tf.get_variable("bo", initializer=tf.random_normal([FEATURE_PER_FRAME], seed=seed, stddev=1/np.sqrt(FEATURE_PER_FRAME * 1.0)))
  29. }
  30.  
  31. lstm = tf.contrib.rnn.BasicLSTMCell(LSTM_SIZE, state_is_tuple=True)
  32. cost = tf.constant(0.0);
  33. output_layer_final=[]
  34. initial_state = state = (tf.zeros([BATCH_SIZE, lstm.state_size[0]]), tf.zeros([BATCH_SIZE, lstm.state_size[1]]))
  35.  
  36. with tf.variable_scope("myrnn") as scope:
  37. for i in range(TRUNCATED_BACKPROPAGATION_FEATUREFRAME):
  38. if i > 0:
  39. scope.reuse_variables()
  40. output, state = lstm(x_split[i], state)
  41. if i >= (TRUNCATED_BACKPROPAGATION_FEATUREFRAME - NUM_FRAMELABELS_TOPREDICT):
  42. print i
  43. output_layer = tf.add(tf.matmul(tf.concat([state[0], state[1]], 1), weights['output']), biases['output'])
  44. c = tf.reduce_mean(tf.square(output_layer - y_split[i-(TRUNCATED_BACKPROPAGATION_FEATUREFRAME - NUM_FRAMELABELS_TOPREDICT)]))
  45. if i == (TRUNCATED_BACKPROPAGATION_FEATUREFRAME- NUM_FRAMELABELS_TOPREDICT):
  46. output_layer_final = output_layer
  47. cost = c
  48. elif i== (TRUNCATED_BACKPROPAGATION_FEATUREFRAME-1):
  49. output_layer_final = tf.concat([output_layer_final, output_layer], 1, name="output")
  50. cost = tf.add(cost, c)
  51. else:
  52. output_layer_final = tf.concat([output_layer_final, output_layer], 1)
  53. cost = tf.add(cost,c)
  54. cost = tf.divide(cost, tf.constant(NUM_FRAMELABELS_TOPREDICT, dtype=tf.float32))
  55.  
  56. logits = output_layer_final
  57. return cost, logits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement