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)
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)
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, ))
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))