def __getitem__(self, i): # get random sample input, target = sample_labeled_input(self.data, self.labels, self.input_shape) # perform augmentation if necessary if self.transform is not None: input = self.transform(input) if self.target_transform is not None and len(target) > 0: target = self.target_transform(target) if self.mode == 'image-level': target = target[target.shape[0] // 2, target.shape[1] // 2, target.shape[2] // 2] if self.input_shape[0] > 1: # 3D data return input[np.newaxis, ...], target else: return input, target else: # image-level labels as default weak labels target = target[target.shape[0] // 2, target.shape[1] // 2, target.shape[2] // 2] if self.input_shape[0] > 1: # 3D data return input[np.newaxis, ...], target else: return input, target
def __getitem__(self, i): # get random sample if self.n_samples is not None: input = self.samples_x[self.iter_in_epoch] target = self.samples_y[self.iter_in_epoch] self.iter_in_epoch += 1 if self.iter_in_epoch == self.n_samples: self.iter_in_epoch = 0 data = list(zip(self.samples_x, self.samples_y)) shuffle(data) self.samples_x, self.samples_y = zip(*data) else: input, target = sample_labeled_input(self.data, self.labels, self.input_shape) # perform augmentation if necessary if self.transform is not None: input = self.transform(input) if self.target_transform is not None and len(target)>0: target = self.target_transform(target) target = int(target.sum()>0) if self.input_shape[0] > 1: # 3D data return input[np.newaxis, ...], target else: return input, target
def __getitem__(self, i): # get random sample input, target = sample_labeled_input(self.data, self.labels, self.input_shape) # perform augmentation if necessary if self.transform is not None: input = self.transform(input) if self.target_transform is not None and len(target)>0: target = self.target_transform(target) if self.input_shape[0] > 1: # 3D data return input[np.newaxis, ...], target[np.newaxis, ...] else: return input, target
def __init__(self, input_shape, len_epoch=1000, preprocess='z', transform=None, target_transform=None, n_samples=None): super(EPFLPixelTestDataset, self).__init__(os.path.join('../data', 'epfl', 'testing.tif'), os.path.join('../data', 'epfl', 'testing_groundtruth.tif'), input_shape, len_epoch=len_epoch, preprocess=preprocess, transform=transform, target_transform=target_transform) self.n_samples = n_samples self.iter_in_epoch = 0 if n_samples is not None: self.len_epoch = n_samples # extract samples self.samples_x = [] self.samples_y = [] for n in range(n_samples): input, target = sample_labeled_input(self.data, self.labels, self.input_shape) self.samples_x.append(input) self.samples_y.append(target)
def __getitem__(self, i): # get random sample r = random.randint(0,len(self.input_shapes)-1) orientation = self.orientations[r] input_shape = self.input_shapes[r] input_shapes = (input_shape[orientation[0]], input_shape[orientation[1]], input_shape[orientation[2]]) input, target = sample_labeled_input(self.data, self.labels, input_shapes) input = np.transpose(input, (orientation.index(0), orientation.index(1), orientation.index(2))) target = np.transpose(target, (orientation.index(0), orientation.index(1), orientation.index(2))) # perform augmentation if necessary if self.transform is not None: input = self.transform(input) if self.target_transform is not None and len(target)>0: target = self.target_transform(target) if input_shape[0] > 1: # 3D data return input[np.newaxis, ...], target[np.newaxis, ...] else: return input, target
def __init__(self, input_shape, len_epoch=1000, preprocess='z', transform=None, target_transform=None, split=0.5, n_samples=None): super(MEDPixelTestDataset, self).__init__(os.path.join('../data', 'med', 'data.tif'), os.path.join('../data', 'med', 'labels.tif'), input_shape, len_epoch=len_epoch, preprocess=preprocess, transform=transform, target_transform=target_transform) s = int(split * self.data.shape[2]) self.data = self.data[:, :, s:] self.labels = self.labels[:, :, s:] self.n_samples = n_samples self.iter_in_epoch = 0 if n_samples is not None: self.len_epoch = n_samples # extract samples self.samples_x = [] self.samples_y = [] for n in range(n_samples): input, target = sample_labeled_input(self.data, self.labels, self.input_shape) self.samples_x.append(input) self.samples_y.append(target)