Guest User

Untitled

a guest
Jan 18th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. def reshape_to_rnn_dims(tensor, num_time_steps):
  2. return tf.unstack(tensor, num_time_steps, 1)
  3.  
  4.  
  5. class GridLSTMCellTest(tf.test.TestCase):
  6. def setUp(self):
  7. self.num_features = 1
  8. self.time_steps = 1
  9. self.batch_size = 1
  10. tf.reset_default_graph()
  11. self.input_layer = tf.placeholder(tf.float32, [self.batch_size, self.time_steps, self.num_features])
  12. self.cell = grid_rnn.Grid1LSTMCell(num_units=8)
  13.  
  14. def test_simple_grid_rnn(self):
  15. self.input_layer = reshape_to_rnn_dims(self.input_layer, self.time_steps)
  16. tf.nn.static_rnn(self.cell, self.input_layer, dtype=tf.float32)
  17.  
  18. def test_dynamic_grid_rnn(self):
  19. tf.nn.dynamic_rnn(self.cell, self.input_layer, dtype=tf.float32)
  20.  
  21.  
  22. class BidirectionalGridRNNCellTest(tf.test.TestCase):
  23. def setUp(self):
  24. self.num_features = 1
  25. self.time_steps = 1
  26. self.batch_size = 1
  27. tf.reset_default_graph()
  28. self.input_layer = tf.placeholder(tf.float32, [self.batch_size, self.time_steps, self.num_features])
  29. self.cell_fw = grid_rnn.Grid1LSTMCell(num_units=8)
  30. self.cell_bw = grid_rnn.Grid1LSTMCell(num_units=8)
  31.  
  32. def test_simple_bidirectional_grid_rnn(self):
  33. self.input_layer = reshape_to_rnn_dims(self.input_layer, self.time_steps)
  34. tf.nn.static_bidirectional_rnn(self.cell_fw, self.cell_fw, self.input_layer, dtype=tf.float32)
  35.  
  36. def test_bidirectional_dynamic_grid_rnn(self):
  37. tf.nn.bidirectional_dynamic_rnn(self.cell_fw, self.cell_bw, self.input_layer, dtype=tf.float32)
  38.  
  39. if __name__ == '__main__':
  40. tf.test.main()
  41.  
  42. class MultidimensionalRNNTest(tf.test.TestCase):
  43. def setUp(self):
  44. self.num_classes = 26
  45. self.num_features = 32
  46. self.time_steps = 64
  47. self.batch_size = 1 # Can't be dynamic, apparently.
  48. self.num_channels = 1
  49. self.num_filters = 16
  50. self.input_layer = tf.placeholder(tf.float32, [self.batch_size, self.time_steps, self.num_features, self.num_channels])
  51. self.labels = tf.sparse_placeholder(tf.int32)
  52.  
  53. def test_simple_mdrnn(self):
  54. net = lstm2d.separable_lstm(self.input_layer, self.num_filters)
  55.  
  56. def test_image_to_sequence(self):
  57. net = lstm2d.separable_lstm(self.input_layer, self.num_filters)
  58. net = lstm2d.images_to_sequence(net)
  59.  
  60. def test_convert_to_ctc_dims(self):
  61. net = lstm2d.separable_lstm(self.input_layer, self.num_filters)
  62. net = lstm2d.images_to_sequence(net)
  63.  
  64. net = tf.reshape(inputs, [-1, self.num_filters])
  65.  
  66. W = tf.Variable(tf.truncated_normal([self.num_filters,
  67. self.num_classes],
  68. stddev=0.1, dtype=tf.float32), name='W')
  69. b = tf.Variable(tf.constant(0., dtype=tf.float32, shape=[self.num_classes], name='b'))
  70.  
  71. net = tf.matmul(net, W) + b
  72. net = tf.reshape(net, [self.batch_size, -1, self.num_classes])
  73.  
  74. net = tf.transpose(net, (1, 0, 2))
  75.  
  76. loss = tf.nn.ctc_loss(inputs=net, labels=self.labels, sequence_length=[2])
  77.  
  78. print(net)
  79.  
  80.  
  81. if __name__ == '__main__':
  82. tf.test.main()
Add Comment
Please, Sign In to add comment