예제 #1
0
def train():
    options = Options("train_commandline_args.txt")
    with DescriptionLoader.context("genoml"):
        if options.model_file:
            error_on_exists(options.model_file)
        elif options.model_dir:
            error_on_exists(options.model_dir)

        dependencies = check_dependencies()
        tmp_dir = tempfile.mkdtemp()
        options._options['--prune-prefix'] = os.path.join(tmp_dir, "model")
        options._options['--best-model-name'] = "best_model"
        if options.verbose > 0:
            print(tmp_dir)
            print(options._options)

        processes = [DataPruneStep(), ModelTrainStep()]
        if not options.no_tune:
            processes += [ModelTuneStep()]

        for process in processes:
            process.set_environment(options, dependencies)
            process.process()

        model_name = os.path.join(tmp_dir, "model.genoml_model")
        copy_originals(options, tmp_dir)

        if options.model_file:
            shutil.make_archive(model_name, 'bztar', os.path.dirname(options.prefix))
            shutil.move(model_name + ".tar.bz2", options.model_file)
            shutil.rmtree(tmp_dir, True)
        elif options.model_dir:
            shutil.move(tmp_dir, options.model_dir)
예제 #2
0
def inference():
    options = Options("inference_commandline_args.txt")
    with DescriptionLoader.context("genoml"):
        error_on_exists(options.valid_dir)

        dependencies = check_dependencies()

        os.makedirs(options.valid_dir)
        tmp_dir = tempfile.mkdtemp()
        print(tmp_dir)
        if options.model_file:
            shutil.unpack_archive(options.model_file, tmp_dir, format="bztar")
        elif options.model_dir:
            shutil.rmtree(tmp_dir)
            shutil.copytree(options.model_dir, tmp_dir)

        load_originals(options, tmp_dir)
        options._options['--prune-prefix'] = os.path.join(tmp_dir, "model")
        if options.verbose > 0:
            print(tmp_dir)
            print(options._options)

        for process in [ModelValidateStep()]:
            process.set_environment(options, dependencies)
            process.process()

        for file in glob.glob(tmp_dir + "/model_validation*"):
            shutil.copy(file, options.valid_dir)
        shutil.rmtree(tmp_dir, True)
예제 #3
0
파일: main.py 프로젝트: darwinbandoy/genoml
def cli():
    options = Options("commandline_args.txt")
    with DescriptionLoader.context("genoml"):
        dependencies = check_dependencies()

        if options.is_data_prune():
            process = DataPruneStep()
        elif options.is_model_train():
            process = ModelTrainStep()
        elif options.is_model_tune():
            process = ModelTuneStep()
        elif options.is_model_validate():
            process = ModelValidateStep()
        else:
            raise Exception("ISSUE: received unrecognizable option.")

        process.set_environment(options, dependencies)
        process.process()