def test_utils_graphviz_terminals(): import os from EvoDAG.command_line import params, train, utils fname = training_set() sys.argv = [ 'EvoDAG', '-C', '--parameters', 'cache.evodag', '-p3', '-e1', '-r2', fname ] params() sys.argv = [ 'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--model', 'model.evodag', '--test', fname, fname ] train() sys.argv = [ 'EvoDAG', '--output', 'output.evodag', '--decision-function', '-u2', '--model', 'model.evodag', fname ] sys.argv = [ 'EvoDAG', '-G', '-oevodag_gv', '--remove-terminals', 'model.evodag' ] utils() os.unlink(fname) os.unlink('cache.evodag') os.unlink('model.evodag') for i in range(2): os.unlink('evodag_gv/evodag-%s' % i) os.rmdir('evodag_gv') default_nargs()
def test_create_ensemble(): import os from EvoDAG.command_line import params, train, utils from EvoDAG.model import Ensemble import pickle import gzip fname = mo_training_set() sys.argv = [ 'EvoDAG', '--output-dim=3', '-R', '--parameters', 'cache.evodag', '-p3', '-e2', '-r2', fname ] params() sys.argv = [ 'EvoDAG', '--parameters', 'cache.evodag', '-n1', '--output-dim=3', '--seed=1', '--model', 'model.evodag.1', '--test', fname, fname ] train() sys.argv = [ 'EvoDAG', '--parameters', 'cache.evodag', '-n1', '--output-dim=3', '--seed=2', '--model', 'model.evodag.2', '--test', fname, fname ] train() os.unlink('cache.evodag') sys.argv = [ 'EvoDAG', '--create-ensemble', '-omodel.evodag', '-n3', 'model.evodag.* model.evodag.1' ] utils() os.unlink('model.evodag.1') os.unlink('model.evodag.2') with gzip.open('model.evodag', 'r') as fpt: ens = pickle.load(fpt) assert isinstance(ens, Ensemble) os.unlink('model.evodag') default_nargs()
def test_number_multiple_outputs_regression(): import os from EvoDAG.command_line import params, train, predict fname = mo_training_set() sys.argv = [ 'EvoDAG', '--output-dim=3', '-R', '--parameters', 'cache.evodag', '-p3', '-e1', '-r2', fname ] params() sys.argv = [ 'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--output-dim=3', '--model', 'model.evodag', '--test', fname, fname ] train() sys.argv = [ 'EvoDAG', '--output', 'output.evodag', '--decision-function', '--model', 'model.evodag', fname ] predict() os.unlink(fname) os.unlink('cache.evodag') os.unlink('model.evodag') l = open('output.evodag').readline() os.unlink('output.evodag') default_nargs() assert len(l.split(',')) == 3
def test_raw_outputs_classification(): import os from EvoDAG.command_line import params, train, predict fname = mo_training_set() sys.argv = [ 'EvoDAG', '--output-dim=3', '-C', '--parameters', 'cache.evodag', '-p3', '-e1', '-r2', fname ] params() sys.argv = [ 'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--output-dim=3', '--model', 'model.evodag', '--test', fname, fname ] train() sys.argv = [ 'EvoDAG', '--output', 'output.evodag', '--raw-outputs', '--model', 'model.evodag', fname ] predict() os.unlink(fname) os.unlink('cache.evodag') os.unlink('model.evodag') l = open('output.evodag').readline() os.unlink('output.evodag') default_nargs() assert len(l.split(',')) == 6
def test_utils_graphviz(): import os from EvoDAG.command_line import params, train, utils fname = training_set() sys.argv = ['EvoDAG', '-C', '--parameters', 'cache.evodag', '-p3', '-e1', '-r2', fname] params() sys.argv = ['EvoDAG', '--parameters', 'cache.evodag', '-n2', '--model', 'model.evodag', '--test', fname, fname] train() sys.argv = ['EvoDAG', '--output', 'output.evodag', '--decision-function', '-u2', '--model', 'model.evodag', fname] sys.argv = ['EvoDAG', '-G', '-oevodag_gv', 'model.evodag'] utils() os.unlink(fname) os.unlink('cache.evodag') os.unlink('model.evodag') for i in range(2): for j in range(3): os.unlink('evodag_gv/evodag-%s-%s.gv' % (i, j)) os.rmdir('evodag_gv') default_nargs()
def test_get_best_params_files(): import numpy as np import gzip import pickle import os from EvoDAG.command_line import params, train, utils import shutil from glob import glob if os.path.isdir('cache'): shutil.rmtree('cache') fname = training_set() sys.argv = [ 'EvoDAG', '-C', '-Pcache', '--only-paramsfiles', '-r', '2', fname ] params() for p in glob(os.path.join('cache', '*_params.json')): basename = p.split('_params.json')[0] for s in range(3): model = basename + '_%s.model' % s sys.argv = [ 'EvoDAG', '-s%s' % s, '-P%s' % p, '-m%s' % model, '-n1', fname ] train() R = [] for p in range(2): l = [] for s in range(3): with gzip.open(os.path.join('cache', '%s_%s.model' % (p, s))) as fpt: m = pickle.load(fpt) l.append(m.fitness_vs * -1) R.append((p, l)) print(R) m = np.array([np.median(x[1]) for x in R]) m = m - np.min(m) param = ['%s_params.json' % k for k, x in enumerate(m) if x == 0] sys.argv = ['EvoDAG', '--best-params-file', 'cache'] c = utils(output=True) print(c.best_params, param) assert c.best_params in param sys.argv = ['EvoDAG', '-u2', '--best-params-file', 'cache'] c = utils(output=True) print(c.best_params, param, '*') assert c.best_params in param if os.path.isdir('cache'): shutil.rmtree('cache') default_nargs()
def test_get_best_params_files(): import numpy as np import gzip import pickle import os from EvoDAG.command_line import params, train, utils import shutil from glob import glob if os.path.isdir('cache'): shutil.rmtree('cache') fname = training_set() sys.argv = [ 'EvoDAG', '-C', '-Pcache', '--only-paramsfiles', '-r', '2', fname ] params() for p in glob('cache/*_params.json'): basename = p.split('_params.json')[0] for s in range(3): model = basename + '_%s.model' % s sys.argv = [ 'EvoDAG', '-s%s' % s, '-P%s' % p, '-m%s' % model, '-n1', fname ] train() R = [] for p in range(2): l = [] for s in range(3): with gzip.open('cache/%s_%s.model' % (p, s)) as fpt: m = pickle.load(fpt) l.append(m.fitness_vs * -1) R.append((p, l)) m = min(R, key=lambda x: np.median(x[1])) param = '%s_params.json' % m[0] sys.argv = ['EvoDAG', '--best-params-file', 'cache'] c = utils(output=True) assert c.best_params == param sys.argv = ['EvoDAG', '-u2', '--best-params-file', 'cache'] c = utils(output=True) assert c.best_params == param if os.path.isdir('cache'): shutil.rmtree('cache') default_nargs()
def test_model_used_inputs_number(): import os from EvoDAG.command_line import params, train, utils fname = mo_training_set() sys.argv = [ 'EvoDAG', '--output-dim=3', '-R', '--parameters', 'cache.evodag', '-p3', '-e1', '-r2', fname ] params() sys.argv = [ 'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--output-dim=3', '--model', 'model.evodag', '--test', fname, fname ] train() sys.argv = ['EvoDAG', '--used-inputs-number', 'model.evodag'] utils() os.unlink('cache.evodag') os.unlink('model.evodag') default_nargs()
def test_predict(): import os from EvoDAG.command_line import params, train, predict fname = training_set() sys.argv = ['EvoDAG', '-C', '--parameters', 'cache.evodag.gz', '-p3', '-e2', '-r', '2', fname] params() sys.argv = ['EvoDAG', '--parameters', 'cache.evodag.gz', '-n2', '--model', 'model.evodag', '--test', fname, fname] train() sys.argv = ['EvoDAG', '--output', 'output.evodag', '--model', 'model.evodag', fname] predict() os.unlink(fname) os.unlink('cache.evodag.gz') os.unlink('model.evodag') assert os.path.isfile('output.evodag') os.unlink('output.evodag') default_nargs()
def test_decision_function(): import os from EvoDAG.command_line import params, train, predict fname = training_set() sys.argv = ['EvoDAG', '-C', '--parameters', 'cache.evodag', '-p3', '-e1', '-r', '1', fname] params() sys.argv = ['EvoDAG', '--parameters', 'cache.evodag', '-n2', '--model', 'model.evodag', '--test', fname, fname] train() sys.argv = ['EvoDAG', '--output', 'output.evodag', '--decision-function', '--model', 'model.evodag', fname] predict() os.unlink(fname) os.unlink('cache.evodag') os.unlink('model.evodag') os.unlink('output.evodag') default_nargs()
def test_time_limit(): import os from EvoDAG.command_line import params, train import json fname = training_set() sys.argv = [ 'EvoDAG', '-C', '--parameters', 'cache.evodag', '-p3', '-e2', '--time-limit', '10', '-r', '2', fname ] params() sys.argv = [ 'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--model', 'model.evodag', '--test', fname, fname ] train() os.unlink(fname) with open('cache.evodag') as fpt: a = json.loads(fpt.read())[0] assert 'time_limit' in a os.unlink('cache.evodag') assert os.path.isfile('model.evodag') os.unlink('model.evodag') default_nargs()
def test_time_limit(): import os from EvoDAG.command_line import params, train import json fname = training_set() sys.argv = ['EvoDAG', '-C', '--parameters', 'cache.evodag', '-p3', '-e2', '--time-limit', '10', '-r', '2', fname] params() sys.argv = ['EvoDAG', '--parameters', 'cache.evodag', '-n2', '--model', 'model.evodag', '--test', fname, fname] train() os.unlink(fname) with open('cache.evodag') as fpt: a = json.loads(fpt.read())[0] assert 'time_limit' in a os.unlink('cache.evodag') assert os.path.isfile('model.evodag') os.unlink('model.evodag') default_nargs()
def test_predict_cpu(): import os from EvoDAG.command_line import params, train, predict fname = training_set() sys.argv = [ 'EvoDAG', '-C', '--parameters', 'cache.evodag', '-p3', '-e1', '-r2', fname ] params() sys.argv = [ 'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--model', 'model.evodag', '--test', fname, fname ] train() sys.argv = [ 'EvoDAG', '--output', 'output.evodag', '--decision-function', '-u2', '--model', 'model.evodag', fname ] predict() os.unlink(fname) os.unlink('cache.evodag') os.unlink('model.evodag') os.unlink('output.evodag') default_nargs()
def test_predict(): import os from EvoDAG.command_line import params, train, predict fname = training_set() sys.argv = [ 'EvoDAG', '-C', '--parameters', 'cache.evodag.gz', '-p3', '-e2', '-r', '2', fname ] params() sys.argv = [ 'EvoDAG', '--parameters', 'cache.evodag.gz', '-n2', '--model', 'model.evodag', '--test', fname, fname ] train() sys.argv = [ 'EvoDAG', '--output', 'output.evodag', '--model', 'model.evodag', fname ] predict() os.unlink(fname) os.unlink('cache.evodag.gz') os.unlink('model.evodag') assert os.path.isfile('output.evodag') os.unlink('output.evodag') default_nargs()
def test_model_min_size(): import os from EvoDAG.command_line import params, train import gzip import pickle fname = mo_training_set() sys.argv = [ 'EvoDAG', '--output-dim=3', '-R', '--parameters', 'cache.evodag', '-p3', '-e2', '-r2', fname ] params() sys.argv = [ 'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--output-dim=3', '--min-size=6', '--model', 'model.evodag', '--test', fname, fname ] train() os.unlink('cache.evodag') with gzip.open('model.evodag') as fpt: m = pickle.load(fpt) for x in m.models: print(x.size) assert x.size >= 6 os.unlink('model.evodag') default_nargs()
def test_model_seed(): import os from EvoDAG.command_line import params, train fname = mo_training_set() sys.argv = [ 'EvoDAG', '--output-dim=3', '-R', '--parameters', 'cache.evodag', '-p3', '-e2', '-r2', fname ] params() sys.argv = [ 'EvoDAG', '--parameters', 'cache.evodag', '-n2', '--output-dim=3', '--seed=1', '--model', 'model.evodag', '--test', fname, fname ] c = train(output=True) os.unlink('cache.evodag') default_nargs() assert c.data.seed == 1