def cmr_3d_sax_transform(self): train_transform = ts.Compose([ ts.Pad(size=self.scale_size), ts.ToTensor(), ts.ChannelsFirst(), ts.TypeCast(['float', 'float']), ts.RandomFlip(h=True, v=True, p=self.random_flip_prob), ts.RandomAffine(rotation_range=self.rotate_val, translation_range=self.shift_val, zoom_range=self.scale_val, interp=('bilinear', 'nearest')), #ts.NormalizeMedicPercentile(norm_flag=(True, False)), ts.NormalizeMedic(norm_flag=(True, False)), ts.ChannelsLast(), ts.AddChannel(axis=0), ts.RandomCrop(size=self.patch_size), ts.TypeCast(['float', 'long']) ]) valid_transform = ts.Compose([ ts.Pad(size=self.scale_size), ts.ToTensor(), ts.ChannelsFirst(), ts.TypeCast(['float', 'float']), #ts.NormalizeMedicPercentile(norm_flag=(True, False)), ts.NormalizeMedic(norm_flag=(True, False)), ts.ChannelsLast(), ts.AddChannel(axis=0), ts.SpecialCrop(size=self.patch_size, crop_type=0), ts.TypeCast(['float', 'long']) ]) return {'train': train_transform, 'valid': valid_transform}
def ct_82_transform(self): train_transform = ts.Compose([ ts.ToTensor(), ts.RangeNormalize(0, 1), ts.Pad(size=self.scale_size), ts.TypeCast(['float', 'float']), RandomFlip3D(z=True, x=True, y=True, p=self.random_flip_prob), RandomAffine3D(degrees=self.rotate_val, translate=self.shift_val, scale=self.scale_val, resample=Image.NEAREST), CustomCrop3D(size=self.patch_size, crop_type="random"), ts.AddChannel(axis=0), # ts.TypeCast(['float', 'float']) ]) valid_transform = ts.Compose([ ts.ToTensor(), ts.RangeNormalize(0, 1), ts.Pad(size=self.scale_size), ts.TypeCast(['float', 'float']), CustomCrop3D(size=self.patch_size, crop_type="center"), ts.AddChannel(axis=0), # ts.TypeCast(['float', 'float']) ]) return {'train': train_transform, 'valid': valid_transform}
def test_3d_sax_transform(self): test_transform = ts.Compose([ ts.PadFactorNumpy(factor=self.division_factor), ts.ToTensor(), ts.ChannelsFirst(), ts.TypeCast(['float']), #ts.NormalizeMedicPercentile(norm_flag=True), ts.NormalizeMedic(norm_flag=True), ts.ChannelsLast(), ts.AddChannel(axis=0), ]) return {'test': test_transform}
def ultrasound_transform(self): train_transform = ts.Compose([ts.ToTensor(), ts.TypeCast(['float']), ts.AddChannel(axis=0), ts.SpecialCrop(self.patch_size,0), ts.RandomFlip(h=True, v=False, p=self.random_flip_prob), ts.RandomAffine(rotation_range=self.rotate_val, translation_range=self.shift_val, zoom_range=self.scale_val, interp=('bilinear')), ts.StdNormalize(), ]) valid_transform = ts.Compose([ts.ToTensor(), ts.TypeCast(['float']), ts.AddChannel(axis=0), ts.SpecialCrop(self.patch_size,0), ts.StdNormalize(), ]) return {'train': train_transform, 'valid': valid_transform}
random.seed(c) print("random seed: {}".format(c)) comment = "20/200 with parameter per slice and all slices" print(comment) patient_id_G_test = random.sample(patient_id_G, 20) patient_id_H_test = random.sample(patient_id_H, 200) patient_id_G_train = list(patient_id_G.difference(patient_id_G_test)) patient_id_H_train = list(patient_id_H.difference(patient_id_H_test)) transform_pipeline_train = tr.Compose([ AddGaussian(), AddGaussian(ismulti=False), tr.ToTensor(), tr.AddChannel(axis=0), tr.TypeCast('float'), # Attenuation((-.001, .1)), # tr.RangeNormalize(0,1), tr.RandomBrightness(-.2, .2), tr.RandomGamma(.9, 1.1), tr.RandomFlip(), tr.RandomAffine(rotation_range=5, translation_range=0.2, zoom_range=(0.9, 1.1)) ]) transform_pipeline_test = tr.Compose([ tr.ToTensor(), tr.AddChannel(axis=0), tr.TypeCast('float')
for epoch in range(1, nb_epoch + 1): seg_train(epoch, unet_model, seg_train_loader, criterion, optimizer) # print("Test AUC:", auc_cal(model, testloader)) # test(model, testloader) torch.save(unet_model, os.path.join(model_repo_dir, 'unet.pt')) #Training UNET END #Training Diag network START transform_pipeline_train = tr.Compose( [ # AddGaussian(), # AddGaussian(ismulti=False), tr.ToTensor(), tr.AddChannel(axis=0), tr.TypeCast('float'), # Attenuation((-.001, .1)), # tr.RangeNormalize(0,1), tr.RandomBrightness(-.2, .2), tr.RandomGamma(.9, 1.1), tr.RandomFlip(), tr.RandomAffine(rotation_range=5, translation_range=0.2 # zoom_range=(0.9, 1.1) )]) transform_pipeline_test = tr.Compose([tr.ToTensor(), tr.AddChannel(axis=0), tr.TypeCast('float') # tr.RangeNormalize(0, 1) ]) transformed_images = Beijing_diag_dataset(root_dir, patient_id_G_train, patient_id_H_train, resize_dim= (96,288), transform=transform_pipeline_train)