Esempio n. 1
0
def useLayers():
    X, y = utils.load_mnist()
    y = utils.makeMultiClass(y)

    # Layers
    sDA = StackedDA([100])
    sDA.pre_train(X[:1000], rate=0.5, n_iters=500)
    sDA.finalLayer(y[:1000], learner_size=200, n_iters=1)
    sDA.fine_tune(X[:1000], y[:1000], n_iters=1)
    pred = sDA.predict(X)

    W = sDA.Layers[0].W.T[:, 1:]
    W = utils.saveTiles(W,
                        img_shape=(28, 28),
                        tile_shape=(10, 10),
                        filename="Results/res_dA.png")
    return pred, y
Esempio n. 2
0
def demo(structure=[25**2, 23**2, 21**2, 19**2, 16**2, 15**2]):
    # Getting the data
    X, y = utils.load_mnist()

    autoencoder = StackedDA([100], alpha=0.01)
    autoencoder.pre_train(X[:1000], 10)

    y = utils.makeMultiClass(y)
    autoencoder.fine_tune(X[:1000],
                          y[:1000],
                          learning_layer=200,
                          n_iters=20,
                          alpha=0.01)

    W = autoencoder.W[0].T[:, 1:]
    W = utils.saveTiles(W,
                        img_shape=(28, 28),
                        tile_shape=(10, 10),
                        filename="Results/res_dA.png")
Esempio n. 3
0
def main():

    # open and load csv files
    time_load_start = time.clock()
    X_train, y_train = fipr.load_csv("train_file.csv", True)
    X_test, y_test = fipr.load_csv("test_file.csv", True)
    #y_train = y_train.flatten()
    #y_test = y_test.flatten()
    time_load_end = time.clock()
    print("Loading finished, loading time: %g seconds" %
          (time_load_end - time_load_start))

    X_test_even, y_test_even = fipr.load_csv("test_file_even.csv", True)

    training_data = X_train
    training_labels = y_train

    test_data = X_test
    test_labels = y_test

    test_data_even = X_test_even
    test_labels_even = y_test_even

    # building the SDA
    sDA = StackedDA([100])

    # start counting time for training
    time_train_start = time.clock()
    print('Pre-training...')

    # pre-trainning the SDA
    sDA.pre_train(training_data[:1000], noise_rate=0.3, epochs=100)
    print('Training Network...')

    # adding the final layer
    sDA.finalLayer(training_data, training_labels, epochs=500)

    # trainning the whole network
    sDA.fine_tune(training_data, training_labels, epochs=500)

    # print training time
    time_train_end = time.clock()
    print("Training finished, training time: %g seconds \n" %
          (time_train_end - time_train_start))

    # start counting time for testing
    time_test_start = time.clock()

    print('Testing performance...')
    # predicting using the SDA
    y_pred = sDA.predict(test_data).argmax(1)

    # print simple precision metric to the console
    print('Accuracy:  ' + str(fipr.compute_accuracy(y_test, y_pred)))

    # print testing time
    time_test_end = time.clock()
    print("Testing finished, testing time: %g seconds  \n" %
          (time_test_end - time_test_start))

    # Even set test
    y_pred_even = sDA.predict(test_data_even).argmax(1)

    # print simple precision metric to the console
    print('Accuracy on EVEN set:  ' +
          str(fipr.compute_accuracy(y_test_even, y_pred_even)))

    return sDA