async def main():
    await mpc.start()
    #load test data
    print(f'loading data...')
    data = load_data('Face', 'test')
    #data = np.array(data)
    data = np.reshape(data, (-1, 100))

    hor_filter = np.array([[-1, -1, -1],
                           [ 0,  0,  0],
                           [ 1,  1,  1]])

    ver_filter = np.array([[-1, 0, 1],
                           [-1, 0, 1],
                           [-1, 0, 1]])

    start = timer()

    result = sharpen_img(data, (hor_filter, ver_filter)).tolist()
    print(type(result), len(result), type(result[0]))
    
    print("$$$\n")
    print(await mpc.output(result))
    print("$$$")

    end = timer()
    running_time = end - start
    print(f'MPC total time: {running_time}')
Beispiel #2
0
async def main():
    await mpc.start()
    image = load_data('Image', 'test')[0]
    kernel = load_data('Kernel', 'model')[0]
    image = np.reshape(image, (int(math.sqrt(len(image))), int(math.sqrt(len(image)))))
    kernel = np.reshape(kernel, (int(math.sqrt(len(kernel))), int(math.sqrt(len(kernel)))))

    start = timer()
    result = convolution(image, kernel)
    end = timer()
    running_time = end - start
    print(f'Run time: {running_time}')

    print("$$$\n")
    print(running_time)
    print("$$$")
Beispiel #3
0
async def main():
    await mpc.start()
    image = load_data('Image', 'test')[0]
    image = np.reshape(
        image, (int(math.sqrt(len(image))), int(math.sqrt(len(image)))))
    start = timer()
    result = relu(image)
    end = timer()
    running_time = end - start
    print(f'Run time: {running_time}')

    print("$$$\n")
    print(running_time)
    print("$$$")
Beispiel #4
0
async def main():
    await mpc.start()
    image = load_data('Image', 'test')[0]
    #image = np.reshape(image, (int(math.sqrt(len(image))), int(math.sqrt(len(image)))))

    #start = timer()
    #result = relu(image)
    #result = list(np.asarray(result).flatten())
    #end = timer()
    #running_time = end - start
    #print(f'Run time: {running_time}')
    start = timer()
    print(await mpc.output(image))
    end = timer()
    running_time = end - start
    print("$$$\n")
    print(running_time)
    print("$$$")
async def main():
    print("Starting MPC...")
    await mpc.start()
    print("MPC started")

    print("Loading data...")
    images = load_data("Face", "test")
    image = images[0]
    with open("parameters/weights.pkl", "rb") as f:
        weights = pickle.load(f)

    with open("parameters/biases.pkl", "rb") as f:
        biases = pickle.load(f)
    print("Data loaded")

    image = np.reshape(image, (int(math.sqrt(len(image))), int(math.sqrt(len(image)))))
    print("Data reshaped")

    start = timer()

    print("---------- LAYER 0 ----------")
    inputs_1 = layer(image, weights[0], biases[0])
    await mpc.barrier()

    print("---------- LAYER 1 ----------")
    inputs_2 = layer(inputs_1, weights[1], biases[1])
    await mpc.barrier()

    print("---------- LAYER 2 ----------")
    result = layer(inputs_2, weights[2], biases[2])
    await mpc.barrier()

    print("---------- FLATTENING ----------")
    result = list(np.asarray(result).flatten())

    end = timer()
    compute_time = end - start
    print(f"Compute time: {compute_time}")

    print("$$$\n")
    print(await mpc.output(result))
    print("$$$")