def _generate_base_params(): # initialise compulsory params that are irrelevant # to this unit test user_param = dict() user_param['SYSTEM'] = ParserNamespace(model_dir='./testing_data', num_threads=2, num_gpus=1, cuda_devices='', event_handler=None, iteration_generator=None) user_param['NETWORK'] = ParserNamespace( batch_size=20, name='tests.toy_application.TinyNet') user_param['TRAINING'] = ParserNamespace(starting_iter=0, max_iter=2, save_every_n=2, tensorboard_every_n=0, max_checkpoints=100) user_param['INFERENCE'] = ParserNamespace(inference_iter=-1) user_param['CUSTOM'] = ParserNamespace( name='tests.toy_application.ToyApplication', vector_size=100, mean=10.0, stddev=2.0) return user_param
def _generate_data_param(): user_param = dict() user_param['modality'] = ParserNamespace(csv_file=os.path.join( 'testing_data', 'mod1test.csv'), path_to_search='testing_data') user_param['modality2'] = ParserNamespace(csv_file=os.path.join( 'testing_data', 'mod2test.csv'), path_to_search='testing_data') return user_param
def get_initialised_driver(starting_iter=0, model_dir_rand=True, vars_to_restore='', application='tests.toy_application.ToyApplication'): if model_dir_rand: model_dir = os.path.join('.', 'testing_data', 'tmp', str(uuid.uuid4())) os.makedirs(model_dir) else: model_dir = os.path.join('.', 'testing_data') system_param = { 'SYSTEM': ParserNamespace(action='train', num_threads=2, num_gpus=4, cuda_devices='6', model_dir=model_dir, dataset_split_file=os.path.join( '.', 'testing_data', 'testtoyapp.csv'), event_handler=[ 'niftynet.engine.handler_model.ModelRestorer', 'niftynet.engine.handler_sampler.SamplerThreading', 'niftynet.engine.handler_gradient.ApplyGradients' ], iteration_generator=None), 'NETWORK': ParserNamespace(batch_size=20, name='tests.toy_application.TinyNet'), 'TRAINING': ParserNamespace( starting_iter=starting_iter, max_iter=500, save_every_n=20, tensorboard_every_n=1, max_checkpoints=20, optimiser='niftynet.engine.application_optimiser.Adagrad', validation_every_n=-1, exclude_fraction_for_validation=0.1, exclude_fraction_for_inference=0.1, vars_to_restore=vars_to_restore, patience=100, lr=0.01), 'CUSTOM': ParserNamespace(vector_size=100, mean=10.0, stddev=2.0, name=application) } app_driver = ApplicationDriver() app_driver.initialise_application(system_param, {}) # set parameters without __init__ app_driver.app.action_param = system_param['TRAINING'] app_driver.app.net_param = system_param['NETWORK'] app_driver.app.action = 'train' return app_driver
def get_ill_image_window_2(): return dict(source_names={ 'image': (u'modality1', u'modality2'), 'label': (u'modality3', ) }, image_shapes={ 'image': (192, 160, 192, 1, 2), 'label': (192, 160, 192, 1, 1) }, image_dtypes={'image': tf.float32}, window_sizes={ 'modality1': ParserNamespace(spatial_window_size=(10, 10)), 'modality2': ParserNamespace(spatial_window_size=(10, 10)), 'modality3': ParserNamespace(spatial_window_size=()) })
def get_static_window_param(): return dict( source_names={ 'image': (u'modality1', u'modality2'), 'label': (u'modality3',)}, image_shapes={ 'image': (192, 160, 192, 1, 2), 'label': (192, 160, 192, 1, 1)}, image_dtypes={ 'image': tf.float32, 'label': tf.float32}, data_param={ 'modality1': ParserNamespace(spatial_window_size=(10, 10, 2)), 'modality2': ParserNamespace(spatial_window_size=(10, 10, 2)), 'modality3': ParserNamespace(spatial_window_size=(5, 5, 1))} )
def get_all_dynamic_image_window(): return dict( source_names={ 'image': (u'modality1', u'modality2'), 'label': (u'modality3',)}, image_shapes={ 'image': (192, 160, 192, 1, 2), 'label': (192, 160, 192, 1, 1)}, image_dtypes={ 'image': tf.float32, 'label': tf.float32}, data_param={ 'modality1': ParserNamespace(spatial_window_size=(-1, -1)), 'modality2': ParserNamespace(spatial_window_size=(-1, -1)), 'modality3': ParserNamespace(spatial_window_size=-1)} )
def preprocess( input_path, model_path, output_path, cutoff, ): input_path = Path(input_path) output_path = Path(output_path) input_dir = input_path.parent DATA_PARAM = { 'Modality0': ParserNamespace( path_to_search=str(input_dir), filename_contains=('nii.gz', ), interp_order=0, pixdim=None, axcodes='RAS', loader=None, ) } TASK_PARAM = ParserNamespace(image=('Modality0', )) data_partitioner = ImageSetsPartitioner() file_list = data_partitioner.initialise(DATA_PARAM).get_file_list() reader = ImageReader(['image']) reader.initialise(DATA_PARAM, TASK_PARAM, file_list) binary_masking_func = BinaryMaskingLayer(type_str='mean_plus', ) hist_norm = HistogramNormalisationLayer( image_name='image', modalities=['Modality0'], model_filename=str(model_path), binary_masking_func=binary_masking_func, cutoff=cutoff, name='hist_norm_layer', ) image = reader.output_list[0]['image'] data = image.get_data() norm_image_dict, mask_dict = hist_norm({'image': data}) data = norm_image_dict['image'] nii = nib.Nifti1Image(data.squeeze(), image.original_affine[0]) dst = output_path nii.to_filename(str(dst))
def get_dynamic_image_window(): window = ImageWindow.from_data_reader_properties( source_names={ 'image': (u'modality1', u'modality2'), 'label': (u'modality3', ) }, image_shapes={ 'image': (192, 160, 192, 1, 2), 'label': (192, 160, 192, 1, 1) }, image_dtypes={ 'image': tf.float32, 'label': tf.float32 }, data_param={ 'modality1': ParserNamespace(spatial_window_size=(10, 10)), 'modality2': ParserNamespace(spatial_window_size=(10, 10)), 'modality3': ParserNamespace(spatial_window_size=(5, 5, 1)) }) return window
def get_initialised_driver(starting_iter=0): system_param = { 'SYSTEM': ParserNamespace(action='train', num_threads=2, num_gpus=4, cuda_devices='6', model_dir=os.path.join('.', 'testing_data'), dataset_split_file=os.path.join( '.', 'testing_data', 'testtoyapp.csv')), 'NETWORK': ParserNamespace(batch_size=20, name='tests.toy_application.TinyNet'), 'TRAINING': ParserNamespace( starting_iter=starting_iter, max_iter=500, save_every_n=20, tensorboard_every_n=1, max_checkpoints=20, optimiser='niftynet.engine.application_optimiser.Adagrad', validation_every_n=-1, exclude_fraction_for_validation=0.1, exclude_fraction_for_inference=0.1, lr=0.01), 'CUSTOM': ParserNamespace(vector_size=100, mean=10.0, stddev=2.0, name='tests.toy_application.ToyApplication') } app_driver = ApplicationDriver() app_driver.initialise_application(system_param, {}) # set parameters without __init__ app_driver.app.action_param = system_param['TRAINING'] app_driver.app.net_param = system_param['NETWORK'] app_driver.app.is_training = True return app_driver
import os import tensorflow as tf from niftynet.contrib.dataset_sampler.sampler_resize_v2 import ResizeSampler from niftynet.io.image_reader import ImageReader from niftynet.io.image_sets_partitioner import ImageSetsPartitioner from niftynet.utilities.util_common import ParserNamespace MULTI_MOD_DATA = { 'T1': ParserNamespace(csv_file=os.path.join('testing_data', 'T1sampler.csv'), path_to_search='testing_data', filename_contains=('_o_T1_time', ), filename_not_contains=('Parcellation', ), interp_order=3, pixdim=None, axcodes=None, spatial_window_size=(7, 10, 2), loader=None), 'FLAIR': ParserNamespace(csv_file=os.path.join('testing_data', 'FLAIRsampler.csv'), path_to_search='testing_data', filename_contains=('FLAIR_', ), filename_not_contains=('Parcellation', ), interp_order=3, pixdim=None, axcodes=None, spatial_window_size=(7, 10, 2), loader=None) }
from niftynet.io.image_sets_partitioner import ImageSetsPartitioner from niftynet.layer.discrete_label_normalisation import \ DiscreteLabelNormalisationLayer from niftynet.layer.pad import PadLayer from niftynet.utilities.util_common import ParserNamespace from tests.niftynet_testcase import NiftyNetTestCase NEW_ORDER = (0, 1, 2, 4, 3) NEW_ORDER_2D = (0, 1, 3, 2) MULTI_MOD_DATA = { 'T1': ParserNamespace(csv_file=os.path.join('testing_data', 'T1sampler.csv'), path_to_search='testing_data', filename_contains=('_o_T1_time', '23'), filename_not_contains=('Parcellation', ), interp_order=0, pixdim=(2.4, 5.0, 2.0), axcodes='LAS', spatial_window_size=(23, 32, 15), loader=None), 'FLAIR': ParserNamespace(csv_file=os.path.join('testing_data', 'FLAIRsampler.csv'), path_to_search='testing_data', filename_contains=('FLAIR_', '23'), filename_not_contains=('Parcellation', ), interp_order=0, pixdim=(2.4, 5.0, 2.0), axcodes='LAS', spatial_window_size=(23, 32, 15), loader=None) }
import os import tensorflow as tf from niftynet.engine.sampler_linear_interpolate import LinearInterpolateSampler from niftynet.io.image_reader import ImageReader from niftynet.io.image_sets_partitioner import ImageSetsPartitioner from niftynet.utilities.util_common import ParserNamespace MULTI_MOD_DATA = { 'T1': ParserNamespace( csv_file=os.path.join('testing_data', 'T1sampler.csv'), path_to_search='testing_data', filename_contains=('_o_T1_time',), filename_not_contains=('Parcellation',), interp_order=3, pixdim=None, axcodes=None, spatial_window_size=(7, 10, 2) ), 'FLAIR': ParserNamespace( csv_file=os.path.join('testing_data', 'FLAIRsampler.csv'), path_to_search='testing_data', filename_contains=('FLAIR_',), filename_not_contains=('Parcellation',), interp_order=3, pixdim=None, axcodes=None, spatial_window_size=(7, 10, 2) ) }
import os import tensorflow as tf from niftynet.io.image_sets_partitioner import COLUMN_UNIQ_ID from niftynet.io.image_sets_partitioner import ImageSetsPartitioner from niftynet.io.image_sets_partitioner import TRAIN, VALID, INFER from niftynet.utilities.util_common import ParserNamespace test_sections = { 'T1': ParserNamespace(csv_file=os.path.join('testing_data', 'test_reader.csv'), path_to_search='testing_data', filename_contains=('_o_T1_time', ), filename_not_contain=('Parcellation', ), interp_order=3, pixdim=None, axcodes=None, loader=None), 'Flair': ParserNamespace(csv_file=os.path.join('testing_data', 'test_Flairreader.csv'), path_to_search='testing_data', filename_contains=('FLAIR_', ), filename_not_contains=('Parcellation', ), interp_order=3, pixdim=None, axcodes=None, loader=None) }
import tensorflow as tf from niftynet.io.image_reader import ImageReader from niftynet.io.image_sets_partitioner import ImageSetsPartitioner from niftynet.layer.discrete_label_normalisation import \ DiscreteLabelNormalisationLayer from niftynet.layer.pad import PadLayer from niftynet.utilities.util_common import ParserNamespace # test multiple modalities MULTI_MOD_DATA = { 'T1': ParserNamespace(csv_file=os.path.join('testing_data', 'T1reader.csv'), path_to_search='testing_data', filename_contains=('_o_T1_time', ), filename_not_contains=('Parcellation', ), interp_order=3, pixdim=None, axcodes=None), 'FLAIR': ParserNamespace(csv_file=os.path.join('testing_data', 'FLAIRreader.csv'), path_to_search='testing_data', filename_contains=('FLAIR_', ), filename_not_contains=('Parcellation', ), interp_order=3, pixdim=None, axcodes=None) } MULTI_MOD_TASK = ParserNamespace(image=('T1', 'FLAIR')) # test single modalities
from niftynet.contrib.csv_reader.sampler_csvpatch import CSVPatchSampler from niftynet.engine.image_window import N_SPATIAL # from niftynet.engine.sampler_uniform import UniformSampler from niftynet.engine.sampler_uniform_v2 import rand_spatial_coordinates from niftynet.io.image_reader import ImageReader from niftynet.io.image_sets_partitioner import ImageSetsPartitioner from niftynet.utilities.util_common import ParserNamespace from tests.niftynet_testcase import NiftyNetTestCase DYNAMIC_MOD_DATA = { 'T1': ParserNamespace(csv_file='', path_to_search='data/csv_data', filename_contains=(), filename_not_contains=('_', 'csv'), interp_order=3, csv_data_file='', pixdim=None, axcodes=None, spatial_window_size=(69, 69, 69), loader=None), 'sampler': ParserNamespace(csv_file='', path_to_search='', filename_contains=(), filename_not_contains=(), interp_order=0, pixdim=None, axcodes=None, spatial_window_size=(), loader=None, csv_data_file='data/csv_data/ICBMTest3.csv')
from niftynet.io.image_sets_partitioner import ImageSetsPartitioner from niftynet.layer.discrete_label_normalisation import \ DiscreteLabelNormalisationLayer from niftynet.layer.pad import PadLayer from niftynet.utilities.util_common import ParserNamespace from tests.reader_modular_test import generate_2d_images, SEG_THRESHOLD from tests.niftynet_testcase import NiftyNetTestCase generate_2d_images() # test multiple modalities MULTI_MOD_DATA = { 'T1': ParserNamespace(csv_file=os.path.join('testing_data', 'T1reader.csv'), path_to_search='testing_data', filename_contains=('_o_T1_time', ), filename_not_contains=('Parcellation', ), interp_order=3, pixdim=None, axcodes=None, loader=None), 'FLAIR': ParserNamespace(csv_file=os.path.join('testing_data', 'FLAIRreader.csv'), path_to_search='testing_data', filename_contains=('FLAIR_', ), filename_not_contains=('Parcellation', ), interp_order=3, pixdim=None, axcodes=None, loader=None) } MULTI_MOD_TASK = ParserNamespace(image=('T1', 'FLAIR'))
from niftynet.io.image_reader import ImageReader from niftynet.io.image_sets_partitioner import ImageSetsPartitioner from niftynet.layer.binary_masking import BinaryMaskingLayer from niftynet.layer.histogram_normalisation import \ HistogramNormalisationLayer from niftynet.layer.mean_variance_normalisation import \ MeanVarNormalisationLayer from niftynet.utilities.util_common import ParserNamespace from tests.niftynet_testcase import NiftyNetTestCase DATA_PARAM = { 'T1': ParserNamespace(csv_file=os.path.join('testing_data', 'T1.csv'), path_to_search='testing_data', filename_contains=('_o_T1_time', ), filename_not_contains=('Parcellation', ), interp_order=3, pixdim=None, axcodes=None, loader=None), 'FLAIR': ParserNamespace(csv_file=os.path.join('testing_data', 'FLAIR.csv'), path_to_search='testing_data', filename_contains=('FLAIR_', ), filename_not_contains=('Parcellation', ), interp_order=3, pixdim=None, axcodes=None, loader=None) } TASK_PARAM = ParserNamespace(image=('T1', 'FLAIR')) MODEL_FILE = os.path.join('testing_data', 'std_models.txt')