Exemplo n.º 1
0
class TestPool(unittest.TestCase):
    def setUp(self):
        self.pool = Pool(N, 1. / 3, 1. / 3, 1. / 3)

    def test_constant_size_init(self):
        total_size = self.pool.get_total_size()
        self.assertEqual(total_size, N)

    def test_constant_size_combine(self):
        t1 = self.pool.pop_reactive()
        t2 = self.pool.pop_reactive()
        self.pool.tape_combine(t1, t2)
        total_size = self.pool.get_total_size()
        self.assertEqual(total_size, N)

    def test_break_conservation(self):
        for i in range(N // 10):
            self.pool.remove(Expression.parse('I'))
            self.pool.remove(Expression.parse('S'))
            self.pool.append(Expression.parse('IS'))
        total_size = self.pool.get_total_size()
        self.assertEqual(total_size, N)
        for i in range(10 * N):
            t = self.pool.pop_reactive()
            if not self.pool.tape_break(t):
                self.pool.rollback(t)
        total_size = self.pool.get_total_size()
        self.assertEqual(total_size, N)

    def test_combine_shrinks(self):
        self.assertEqual(len(self.pool), N)
        t1 = self.pool.pop_reactive()
        t2 = self.pool.pop_reactive()
        self.pool.tape_combine(t1, t2)
        self.assertEqual(len(self.pool), N - 1)

    def test_break_expands(self):
        n_combs = N // 10
        for i in range(n_combs):
            self.pool.remove(Expression.parse('I'))
            self.pool.remove(Expression.parse('S'))
            self.pool.append(Expression.parse('IS'))
        self.assertEqual(len(self.pool), N - n_combs)
        for i in range(10 * N):
            t = self.pool.pop_reactive()
            if not self.pool.tape_break(t):
                self.pool.rollback(t)
        self.assertEqual(len(self.pool), N)

    def test_reduce_expands(self):
        n_combs = N // 10
        for i in range(n_combs):
            self.pool.remove(Expression.parse('I'))
            self.pool.remove(Expression.parse('S'))
            self.pool.append(Expression.parse('IS'))
            self.assertEqual(len(self.pool), N - i - 1)
        c = 0
        for i in range(10 * N):
            t = self.pool.pop_reactive()
            if self.pool.tape_reduce(t):
                c += 1
                self.assertEqual(len(self.pool), N - n_combs + c)
            else:
                if len(t) == 2:
                    print(t.is_reducible(self.pool))
                self.pool.rollback(t)
        self.assertEqual(len(self.pool), N)
Exemplo n.º 2
0
G.append(LAYERS.maxpool)
G.append(LAYERS.conv3, 128, 1)
G.append(LAYERS.maxpool)
# G.append(LAYERS.conv3, 128, 1)
# G.append(LAYERS.maxpool)
# G.append(LAYERS.conv3, 256, 1)
# G.append(LAYERS.maxpool)
# G.append(LAYERS.conv3, 512, 1)
# G.append(LAYERS.maxpool)
G.append(LAYERS.fc, 128)
# G.append(LAYERS.fc, 256)
# G.append(LAYERS.fc, 512)
G.append(LAYERS.softmax)
G.append(LAYERS.op)
G.finish()
P.append(G, 0.6751)
G = Layer_graph(92111)
G.add_node(LAYERS.ip)
G.append(LAYERS.conv3, 64, 1)
G.append(LAYERS.batchnorm)
G.append(LAYERS.maxpool)
G.append(LAYERS.resnet, 64)
G.append(LAYERS.batchnorm)
G.append(LAYERS.conv3, 128, 2)
G.append(LAYERS.resnet, 128)
G.append(LAYERS.batchnorm)
G.append(LAYERS.fc, 1024)
G.append(LAYERS.softmax)
G.append(LAYERS.op)
G.finish()
P.append(G, 0.7109)