Beispiel #1
0
    def test_construction(self):
        interface = DNC.interface(
            read_keys=None,
            read_strengths=None,
            write_key=np.random.uniform(0, 1, (3, 9, 1)).astype(np.float32),
            write_strength=np.random.uniform(0, 1, (3, 1)).astype(np.float32),
            erase_vector=tf.convert_to_tensor(
                np.zeros((3, 9)).astype(np.float32)),
            write_vector=tf.convert_to_tensor(
                np.random.uniform(0, 1, (3, 9)).astype(np.float32)),
            free_gates=np.random.uniform(0, 1, (3, 5)).astype(np.float32),
            allocation_gate=np.random.uniform(0, 1, (3, 1)).astype(np.float32),
            write_gate=np.random.uniform(0, 1, (3, 1)).astype(np.float32),
            read_modes=None,
        )

        memory = Memory(13, 9, 5)
        memory_state = memory.get_initial_state(batch_size=3)
        usage, write_weighting, memory, link_matrix, precedence = memory.write(
            memory_state, interface)

        self.assertEqual(usage.shape, (3, 13))
        self.assertEqual(write_weighting.shape, (3, 13))
        self.assertEqual(memory.shape, (3, 13, 9))
        self.assertEqual(link_matrix.shape, (3, 13, 13))
        self.assertEqual(precedence.shape, (3, 13))
Beispiel #2
0
    def test_init_memory(self):
        memory = Memory(words_num=13, word_size=7, read_heads_num=2)
        state = memory.get_initial_state(batch_size=9)

        self.assertEqual(state.memory_matrix.shape, (9, 13, 7))
        self.assertEqual(state.usage_vector.shape, (9, 13))
        self.assertEqual(state.link_matrix.shape, (9, 13, 13))
        self.assertEqual(state.precedence_vector.shape, (9, 13))
        self.assertEqual(state.write_weighting.shape, (9, 13))
        self.assertEqual(state.read_weightings.shape, (9, 13, 2))