def test_initial_states_type(): cell = GRUCell(hidden_size, name="GRUCell_for_rnn") error_initial_states = np.random.random( (batch_size, hidden_size)).astype("float32") dynamic_rnn(cell=cell, inputs=inputs_dynamic_rnn, initial_states=error_initial_states, sequence_length=sequence_length, is_reverse=False)
def test_run(self): inputs = fluid.data(name='inputs', shape=[None, self.input_size], dtype='float32') pre_hidden = layers.data(name='pre_hidden', shape=[None, self.hidden_size], append_batch_size=False, dtype='float32') cell = GRUCell(self.hidden_size) gru_hidden_new, _ = cell(inputs, pre_hidden) gru_unit = contrib.layers.rnn_impl.BasicGRUUnit( "basicGRU", self.hidden_size, None, None, None, None, "float32") gru_hidden = gru_unit(inputs, pre_hidden) if core.is_compiled_with_cuda(): place = core.CUDAPlace(0) else: place = core.CPUPlace() exe = Executor(place) exe.run(framework.default_startup_program()) inputs_np = np.random.uniform( -0.1, 0.1, (self.batch_size, self.input_size)).astype('float32') pre_hidden_np = np.random.uniform( -0.1, 0.1, (self.batch_size, self.hidden_size)).astype('float32') param_names = [ ["GRUCell/BasicGRUUnit_0.w_0", "basicGRU/BasicGRUUnit_0.w_0"], ["GRUCell/BasicGRUUnit_0.w_1", "basicGRU/BasicGRUUnit_0.w_1"], ["GRUCell/BasicGRUUnit_0.b_0", "basicGRU/BasicGRUUnit_0.b_0"], ["GRUCell/BasicGRUUnit_0.b_1", "basicGRU/BasicGRUUnit_0.b_1"] ] for names in param_names: param = np.array(fluid.global_scope().find_var( names[0]).get_tensor()) param = np.random.uniform(-0.1, 0.1, size=param.shape).astype('float32') fluid.global_scope().find_var(names[0]).get_tensor().set( param, place) fluid.global_scope().find_var(names[1]).get_tensor().set( param, place) out = exe.run(feed={ 'inputs': inputs_np, 'pre_hidden': pre_hidden_np }, fetch_list=[gru_hidden_new, gru_hidden]) self.assertTrue(np.allclose(out[0], out[1], rtol=1e-4, atol=0))
def test_errors(self): with program_guard(Program(), Program()): batch_size, input_size, hidden_size = 4, 16, 16 inputs = fluid.data( name='inputs', shape=[None, input_size], dtype='float32') pre_hidden = layers.data( name='pre_hidden', shape=[None, hidden_size], append_batch_size=False, dtype='float32') cell = GRUCell(hidden_size) def test_input_Variable(): np_input = np.random.random( (batch_size, input_size)).astype("float32") cell(np_input, pre_hidden) self.assertRaises(TypeError, test_input_Variable) def test_pre_hidden_Variable(): np_pre_hidden = np.random.random( (batch_size, hidden_size)).astype("float32") cell(inputs, np_pre_hidden) self.assertRaises(TypeError, test_pre_hidden_Variable) def test_input_type(): error_inputs = fluid.data( name='error_inputs', shape=[None, input_size], dtype='int32') cell(error_inputs, pre_hidden) self.assertRaises(TypeError, test_input_type) def test_pre_hidden_type(): error_pre_hidden = fluid.data( name='error_pre_hidden', shape=[None, hidden_size], dtype='int32') cell(inputs, error_pre_hidden) self.assertRaises(TypeError, test_pre_hidden_type) def test_dtype(): # the input type must be Variable GRUCell(hidden_size, dtype="int32") self.assertRaises(TypeError, test_dtype)
def test_dtype(): # the input type must be Variable GRUCell(hidden_size, dtype="int32")