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
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()
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