def __init__(self,
                 filename,
                 eps,
                 point_reader,
                 dist,
                 edge_selector,
                 graph=None,
                 lower=None,
                 upper=None):
        self.filename = filename
        self.path = filename

        self.epsilon = eps
        self.selector = edge_selector

        self.d = dist
        if filename.endswith('.pkl'):
            file = open(self.path, 'rb')
            self.points = pickle.load(file)
        else:
            self.points = point_reader(filename)

        printer("starting approx with eps=" + str(self.epsilon))
        self.init_graph()

        if graph is not None and lower is not None and upper is not None:
            self.lower = lower
            self.upper = upper
            self.G = graph

        self.compute_spanner()
        self.build_matrix()
        printer("ending approx with eps=" + str(self.epsilon))
    def build_matrix(self):
        n = len(self.points)
        matrix = np.zeros(shape=(n, n))  # initialize matrix
        for i in range(n):
            printer("Progress: " + str(i / n))
            for j in range(i, n):
                dist = self.d(self.points[i], self.points[j])
                # printer("finished frechet dist computation for ", sep="")
                matrix[i][j] = dist
                matrix[j][i] = dist
                print(str(j), end=", ", flush=True)
            print()

        self.matrix = matrix
Exemple #3
0
def hausdorff_cloud_r(file):
    points = []
    file.readline()
    for line in file:
        cluster = []
        line = line.rstrip().split(";")
        for pt in line:
            if pt == '':
                continue
            pt = pt.split(",")
            pt = [float(p) for p in pt]
            pt = np.array(pt)
            cluster.append(pt)
        points.append(np.array(cluster))
    printer("Done loading points")
    return points
    def __init__(self, filename, point_reader, dist):
        self.filename = filename
        self.path = filename

        self.d = dist

        if filename.endswith('.pkl'):
            file = open(self.path, 'rb')
            self.points = pickle.load(file)
        else:
            self.points = point_reader(
                filename
            )  # create list of points using point_reader (assume point_reader returns list of points)

        printer("starting complete")
        self.build_matrix()  # compute n choose 2 different distances
        printer("ending complete")
 def compute_spanner(self):
     indx = self.selector(self.lower, self.upper, self.epsilon)
     iter = 0
     while (indx[0] != -1):
         if iter % 100 == 0:
             printer("Iter: " + str(iter))
         iter += 1
         i = indx[0]
         j = indx[1]
         s = time.time()
         dist = self.d(self.points[i], self.points[j])
         # print("Dist: " + str(time.time() - s))
         s = time.time()
         self.G.add_edge(i, j, weight=dist)
         # print("Add Edge: " + str(time.time() - s))
         s = time.time()
         self.update_bounds(dist, i, j)
         # print("Update Bounds: " + str(time.time() - s))
         s = time.time()
         indx = self.selector(self.lower, self.upper, self.epsilon)
Exemple #6
0
def shape_r(path, subdir='/'):
    points = []
    path = path
    dirs = next(os.walk(path))[1]
    printer(str(dirs))

    for dir in dirs:
        subpath = path + dir + subdir
        files = next(os.walk(subpath))[2]
        printer(str(dir))
        for f in files:
            file_printer("LABEL: {:} FILE: {:}".format(str(dir), str(f)), prio=0)
            points.append(read_model(subpath + f))

        printer_class.PRIORITY = 1


    printer("Done loading points")
    return points
Exemple #7
0
    for i, number in enumerate(numbers):
        if number > numbers[highest_index]:
            highest_index = i
    return highest_index


# Images are 28x28 pixels. Reshapen, they are 784x1
training = [(mux(label), image.reshape(784) / 255.0)
            for label, image in mnist.read(path=path, dataset="training")]
testing = [(mux(label), image.reshape(784) / 255.0)
           for label, image in mnist.read(path=path, dataset="testing")]
nnet = neuralnetwork.NeuralNetwork([784, 30, 10])

ITR = 30
BTC = 3
p = printer.printer(1)
for i in range(ITR):
    error = 0
    for t, x in training:
        for j in range(BTC):
            error += nnet.learn(x, t, 1)
        message = 'Iteration ' + str(i) + ', error ' + str(error)
        p.overwrite(message)
p.clear()

success = 0
for t, x in training:
    y = demux(nnet.evaluate(x))
    if y == demux(t):
        success += 1