Beispiel #1
0
def get_dataset(dataset_type = "training"):
    """
        We will use only this one to get data in part2, which will be
        a generic logistic regression model

        @param dataset "training" or "test"
        @returns standard X,Y or X
    """
    X, Y = None, None
    #1. Pobieramy obrazki i etykiety
    images, labels = get_MNIST_dataset(range(10), dataset_type)
    #2. Konwersja do X,Y (czyli wiersz to jeden przyklad, X - dwuwymiarowa macierz), Y po prostu przepisujemy
    # hint : reshape, np.zeros, przez macierz mozna latwo iterowac w petli (for row in matrix)
    #TODO: fill in
    Y = labels
    X = images.reshape((images.shape[0], images.shape[1]*images.shape[2]))

    #for id, digit in enumerate(images):
    #    pl.imshow(digit, cmap=pl.cm.gray)
    #    X[id, :] = digit.reshape((digit.shape[0]*digit.shape[1],))
    #    if id % 1000 == 0: print "Converted ",id

    # Czy da sie szybciej?

    #3. Return X,Y
    return X, Y
Beispiel #2
0
def MNIST_data():
    """
        Pobieramy wszystkie obrazki 28x28 (indeksowane pierwszym wymiarem) oraz etykiety
        Images jest 3-wymiarowa macierzy numpy.

        Wiecej do samodzielnego wykonania bo jestesmy juz swietni w numpy i rysowaniu wykresow
    """

    # Pobieramy macierze numpy z cyframi
    # images[i,j,k] <=> piksel (j,k) z i-tego obrazka w zbiorze danych
    images, labels = get_MNIST_dataset(range(10), "training") #pierwszy argument to

    # a) Ilosc przykladow i rozmiary danych
    print "Raw training data dimensions ", images.shape
    print "Labels dimensions ",labels.shape

    # b) Ile jest cyfr 2?
    print "Counting 2 in training dataset ",len(filter(lambda x: x == 2, labels))

    # c) Jaki jest sredni obrazek 2 ? (Usrednienie wszystkich macierzy ktore sa 2)

    #1. Pobierzmy wszystkie dwojki, fajny sposob indeksowania
    print labels == 2
    only_2 = images[labels == 2, :, :]
    print "Checking number of 2s ", only_2.shape

    #2. TODO: Usrednienie (matrix.mean moze byc przydatne)

    #3. TODO: narysowanie usrednionej cyfry (zobacz pl.imshow)

    # d) Ostatnie - przetworzmy ostatnia cyfre do 1 wymiarowego wektora
    vectorized = np.reshape(images[-1], newshape=(images[-1].shape[0]*images[-1].shape[1]))
    print "Vectorized last digit ", vectorized
Beispiel #3
0
def get_dataset(dataset_type = "training"):
    """
        We will use only this one to get data in part2, which will be
        a generic logistic regression model

        @param dataset "training" or "test"
        @returns standard X,Y or X
    """
    X, Y = None, None
    #1. Pobieramy obrazki i etykiety
    images, labels = get_MNIST_dataset(range(10), dataset_type)
    #2. Konwersja do X,Y (czyli wiersz to jeden przyklad, X - dwuwymiarowa macierz), Y po prostu przepisujemy

    # hint : reshape, np.zeros, przez macierz mozna latwo iterowac w petli (for row in matrix)
    # hint2: (funkcja reshape)

    #TODO: fill in

    #3. Return X,Y
    return X, Y