Пример #1
0
    def __init__(self,
                 shape_list,
                 domain_shape,
                 size,
                 seed=9001,
                 pretty_name='random range'):
        self.init_params = util.init_params_from_locals(locals())

        self.shape_list = copy.deepcopy(shape_list)
        self.seed = seed
        self.pretty_name = pretty_name
        self._size = size

        prng = numpy.random.RandomState(seed)
        if shape_list == None:
            shapes = randomQueryShapes(domain_shape, prng)
        else:
            prng.shuffle(self.shape_list)
            shapes = itertools.cycle(
                self.shape_list)  # infinite iterable over shapes in shape_list
        queries = []
        for i in range(size):
            lb, ub = placeRandomly(next(shapes), domain_shape,
                                   prng)  # seed must be None or repeats
            queries.append(ndRangeUnion().addRange(lb, ub, 1.0))
        super(RandomRange, self).__init__(queries, domain_shape)
Пример #2
0
    def __init__(self, domain_shape, weight=1.0, pretty_name='identity'):
        self.weight = weight
        self.pretty_name = pretty_name

        indexes = itertools.product(*[list(range(i)) for i in domain_shape
                                      ])  # generate index tuples
        queries = [ndRangeUnion().addRange(i, i, weight) for i in indexes]
        super(self.__class__, self).__init__(queries, domain_shape)
Пример #3
0
    def __init__(self, domain_shape_int, pretty_name='prefix 1D'):
        self.init_params = util.init_params_from_locals(locals())

        self.pretty_name = pretty_name

        queries = [
            ndRangeUnion().add1DRange(0, c, 1.0)
            for c in range(domain_shape_int)
        ]
        super(self.__class__, self).__init__(queries, (domain_shape_int, ))
Пример #4
0
from dpcomp_core.dataset import DatasetFromFile
import numpy as np

if False:

    n = 1024

    x = DatasetFromFile('PATENT', n).payload

    #x = np.load('fnlwgt.npy')

    if n == 128:
        A = np.kron(np.eye(128), np.ones(8192 // 128))
        x = A.dot(x).astype(int)

    ranges = [ndRangeUnion().add1DRange(i, i + 31) for i in range(n - 32 + 1)]

    Q = Prefix1D(n)
    Q = Workload(ranges, (n, ))
    P = Q.get_matrix('dense')

    error = 0.00

    trials = 25
    for i in range(trials):
        print i
        xest = dawa.dawa_engine().Run(Q, x, 1.0, i)
        diff = P.dot(x - xest)
        error += np.dot(diff, diff) / trials

    baseline = 2 * np.trace(np.dot(P.T, P))