Exemplo n.º 1
0
def load_svhn(zero_centre=False, greyscale=False, val=False, extra=False):
    #
    #
    # Load SVHN
    #
    #

    print('Loading SVHN...')
    if val:
        d_svhn = svhn.SVHN(n_val=10000)
    else:
        d_svhn = svhn.SVHN(n_val=0)

    if extra:
        d_extra = svhn.SVHNExtra()
    else:
        d_extra = None

    d_svhn.train_X = d_svhn.train_X[:]
    d_svhn.val_X = d_svhn.val_X[:]
    d_svhn.test_X = d_svhn.test_X[:]
    d_svhn.train_y = d_svhn.train_y[:]
    d_svhn.val_y = d_svhn.val_y[:]
    d_svhn.test_y = d_svhn.test_y[:]

    if extra:
        d_svhn.train_X = np.append(d_svhn.train_X, d_extra.X[:], axis=0)
        d_svhn.train_y = np.append(d_svhn.train_y, d_extra.y[:], axis=0)

    if greyscale:
        d_svhn.train_X = rgb2grey_tensor(d_svhn.train_X)
        d_svhn.val_X = rgb2grey_tensor(d_svhn.val_X)
        d_svhn.test_X = rgb2grey_tensor(d_svhn.test_X)

    if zero_centre:
        d_svhn.train_X = d_svhn.train_X * 2.0 - 1.0
        d_svhn.val_X = d_svhn.val_X * 2.0 - 1.0
        d_svhn.test_X = d_svhn.test_X * 2.0 - 1.0

    print(
        'SVHN: train: X.shape={}, y.shape={}, val: X.shape={}, y.shape={}, test: X.shape={}, y.shape={}'
        .format(d_svhn.train_X.shape, d_svhn.train_y.shape, d_svhn.val_X.shape,
                d_svhn.val_y.shape, d_svhn.test_X.shape, d_svhn.test_y.shape))

    print('SVHN: train: X.min={}, X.max={}'.format(d_svhn.train_X.min(),
                                                   d_svhn.train_X.max()))

    d_svhn.n_classes = 10

    return d_svhn
Exemplo n.º 2
0
def test_train_test_split():
    from batchup.datasets import svhn
    from batchup.tests.dataset_test_helpers import sample_hashes

    ds = svhn.SVHN(n_val=0)

    train_h = sample_hashes(ds.train_X_u8)
    test_h = sample_hashes(ds.test_X_u8)

    assert set(train_h).intersection(set(test_h)) == set()
Exemplo n.º 3
0
def test_val_0():
    from batchup.datasets import svhn

    ds = svhn.SVHN(n_val=0)

    assert ds.train_X.shape == (73257, 3, 32, 32)
    assert ds.train_X.dtype == np.float32

    assert ds.train_y.shape == (73257, )
    assert ds.train_y.dtype == np.int32

    assert ds.val_X.shape == (0, 3, 32, 32)
    assert ds.val_X.dtype == np.float32

    assert ds.val_y.shape == (0, )
    assert ds.val_y.dtype == np.int32

    assert ds.test_X.shape == (26032, 3, 32, 32)
    assert ds.test_X.dtype == np.float32

    assert ds.test_y.shape == (26032, )
    assert ds.test_y.dtype == np.int32