def runTest2():
    inputArray = np.array([[[[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]],
                            [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]],
                            [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]],
                            [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]],
                            [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]],
                            [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]],
                            [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]],
                            [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]],
                            [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]]]])
    labels = [1]
    #print(inputArray.shape)

    #Conv layer config
    numKernels = 4
    kernelSize = 3

    #Create network
    N = Network(sigmoid, ALPHA)
    N.addLayer(inputArray[0].shape)
    N.addConvLayer(inputArray[0].shape, numKernels, kernelSize, flatten=True) #We flatten it if it's gonna be followed by a FC layer
    N.addLayer(10, biased=True)
    N.addLayer(1)
##    return inputArray
##    return N
    #Train network    
    N.fit(inputArray, labels, NUM_EPOCH, verbose=True)

    return N
def run():
    #Unpickle data and put it in usable shape
    data = unpickle(PATH)
    inputs = shapeAsImage(data['data'])
    labels = oneHotEncode(data['labels'])
    print(labels[0])
    #Check what it looks like
    plt.imshow(inputs[0], interpolation='nearest')
    plt.show()

    #Create classification network
    N = Network(sigmoid, ALPHA)
    N.addLayer(IMAGE_SHAPE)
    N.addConvLayer(IMAGE_SHAPE, NUM_KERNELS, SIZE_KERNELS, flatten=True)
    N.addLayer(NUM_LABELS)


    import cProfile

    fit = N.fit

    #Train network
    command = 'N.fit(inputs[:10], labels[:10], NUM_EPOCH, verbose=True)'
    cProfile.runctx(command, globals(), locals(), filename=None)
    #cProfile.run('fit(inputs[:10], labels[:10], NUM_EPOCH, verbose=True)')

    return N