def get_dataset_from_option(options): fin = options.image_in dir_sample = options.sample_dir add_affine_zoom, add_affine_rot = options.add_affine_zoom, options.add_affine_rot batch_size, num_workers = options.batch_size, options.num_workers doit = do_training('/tmp/', 'not_use', verbose=True) # adding transformation tc = [] name_suffix = '' #Attention pas de _ dans le name_suffix if options.add_cut_mask > 0: target_shape, mask_key = (182, 218, 182), 'brain' tc = [ CropOrPad(target_shape=target_shape, mask_name=mask_key), ] name_suffix += '_tCropBrain' if add_affine_rot > 0 or add_affine_zoom > 0: if add_affine_zoom == 0: add_affine_zoom = 1 #0 -> no affine so 1 tc.append( RandomAffine(scales=(add_affine_zoom, add_affine_zoom), degrees=(add_affine_rot, add_affine_rot), image_interpolation=Interpolation.NEAREST)) name_suffix += '_tAffineS{}R{}'.format(add_affine_zoom, add_affine_rot) # for hcp should be before RescaleIntensity mask_brain = False if options.add_mask_brain: tc.append(ApplyMask(masking_method='brain')) name_suffix += '_tMaskBrain' mask_brain = True if options.add_rescal_Imax: tc.append(RescaleIntensity(percentiles=(0, 99))) name_suffix += '_tRescale-0-99' if options.add_elastic1: tc.append(get_motion_transform(type='elastic1')) name_suffix += '_tElastic1' if options.add_bias: tc.append(RandomBiasField()) name_suffix += '_tBias' if len(name_suffix) == 0: name_suffix = '_Raw' target = None if len(tc) == 0: tc = None add_to_load, add_to_load_regexp = None, None if len(dir_sample) > 0: print('loading from {}'.format(dir_sample)) if options.add_orig: add_to_load, add_to_load_regexp = 'original', 'notused' data_name = get_parent_path(dir_sample)[1] if mask_brain and 'hcp' in data_name: add_to_load_regexp = 'brain_T' if add_to_load is None: add_to_load = 'brain' else: add_to_load += 'brain' doit.set_data_loader(batch_size=batch_size, num_workers=num_workers, load_from_dir=dir_sample, transforms=tc, add_to_load=add_to_load, add_to_load_regexp=add_to_load_regexp) name_suffix = 'On_' + data_name + name_suffix target = options.target #'ssim' #suppose that if from sample, it should be simulation so set target else: print('working on ') for ff in fin: print(ff) doit.set_data_loader_from_file_list(fin, transforms=tc, batch_size=batch_size, num_workers=num_workers, mask_key=mask_key, mask_regex='^mask') return doit, name_suffix, target
'dropout': 0, 'batch_norm': True, 'drop_conv': 0.1, 'validation_droupout': False, 'in_size': in_size, 'cuda': cuda, 'max_epochs': max_epochs } #'conv_block':[8, 16, 32, 64, 128] dir_cache = get_cache_dir(root_fs=root_fs) #load_from_dir = ['{}/{}/'.format(dir_cache, data_name_train), '{}/{}/'.format(dir_cache, data_name_val)] res_name = '{}_{}'.format(base_name, data_name_train) load_from_dir = [None] doit = do_training(res_dir, res_name, verbose) #transforms = get_motion_transform('random_noise_1') transforms = get_motion_transform('AffFFT_random_noise') if do_eval: from torchio.transforms import CropOrPad, RandomAffine, RescaleIntensity, ApplyMask, RandomBiasField, RandomNoise, \ Interpolation, RandomAffineFFT from utils_file import get_parent_path, gfile, gdir from utils import get_ep_iter_from_res_name tc = [RandomNoise(std=(0.020, 0.2))] if add_affine_rot > 0 or add_affine_zoom > 0:
gpu = options.use_gpu #let's force absolute path if not (weights[0] == '/') : weights1 = prefix + weights cuda = True if gpu > 0 else False #fixed param batch_size, num_workers = 2, 0 fin = options.image_in dir_sample = options.sample_dir target_shape, mask_key = (182, 218, 182), 'brain' tc = [ CropOrPad(target_shape=target_shape, mask_name=mask_key), ] doit = do_training('/tmp/', 'not_use', verbose=True) if len(dir_sample) > 0: print('loading from {}'.format(dir_sample)) doit.set_data_loader(batch_size=batch_size, num_workers=num_workers, load_from_dir=dir_sample, transforms=tc) name += '_' + get_parent_path(dir_sample)[1] else: print('working on ') for ff in fin: print(ff) doit.set_data_loader_from_file_list(fin, transforms=tc,