def build_trasition_prob_matrix()

in sampler/attentive_nas_sampler.py [0:0]


def build_trasition_prob_matrix(file_handler, step):
    # initlizie
    prob_map = {}
    prob_map['discretize_step'] = step
    for k in ['flops', 'resolution', 'width', 'depth', 'kernel_size', 'expand_ratio']:
        prob_map[k] = {}

    cc = 0
    for line in file_handler:
        vals = eval(line.strip())

        # discretize
        flops = round_flops(vals['flops'], step)
        prob_map['flops'][flops] = prob_map['flops'].get(flops, 0) + 1

        # resolution
        r = vals['resolution']
        count_helper(r, flops, prob_map['resolution'])

        for k in ['width', 'depth', 'kernel_size', 'expand_ratio']:
            for idx, v in enumerate(vals[k]):
                if idx not in prob_map[k]:
                    prob_map[k][idx] = {}
                count_helper(v, flops, prob_map[k][idx])

        cc += 1

    # convert count to probability
    for k in ['flops', 'resolution', 'width', 'depth', 'kernel_size', 'expand_ratio']:
        convert_count_to_prob(prob_map[k])
    prob_map['n_observations'] = cc
    return prob_map