def augmentation(self, X, Y): print('Augmentation model...') total = len(X) x_train, y_train = [], [] for i in range(total): if i % 100 == 0: print('Aug', i) x, y = X[i], Y[i] #standart x_train.append(x) y_train.append(y) for _ in range(2): _x, _y = elastic_transform(x[0], y[0], 100, 20) x_train.append(_x.reshape((1, ) + _x.shape)) y_train.append(_y.reshape((1, ) + _y.shape)) #flip x x_train.append(flip_axis(x, 2)) y_train.append(flip_axis(y, 2)) #flip y x_train.append(flip_axis(x, 1)) y_train.append(flip_axis(y, 1)) continue #zoom for _ in range(1): _x, _y = random_zoom(x, y, (0.9, 1.1)) x_train.append(_x) y_train.append(_y) #intentsity for _ in range(1): _x = random_channel_shift(x, 5.0) x_train.append(_x) y_train.append(y) # for j in range(5): # xs, ys = load_aug(j) # ys = self.norm_mask(ys) # (xn, yn), _ = self.split_train_and_valid_by_patient(xs, ys, validation_split=self.validation_split, shuffle=False) # for i in range(len(xn)): # x_train.append(xn[i]) # y_train.append(yn[i]) x_train = np.array(x_train) y_train = np.array(y_train) return x_train, y_train
def augmentation(self, X, Y): print('Augmentation model...') total = len(X) x_train, y_train = [], [] for i in xrange(total): x, y = X[i], Y[i] #standart x_train.append(x) y_train.append(y) # for _ in xrange(1): # _x, _y = elastic_transform(x[0], y[0], 100, 20) # x_train.append(_x.reshape((1,) + _x.shape)) # y_train.append(_y.reshape((1,) + _y.shape)) #flip x x_train.append(flip_axis(x, 2)) y_train.append(flip_axis(y, 2)) #flip y x_train.append(flip_axis(x, 1)) y_train.append(flip_axis(y, 1)) #continue #zoom for _ in xrange(1): _x, _y = random_zoom(x, y, (0.9, 1.1)) x_train.append(_x) y_train.append(_y) for _ in xrange(0): _x, _y = random_rotation(x, y, 5) x_train.append(_x) y_train.append(_y) #intentsity for _ in xrange(1): _x = random_channel_shift(x, 5.0) x_train.append(_x) y_train.append(y) x_train = np.array(x_train) y_train = np.array(y_train) print('x_trian: ', x_train.shape) return x_train, y_train