Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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