LungTumorMask / training /interface.py
Vemund Fredriksen
Add training pipeline (#21)
1cc0005 unverified
raw
history blame
No virus
3.8 kB
import argparse
import sys
from Utils.fileconverter import itk_to_nrrd
from Engine.train import initiate as train_initiate
from Engine.evaluate import initiate as evaluate_initiate
from Utils.MSD_utilities import generate_training_data
from Utils.plot import plot_train_data
from Utils.PETCT_LungDx_utilities import convert_nsclc_petct
class Parser(object):
def __init__(self):
parser = argparse.ArgumentParser(
description='Interface for utilities',
usage='''interface <command> [<args>]
Available commands:
itk_to_nrrd Converts files in folder from other ITK formats to .nrrd format
train Initiates training
evaluate Initiates evaluation
plot Generates and shows plot based on specified metric file
msd_generate_data_file Generates a datafile for training on MSD dataset
format_petct_dataset Converts the the LUNGPTCT dataset to nifti files and generates segboxes for each scan
''')
parser.add_argument('command', help='Subcommand to run')
args = parser.parse_args(sys.argv[1:2])
if(not hasattr(self, args.command)):
print('Unrecognized command')
parser.print_help()
exit(1)
getattr(self, args.command)()
def itk_to_nrrd(self):
parser = argparse.ArgumentParser(
description='Converts files in folder from other ITK formats to .nrrd format')
parser.add_argument("source")
parser.add_argument("destination")
args = parser.parse_args(sys.argv[2:])
itk_to_nrrd(args.source, args.destination)
def train(self):
parser = argparse.ArgumentParser(
description='Initiates training of model based on specified config file')
parser.add_argument("config")
args = parser.parse_args(sys.argv[2:])
train_initiate(args.config)
def evaluate(self):
parser = argparse.ArgumentParser(
description='Initiates evaluation of model based on specified config file')
parser.add_argument("config")
args = parser.parse_args(sys.argv[2:])
evaluate_initiate(args.config)
def plot(self):
parser = argparse.ArgumentParser(
description='Generates and shows plot based on specified metric file')
parser.add_argument("metric_file")
parser.add_argument("-store_file")
parser.add_argument("--dont_show", "-d", default=False)
parser.add_argument("-steps_per_epoch", default=-1)
args = parser.parse_args(sys.argv[2:])
plot_train_data(args.metric_file, args.store_file, not args.dont_show, steps_in_epoch=int(args.steps_per_epoch))
def msd_generate_data_file(self):
parser = argparse.ArgumentParser(
description='Generates a datafile for training on MSD dataset')
parser.add_argument("datafile_save_path")
parser.add_argument("msd_directory")
parser.add_argument("target_platform")
args = parser.parse_args(sys.argv[2:])
generate_training_data(args.datafile_save_path, args.msd_directory, args.target_platform)
def format_petct_dataset(self):
parser = argparse.ArgumentParser(
description='Converts the the LUNGPTCT dataset to nifti files and generates segboxes for each scan')
parser.add_argument("annotation_folder")
parser.add_argument("dataset_folder")
parser.add_argument("label_folder")
parser.add_argument("input_folder")
args = parser.parse_args(sys.argv[2:])
convert_nsclc_petct(args.annotation_folder, args.dataset_folder, args.label_folder, args.input_folder)
if __name__ == '__main__':
Parser()