コード例 #1
0
def run_training_next_function(cmd_args: ArgNamespace):
    from autopandas_v2.ml.networks.ggnn.models.sparse.base import SparseGGNN
    from autopandas_v2.ml.networks.ggnn.utils import ParamsNamespace

    train_path = cmd_args.train
    valid_path = cmd_args.valid
    model_path = cmd_args.modeldir

    if not os.path.exists(model_path):
        os.system('mkdir -p ' + model_path)

    ggnn_args = ArgNamespace.from_namespace(cmd_args)
    ggnn_args.train = train_path
    ggnn_args.valid = valid_path
    ggnn_args.outdir = model_path
    ggnn_args.mode = 'train'

    params = ParamsNamespace()

    if cmd_args.config is not None:
        with open(cmd_args.config, 'r') as f:
            params.update(json.load(f))

    if cmd_args.config_str is not None:
        params.update(json.loads(cmd_args.config_str))

    params.args = ParamsNamespace()
    params.args.update(ggnn_args)
    params.use_directed_edges = True

    model = SparseGGNN.from_params(params)
    model.run()
コード例 #2
0
    def setup_inference(self, model_dir: str):
        #  Load the params
        with open('{}/params.pkl'.format(model_dir), 'rb') as f:
            self.params = pickle.load(f)

        self.params.args = ParamsNamespace()

        self.model_dir: str = model_dir
        model_path = '{}/model_best.pickle'.format(self.model_dir)

        #  Setup the model
        self.build_graph_model(mode='testing', restore_file=model_path)
コード例 #3
0
 def default_params(cls):
     return {
         'args': ParamsNamespace(),
         'num_epochs': 3000,
         'patience': 25,
         'lr': 0.001,
         'clamp_gradient_norm': 1.0,
         'out_layer_dropout_keep_prob': 1.0,
         'hidden_size_node': 100,
         'hidden_size_final_mlp': 100,
         'num_timesteps': 4,
         'tie_fwd_bkwd': True,
         'use_directed_edges': True,
         'random_seed': 0,
     }
コード例 #4
0
def run_analysis_helper(fname: str, identifier: str, cmd_args: ArgNamespace):
    from autopandas_v2.generators.ml.networks.ggnn.ops.choice import ModelChoice
    from autopandas_v2.generators.ml.networks.ggnn.ops.chain import ModelChain
    from autopandas_v2.generators.ml.networks.ggnn.ops.select import ModelSelect
    from autopandas_v2.generators.ml.networks.ggnn.ops.subsets import ModelSubsets
    from autopandas_v2.generators.ml.networks.ggnn.ops.orderedsubsets import ModelOrderedSubsets
    from autopandas_v2.ml.networks.ggnn.utils import ParamsNamespace

    test_path = '{}/{}/{}.pkl'.format(cmd_args.test, fname, identifier)
    model_path = '{}/{}/{}'.format(cmd_args.modeldir, fname, identifier)
    if not os.path.exists(test_path):
        raise Exception("Test data path {} does not exist".format(test_path))

    os.system('mkdir -p ' + model_path)
    ggnn_args = ArgNamespace.from_namespace(cmd_args)
    ggnn_args.test = test_path
    ggnn_args.outdir = model_path
    ggnn_args.mode = 'train'
    ggnn_args.model = model_path

    params = ParamsNamespace()

    if cmd_args.config is not None:
        with open(cmd_args.config, 'r') as f:
            params.update(json.load(f))

    params.args = ParamsNamespace()
    params.args.update(ggnn_args)
    params.use_directed_edges = True

    if identifier.startswith("choice"):
        model = ModelChoice.from_params(params)

    elif identifier.startswith("chain"):
        model = ModelChain.from_params(params)

    elif identifier.startswith("select"):
        model = ModelSelect.from_params(params)

    elif identifier.startswith("subsets"):
        model = ModelSubsets.from_params(params)

    elif identifier.startswith("orderedsubsets"):
        model = ModelOrderedSubsets.from_params(params)

    else:
        raise NotImplementedError("Model not defined for operator {}".format(
            identifier.split('_')[0]))

    return model.run_analysis(test_path)
コード例 #5
0
def run(cmd):
    cmd_args = parse_args(cmd)

    if cmd_args.subcommand == "sparse":
        params = ParamsNamespace()
        if cmd_args.config is not None:
            with open(cmd_args.config, 'r') as f:
                params.update(json.load(f))

        params.args = ParamsNamespace()
        params.args.update(cmd_args)

        if cmd_args.rnn:
            model = GGNNSeqStaticRNN.from_params(params)
        else:
            model = SparseGGNN.from_params(params)

        model.run()
コード例 #6
0
def run_training_generators_helper(fname: str, identifier: str,
                                   cmd_args: ArgNamespace):
    from autopandas_v2.generators.ml.networks.ggnn.ops.choice import ModelChoice
    from autopandas_v2.generators.ml.networks.ggnn.ops.chain import ModelChain
    from autopandas_v2.generators.ml.networks.ggnn.ops.select import ModelSelect
    from autopandas_v2.generators.ml.networks.ggnn.ops.subsets import ModelSubsets
    from autopandas_v2.generators.ml.networks.ggnn.ops.orderedsubsets import ModelOrderedSubsets
    from autopandas_v2.ml.networks.ggnn.utils import ParamsNamespace

    train_path = '{}/{}/{}.pkl'.format(cmd_args.train, fname, identifier)
    valid_path = '{}/{}/{}.pkl'.format(cmd_args.valid, fname, identifier)
    model_path = '{}/{}/{}'.format(cmd_args.modeldir, fname, identifier)
    if not os.path.exists(train_path):
        raise Exception(
            "Training data path {} does not exist".format(train_path))

    if not os.path.exists(valid_path):
        raise Exception(
            "Validation data path {} does not exist".format(valid_path))

    if cmd_args.ignore_if_exists and os.path.exists(model_path +
                                                    '/model_best.pickle'):
        logger.info(
            "Skipping training for {}:{} as model already exists".format(
                fname, identifier))
        return

    os.system('mkdir -p ' + model_path)
    ggnn_args = ArgNamespace.from_namespace(cmd_args)
    ggnn_args.train = train_path
    ggnn_args.valid = valid_path
    ggnn_args.outdir = model_path
    ggnn_args.mode = 'train'

    if cmd_args.restore_if_exists and os.path.exists(model_path +
                                                     '/model_best.pickle'):
        ggnn_args.restore = model_path + '/model_best.pickle'

    params = ParamsNamespace()

    if cmd_args.config is not None:
        with open(cmd_args.config, 'r') as f:
            params.update(json.load(f))

    if cmd_args.config_str is not None:
        params.update(json.loads(cmd_args.config_str))

    params.args = ParamsNamespace()
    params.args.update(ggnn_args)
    params.use_directed_edges = True

    if identifier.startswith("choice"):
        model = ModelChoice.from_params(params)

    elif identifier.startswith("chain"):
        model = ModelChain.from_params(params)

    elif identifier.startswith("select"):
        model = ModelSelect.from_params(params)

    elif identifier.startswith("subsets"):
        model = ModelSubsets.from_params(params)

    elif identifier.startswith("orderedsubsets"):
        model = ModelOrderedSubsets.from_params(params)

    else:
        raise NotImplementedError("Model not defined for operator {}".format(
            identifier.split('_')[0]))

    model.run()
コード例 #7
0
ファイル: base.py プロジェクト: rbavishi/autopandas
 def __init__(self):
     self.params: ParamsNamespace = ParamsNamespace()
     self.params.update(self.default_params())