def load_hyper(args): data, labels, numclass = auxil.loadData(args.dataset, num_components=args.components) pixels, labels = auxil.createImageCubes(data, labels, windowSize=args.spatialsize, removeZeroLabels=True) bands = pixels.shape[-1] numberofclass = len(np.unique(labels)) x_train, x_test, y_train, y_test = auxil.split_data( pixels, labels, args.tr_percent) del pixels, labels train_hyper = HyperData( (np.transpose(x_train, (0, 3, 1, 2)).astype("float32"), y_train), None) test_hyper = HyperData( (np.transpose(x_test, (0, 3, 1, 2)).astype("float32"), y_test), None) kwargs = {'num_workers': 1, 'pin_memory': True} train_loader = torch.utils.data.DataLoader(train_hyper, batch_size=args.tr_bsize, shuffle=True, **kwargs) test_loader = torch.utils.data.DataLoader(test_hyper, batch_size=args.te_bsize, shuffle=False, **kwargs) return train_loader, test_loader, numberofclass, bands
def load_hyper(args): data, labels, numclass = auxil.loadData(args.dataset, num_components=args.components) pixels, labels = auxil.createImageCubes(data, labels, windowSize=args.spatialsize, removeZeroLabels = True) bands = pixels.shape[-1]; numberofclass = len(np.unique(labels)) x_train, x_test, y_train, y_test = auxil.split_data(pixels, labels, args.tr_percent) if args.use_val: x_val, x_test, y_val, y_test = auxil.split_data(x_test, y_test, args.val_percent) del pixels, labels if args.p != 0: transform_train = transform.RandomErasing(probability = args.p, sh = args.sh, r1 = args.r1,) else: transform_train = None train_hyper = HyperData((np.transpose(x_train, (0, 3, 1, 2)).astype("float32"),y_train), transform_train) test_hyper = HyperData((np.transpose(x_test, (0, 3, 1, 2)).astype("float32"),y_test), None) if args.use_val: val_hyper = HyperData((np.transpose(x_val, (0, 3, 1, 2)).astype("float32"),y_val), None) kwargs = {'num_workers': 1, 'pin_memory': True} train_loader = torch.utils.data.DataLoader(train_hyper, batch_size=args.tr_bsize, shuffle=True, **kwargs) test_loader = torch.utils.data.DataLoader(test_hyper, batch_size=args.te_bsize, shuffle=False, **kwargs) if args.use_val: val_loader = torch.utils.data.DataLoader(val_hyper, batch_size=args.val_bsize, shuffle=False, **kwargs) else: val_loader = None return train_loader, val_loader, test_loader, numberofclass, bands
def load_hyper(args): if args.dataset not in ["UH", "DIP", "DUP"]: acrstate = None if args.random_state == None else args.random_state+args.idtest pixelsO, labelsO, numclass = auxil.loadData(args.dataset, num_components=args.components, rand_state=acrstate) pixelsO, labelsO = auxil.createImageCubes(pixelsO, labelsO, windowSize=args.spatialsize, removeZeroLabels = False) pixels = pixelsO[labelsO!=0] labels = labelsO[labelsO!=0] - 1 bands = pixels.shape[-1]; numberofclass = len(np.unique(labels)) pixels = pixels.reshape((pixels.shape[0], args.spatialsize, args.spatialsize, bands, 1)) pixelsO = pixelsO.reshape((pixelsO.shape[0], args.spatialsize, args.spatialsize, bands, 1)) x_train, x_test, y_train, y_test = auxil.split_data(pixels, labels, args.tr_percent, rand_state=acrstate) del pixels, labels else: x_train, x_test, y_train, y_test, pixelsO, labelsO, bands, numberofclass = auxil.loadDataFIX(args) return (x_train, y_train), (x_test, y_test), (pixelsO, labelsO), numberofclass, bands