def test_LSTMStep_pickle(): """Tests that LSTMStep can be pickled.""" n_feat = 10 tg = TensorGraph() y = Feature(shape=(None, 2 * n_feat)) state_zero = Feature(shape=(None, n_feat)) state_one = Feature(shape=(None, n_feat)) lstm = LSTMStep(n_feat, 2 * n_feat, in_layers=[y, state_zero, state_one]) tg.add_output(lstm) tg.set_loss(lstm) tg.build() tg.save()
def test_lstm_step(self): """Test that LSTMStep computation works properly.""" max_depth = 5 n_test = 5 n_feat = 10 y = np.random.rand(n_test, 2 * n_feat) state_zero = np.random.rand(n_test, n_feat) state_one = np.random.rand(n_test, n_feat) with self.test_session() as sess: y = tf.convert_to_tensor(y, dtype=tf.float32) state_zero = tf.convert_to_tensor(state_zero, dtype=tf.float32) state_one = tf.convert_to_tensor(state_one, dtype=tf.float32) lstm = LSTMStep(n_feat, 2 * n_feat) out_tensor = lstm(y, state_zero, state_one) sess.run(tf.global_variables_initializer()) h_out, h_copy_out, c_out = (out_tensor[0].eval(), out_tensor[1][0].eval(), out_tensor[1][1].eval()) assert h_out.shape == (n_test, n_feat) assert h_copy_out.shape == (n_test, n_feat) assert c_out.shape == (n_test, n_feat)