test_utils.py 2.22 KB
Newer Older
liuzhe-lz's avatar
liuzhe-lz committed
1
2
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
Lee's avatar
Lee committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87

from unittest import TestCase, main

import nni
from nni.utils import split_index


class UtilsTestCase(TestCase):
    def test_split_index_normal(self):
        """test for normal search space
        """
        normal__params_with_index = {
            "dropout_rate": {
                "_index" : 1,
                "_value" : 0.9
            },
            "hidden_size": {
                "_index" : 1,
                "_value" : 512
            }
        }
        normal__params= {
            "dropout_rate": 0.9,
            "hidden_size": 512
        }

        params = split_index(normal__params_with_index)
        self.assertEqual(params, normal__params)

    def test_split_index_nested(self):
        """test for nested search space
        """
        nested_params_with_index = {
            "layer0": {
                "_name": "Avg_pool",
                "pooling_size":{
                    "_index" : 1,
                    "_value" : 2
                } 
            },
            "layer1": {
                "_name": "Empty"
            },
            "layer2": {
                "_name": "Max_pool",
                "pooling_size": {
                    "_index" : 2,
                    "_value" : 3
                } 
            },
            "layer3": {
                "_name": "Conv",
                "kernel_size":  {
                    "_index" : 3,
                    "_value" : 5
                },
                "output_filters":  {
                    "_index" : 3,
                    "_value" : 64
                }
            }
        }
        nested_params =  {
            "layer0": {
                "_name": "Avg_pool",
                "pooling_size": 2
            },
            "layer1": {
                "_name": "Empty"
            },
            "layer2": {
                "_name": "Max_pool",
                "pooling_size": 3
            },
            "layer3": {
                "_name": "Conv",
                "kernel_size": 5,
                "output_filters": 64
            }
        }
        params = split_index(nested_params_with_index)
        self.assertEqual(params, nested_params)


if __name__ == '__main__':
liuzhe-lz's avatar
liuzhe-lz committed
88
    main()