Exemplo n.º 1
0
# by Fabien C. Y. Benureau and Pierre-Yves Oudeyer
# Licensed under the Open Science License (see http://fabien.benureau.com/openscience.html)

import experiments

import dotdot
import exp_cfgs
from exp_factory import make_exp


def rmb_reuse(path="frontiers2016/objects/reuse", rep=25):
    nor_diff = {"exp.path": path, "exp.prefix": ("dov_reuse",), "exp.repetitions": rep, "meta.run_tests": True}

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp(
        [("dov_cube45_0.s", "dov_ball45_0.s"), ("dov_ball45_0.s", "dov_cube45_0.s")],
        cfg=exp_cfgs.dov_cfg,
        nor_diff=nor_diff,
        src_diff=src_diff,
        tgt_diff=tgt_diff,
        src_ex_names=("random.motor",),
        nor_ex_names=("rmb200.rgb.p0.05",),
        tgt_ex_names=("reuse_200_0.5_20_p0.05",),
    )


if __name__ == "__main__":
    experiments.run_exps(rmb_reuse())
Exemplo n.º 2
0
# Licensed under the Open Science License (see http://fabien.benureau.com/openscience.html)

import experiments

import dotdot
import exp_cfgs
from exp_factory import make_exp

def quick_test():
    nor_diff = {'exp.path'         : 'test/test',
                'exp.prefix'       : ('dov_test',),
                'exp.repetitions'  : 3,
                'exploration.steps': 150,
                'meta.run_tests'   : True,
                'provenance.check_dirty'      : False,
                'provenance.check_continuity' : False}

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('dov_cube45_0.k', 'dov_ball45_0.k')],
                     cfg=exp_cfgs.dov_cfg._deepcopy(),
                     nor_diff=nor_diff, src_diff=src_diff, tgt_diff=tgt_diff,
                     src_ex_names=('rmb100.rgb.p0.05',),
                     nor_ex_names=('rmb100.rgb.p0.05',),
                     tgt_ex_names=('reuse_100_0.5_20_p0.05',))


if __name__ == '__main__':
    experiments.run_exps(quick_test())
Exemplo n.º 3
0
# Code for generating figures of the article:
# "Behavioral Diversity Generation in Autonomous Exploration Through Reuse of Past Experience"
# by Fabien C. Y. Benureau and Pierre-Yves Oudeyer
# Licensed under the Open Science License (see http://fabien.benureau.com/openscience.html)

import experiments

from fig19a_cluster import rgap


def rgap_crude():
    return rgap(src_env='dov_ball45_0.kb')


if __name__ == '__main__':
    experiments.run_exps(rgap_crude())
Exemplo n.º 4
0
import exp_cfgs
from exp_factory import make_exp


def quick_test():
    nor_diff = {
        'exp.path': 'test/test',
        'exp.prefix': ('dov_test', ),
        'exp.repetitions': 3,
        'exploration.steps': 150,
        'meta.run_tests': True,
        'provenance.check_dirty': False,
        'provenance.check_continuity': False
    }

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('dov_cube45_0.k', 'dov_ball45_0.k')],
                    cfg=exp_cfgs.dov_cfg._deepcopy(),
                    nor_diff=nor_diff,
                    src_diff=src_diff,
                    tgt_diff=tgt_diff,
                    src_ex_names=('rmb100.rgb.p0.05', ),
                    nor_ex_names=('rmb100.rgb.p0.05', ),
                    tgt_ex_names=('reuse_100_0.5_20_p0.05', ))


if __name__ == '__main__':
    experiments.run_exps(quick_test())
Exemplo n.º 5
0
import dotdot
import exp_cfgs
from exp_factory import make_exp


def rmb_reuse(path='frontiers2016/objects/reuse', rep=25):
    nor_diff = {
        'exp.path': path,
        'exp.prefix': ('dov_reuse', ),
        'exp.repetitions': rep,
        'meta.run_tests': True
    }

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('dov_cube45_0.s', 'dov_ball45_0.s'),
                     ('dov_ball45_0.s', 'dov_cube45_0.s')],
                    cfg=exp_cfgs.dov_cfg,
                    nor_diff=nor_diff,
                    src_diff=src_diff,
                    tgt_diff=tgt_diff,
                    src_ex_names=('random.motor', ),
                    nor_ex_names=('rmb200.rgb.p0.05', ),
                    tgt_ex_names=('reuse_200_0.5_20_p0.05', ))


if __name__ == '__main__':
    experiments.run_exps(rmb_reuse())
Exemplo n.º 6
0
    r_ex          = explorers.MetaExplorer.defcfg._deepcopy()
    r_ex.eras     = (mb, None)
    r_ex.weights  = ((1-p_reuse, 0.0, p_reuse), (0.0, 1.0, 0.0))

    r_ex.ex_0                   = explorers.RandomMotorExplorer.defcfg._deepcopy()

    r_ex.ex_1                   = explorers.RandomGoalExplorer.defcfg._deepcopy()
    r_ex.ex_1.learner           = learners.MutateNNLearner.defcfg._deepcopy()
    r_ex.ex_1.learner.operator.name = 'uniform'
    r_ex.ex_1.learner.operator.d    = 0.05

    r_ex.ex_2                   = explorers.ReuseExplorer.defcfg._deepcopy()
    r_ex.ex_2.reuse.res         = res
    r_ex.ex_2.reuse.algorithm   = algorithm

    alg_str = '' if algorithm == 'sensor_uniform' else '.' + algorithm
    return 'reuse{}_{}_{}_{}_{}'.format(alg_str, mb, p_reuse, res, lrn_name), r_ex


tgt_cfg = cfg._deepcopy()
tgt_cfg.exp.path = 'unit_tests/'

tgt_cfg.exploration.ex_name, tgt_cfg.exploration.explorer = reuse_ex(50, 0.5)
tgt_cfg.exploration.deps = (experiments.expkey(cfg),)
tgt_cfg.exp.prefix   = ('prefix2',) #, 'random.motor', 'kin7_150')


if __name__ == '__main__':
    experiments.run_exps([cfg, tgt_cfg])
Exemplo n.º 7
0
# Code for generating figures of the article:
# "Behavioral Diversity Generation in Autonomous Exploration Through Reuse of Past Experience"
# by Fabien C. Y. Benureau and Pierre-Yves Oudeyer
# Licensed under the Open Science License (see http://fabien.benureau.com/openscience.html)

import experiments

from fig19a_cluster import rgap


def rgap_h():
    return rgap(src_env='dov_ball45_0.k',
                tgt_env='dov_ball45_0.h',
                path='frontiers2016/objects/rgap_hard',
                rep=4,
                nor_ex_name='rmb300.rgb.mesh25.p0.07.h',
                tgt_ex_name='reuse_300_0.5_25_rgb.mesh25.p0.07.h')


if __name__ == '__main__':
    experiments.run_exps(rgap_h())

# 'rmb300.rgb.mesh25.p0.07.h'
# 'reuse_300_0.5_25_rgb.mesh25.p0.07.h'
Exemplo n.º 8
0
import dotdot
import exp_cfgs
from exp_factory import make_exp


def ball_cube(path="frontiers2016/objects/reuse", rep=25):
    nor_diff = {"exp.path": path, "exp.prefix": ("dov_reuse",), "exp.repetitions": rep, "meta.run_tests": True}

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp(
        [
            ("dov_ball45_0.s", "dov_ball45_0.s"),
            ("dov_cube45_0.s", "dov_ball45_0.s"),
            ("dov_ball45_0.s", "dov_cube45_0.s"),
            ("dov_cube45_0.s", "dov_cube45_0.s"),
        ],
        cfg=exp_cfgs.dov_cfg._deepcopy(),
        nor_diff=nor_diff,
        src_diff=src_diff,
        tgt_diff=tgt_diff,
        src_ex_names=("rmb200.rgb.p0.05",),
        nor_ex_names=("rmb200.rgb.p0.05",),
        tgt_ex_names=("reuse_200_0.5_20_p0.05",),
    )


if __name__ == "__main__":
    experiments.run_exps(ball_cube())
Exemplo n.º 9
0
# by Fabien C. Y. Benureau and Pierre-Yves Oudeyer
# Licensed under the Open Science License (see http://fabien.benureau.com/openscience.html)

import experiments

import dotdot
import exp_cfgs
from exp_factory import make_exp


def rmb_reuse_short(path='frontiers2016/objects/reuse', rep=25):
    nor_diff = {'exp.path'         : path,
                'exp.prefix'       : ('dov_reuse',),
                'exp.repetitions'  : rep,
                'meta.run_tests'   : True}

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('dov_cube45_0.s', 'dov_ball45_0.s'),
                     ('dov_ball45_0.s', 'dov_cube45_0.s')],
                     cfg=exp_cfgs.dov_cfg,
                     nor_diff=nor_diff, src_diff=src_diff, tgt_diff=tgt_diff,
                     src_ex_names=('random.motor',),
                     nor_ex_names=('rmb200.rgb.p0.05',),
                     tgt_ex_names=('reuse_50_0.5_20_p0.05',))


if __name__ == '__main__':
    experiments.run_exps(rmb_reuse_short())
Exemplo n.º 10
0
# by Fabien C. Y. Benureau and Pierre-Yves Oudeyer
# Licensed under the Open Science License (see http://fabien.benureau.com/openscience.html)

import experiments

import dotdot
import exp_cfgs
from exp_factory import make_exp


def planar(path='frontiers2016/planar_arms', rep=100):
    cfg = exp_cfgs.planar_cfg._deepcopy()
    nor_diff = {'exp.path'         : path,
                'exp.prefix'       : ('kin_reuse',),
                'exp.repetitions'  : rep,
                'meta.run_tests'   : True}

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('kin20_150', 'kin20_150_p_0.9')],
                    cfg=exp_cfgs.planar_cfg._deepcopy(),
                    nor_diff=nor_diff, src_diff=src_diff, tgt_diff=tgt_diff,
                    src_ex_names=('rmb50.rgb.p0.05',),
                    nor_ex_names=('rmb50.rgb.p0.05',),
                    tgt_ex_names=('reuse_50_1.0_20_p0.05',))


if __name__ == '__main__':
    experiments.run_exps(planar())
Exemplo n.º 11
0
# "Behavioral Diversity Generation in Autonomous Exploration Through Reuse of Past Experience"
# by Fabien C. Y. Benureau and Pierre-Yves Oudeyer
# Licensed under the Open Science License (see http://fabien.benureau.com/openscience.html)

import experiments

import dotdot
import exp_cfgs
from exp_factory import make_exp


def pool(path='frontiers2016/objects/pool', rep=100):
    nor_diff = {'exp.path'         : path,
                'exp.prefix'       : ('dov_pool',),
                'exp.repetitions'  : rep,
                'meta.run_tests'   : True}

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('dov_ball45_0.s', 'dov_pool.s')],
                     cfg=exp_cfgs.dov_cfg,
                     nor_diff=nor_diff, src_diff=src_diff, tgt_diff=tgt_diff,
                     src_ex_names=('rmb300.rgb.p0.05',),
                     nor_ex_names=('rmb300.rgb.p0.025',),
                     tgt_ex_names=('reuse_300_0.5_40_p0.025',))


if __name__ == '__main__':
    experiments.run_exps(pool())
Exemplo n.º 12
0
from exp_factory import make_exp


def planar_test():
    cfg = exp_cfgs.planar_cfg._deepcopy()
    nor_diff = {
        'exp.path': 'test/planar_test',
        'exp.prefix': ('test', ),
        'exp.repetitions': 1,
        'exploration.steps': 10000,
        'provenance.check_dirty': False,
        'provenance.check_continuity': True,
        'meta.run_tests': True
    }

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('kin20_150', 'kin20_150_p_0.9')],
                    cfg=exp_cfgs.planar_cfg._deepcopy(),
                    nor_diff=nor_diff,
                    src_diff=src_diff,
                    tgt_diff=tgt_diff,
                    src_ex_names=('rmb50.rgb.p0.05', ),
                    nor_ex_names=('rmb50.rgb.p0.05', ),
                    tgt_ex_names=('reuse_50_1.0_20_p0.05', ))


if __name__ == '__main__':
    experiments.run_exps(planar_test())
Exemplo n.º 13
0
# by Fabien C. Y. Benureau and Pierre-Yves Oudeyer
# Licensed under the Open Science License (see http://fabien.benureau.com/openscience.html)

import experiments

import dotdot
import exp_cfgs
from exp_factory import make_exp


def dissimilar(path='frontiers2016/objects/reuse', rep=100):
    nor_diff = {'exp.path'         : path,
                'exp.prefix'       : ('dov_reuse',),
                'exp.repetitions'  : rep,
                'meta.run_tests'   : True}

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('dov_ball45_0.s', 'dov_ball45_4.s'),
                     ('dov_ball45_4.s', 'dov_ball45_0.s')],
                     cfg=exp_cfgs.dov_cfg,
                     nor_diff=nor_diff, src_diff=src_diff, tgt_diff=tgt_diff,
                     src_ex_names=('rmb200.rgb.p0.05',),
                     nor_ex_names=('rmb200.rgb.p0.05',),
                     tgt_ex_names=('reuse_200_0.5_20_p0.05',))


if __name__ == '__main__':
    experiments.run_exps(dissimilar())
Exemplo n.º 14
0
import experiments

import dotdot
import exp_cfgs
from exp_factory import make_exp


def planar_test():
    cfg = exp_cfgs.planar_cfg._deepcopy()
    nor_diff = {'exp.path'         : 'test/planar_test',
                'exp.prefix'       : ('test',),
                'exp.repetitions'  : 1,
                'exploration.steps': 10000,
                'provenance.check_dirty'     : False,
                'provenance.check_continuity': True,
                'meta.run_tests'             : True}

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('kin20_150', 'kin20_150_p_0.9')],
                    cfg=exp_cfgs.planar_cfg._deepcopy(),
                    nor_diff=nor_diff, src_diff=src_diff, tgt_diff=tgt_diff,
                    src_ex_names=('rmb50.rgb.p0.05',),
                    nor_ex_names=('rmb50.rgb.p0.05',),
                    tgt_ex_names=('reuse_50_1.0_20_p0.05',))

if __name__ == '__main__':
    experiments.run_exps(planar_test())
Exemplo n.º 15
0
    }

    src_diff = nor_diff
    tgt_diff = nor_diff

    expcfgs = make_exp([('dov_ball45_0_a20.h', 'dov_ball45_0_a20.h'),
                        ('dov_cube45_0_a20.h', 'dov_ball45_0_a20.h'),
                        ('dov_ball45_0_a20.h', 'dov_cube45_0_a20.h'),
                        ('dov_cube45_0_a20.h', 'dov_cube45_0_a20.h')],
                       cfg=exp_cfgs.dov_cfg,
                       nor_diff=nor_diff,
                       src_diff=src_diff,
                       tgt_diff=tgt_diff,
                       src_ex_names=('rmb300.rgb.lwlr.h', ),
                       nor_ex_names=('rmb300.rgb.lwlr.h', ),
                       tgt_ex_names=('reuse_300_0.5_40_lwlr.h', ))

    # one repetion of the ball -> cube experiment got its data corrupted.
    for nor_cfg, src_cfg, tgt_cfg in expcfgs:
        src_env_name = tgt_cfg.exp.prefix[2]
        tgt_env_name = tgt_cfg.exploration.env_name
        if (src_env_name, tgt_env_name) == ('dov_ball45_0_a20.h',
                                            'dov_cube45_0_a20.h'):
            tgt_cfg.exp.repetitions = 3

    return expcfgs


if __name__ == '__main__':
    experiments.run_exps(ball_cube_hard())
Exemplo n.º 16
0
import dotdot
import exp_cfgs
from exp_factory import make_exp


def planar(path='frontiers2016/planar_arms', rep=100):
    cfg = exp_cfgs.planar_cfg._deepcopy()
    nor_diff = {
        'exp.path': path,
        'exp.prefix': ('kin_reuse', ),
        'exp.repetitions': rep,
        'meta.run_tests': True
    }

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('kin20_150', 'kin20_150_p_0.9')],
                    cfg=exp_cfgs.planar_cfg._deepcopy(),
                    nor_diff=nor_diff,
                    src_diff=src_diff,
                    tgt_diff=tgt_diff,
                    src_ex_names=('rmb50.rgb.p0.05', ),
                    nor_ex_names=('rmb50.rgb.p0.05', ),
                    tgt_ex_names=('reuse_50_1.0_20_p0.05', ))


if __name__ == '__main__':
    experiments.run_exps(planar())
Exemplo n.º 17
0
# Code for generating figures of the article:
# "Behavioral Diversity Generation in Autonomous Exploration Through Reuse of Past Experience"
# by Fabien C. Y. Benureau and Pierre-Yves Oudeyer
# Licensed under the Open Science License (see http://fabien.benureau.com/openscience.html)

import experiments

from fig19a_cluster import rgap

def rgap_crude():
    return rgap(src_env='dov_ball45_0.kb')

if __name__ == '__main__':
    experiments.run_exps(rgap_crude())
Exemplo n.º 18
0
    nor_diff = {'exp.path'         : path,
                'exp.prefix'       : ('dov_hard',),
                'exp.repetitions'  : rep,
                'meta.run_tests'   : True}

    src_diff = nor_diff
    tgt_diff = nor_diff

    expcfgs =  make_exp([('dov_ball45_0_a20.h', 'dov_ball45_0_a20.h'),
                         ('dov_cube45_0_a20.h', 'dov_ball45_0_a20.h'),
                         ('dov_ball45_0_a20.h', 'dov_cube45_0_a20.h'),
                         ('dov_cube45_0_a20.h', 'dov_cube45_0_a20.h')],
                        cfg=exp_cfgs.dov_cfg,
                        nor_diff=nor_diff, src_diff=src_diff, tgt_diff=tgt_diff,
                        src_ex_names=('rmb300.rgb.lwlr.h',),
                        nor_ex_names=('rmb300.rgb.lwlr.h',),
                        tgt_ex_names=('reuse_300_0.5_40_lwlr.h',))

    # one repetion of the ball -> cube experiment got its data corrupted.
    for nor_cfg, src_cfg, tgt_cfg in expcfgs:
        src_env_name = tgt_cfg.exp.prefix[2]
        tgt_env_name = tgt_cfg.exploration.env_name
        if (src_env_name, tgt_env_name) == ('dov_ball45_0_a20.h', 'dov_cube45_0_a20.h'):
            tgt_cfg.exp.repetitions = 3

    return expcfgs


if __name__ == '__main__':
    experiments.run_exps(ball_cube_hard())
Exemplo n.º 19
0
import dotdot
import exp_cfgs
from exp_factory import make_exp


def rmb_reuse_short(path='frontiers2016/objects/reuse', rep=25):
    nor_diff = {
        'exp.path': path,
        'exp.prefix': ('dov_reuse', ),
        'exp.repetitions': rep,
        'meta.run_tests': True
    }

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('dov_cube45_0.s', 'dov_ball45_0.s'),
                     ('dov_ball45_0.s', 'dov_cube45_0.s')],
                    cfg=exp_cfgs.dov_cfg,
                    nor_diff=nor_diff,
                    src_diff=src_diff,
                    tgt_diff=tgt_diff,
                    src_ex_names=('random.motor', ),
                    nor_ex_names=('rmb200.rgb.p0.05', ),
                    tgt_ex_names=('reuse_50_0.5_20_p0.05', ))


if __name__ == '__main__':
    experiments.run_exps(rmb_reuse_short())
Exemplo n.º 20
0
import exp_cfgs
from exp_factory import make_exp


def ball_cube(path='frontiers2016/objects/reuse', rep=25):
    nor_diff = {
        'exp.path': path,
        'exp.prefix': ('dov_reuse', ),
        'exp.repetitions': rep,
        'meta.run_tests': True
    }

    src_diff = nor_diff
    tgt_diff = nor_diff

    return make_exp([('dov_ball45_0.s', 'dov_ball45_0.s'),
                     ('dov_cube45_0.s', 'dov_ball45_0.s'),
                     ('dov_ball45_0.s', 'dov_cube45_0.s'),
                     ('dov_cube45_0.s', 'dov_cube45_0.s')],
                    cfg=exp_cfgs.dov_cfg._deepcopy(),
                    nor_diff=nor_diff,
                    src_diff=src_diff,
                    tgt_diff=tgt_diff,
                    src_ex_names=('rmb200.rgb.p0.05', ),
                    nor_ex_names=('rmb200.rgb.p0.05', ),
                    tgt_ex_names=('reuse_200_0.5_20_p0.05', ))


if __name__ == '__main__':
    experiments.run_exps(ball_cube())
Exemplo n.º 21
0
import experiments

import dotdot
import exp_cfgs
from exp_factory import make_exp


def rgap(src_env='dov_ball45_0.k', tgt_env='dov_ball45_0.s',
         nor_ex_name='rmb200.rgb.p0.05', tgt_ex_name='reuse_200_0.5_20_p0.05',
         path='frontiers2016/objects/rgap', rep=25):
    nor_diff = {'exp.path'         : path,
                'exp.prefix'       : ('dov_rgap',),
                'exp.repetitions'  : rep,
                'meta.run_tests'   : True}

    src_diff = dict(nor_diff)
    src_diff['meta.run_tests'] = False
    tgt_diff = nor_diff

    expcfgs =  make_exp([(src_env, tgt_env)],
                        cfg=exp_cfgs.dov_cfg,
                        nor_diff=nor_diff, src_diff=src_diff, tgt_diff=tgt_diff,
                        src_ex_names=(nor_ex_name,),
                        nor_ex_names=(nor_ex_name,),
                        tgt_ex_names=(tgt_ex_name,))

    return expcfgs

if __name__ == '__main__':
    experiments.run_exps(rgap())
Exemplo n.º 22
0
    r_ex = explorers.MetaExplorer.defcfg._deepcopy()
    r_ex.eras = (mb, None)
    r_ex.weights = ((1 - p_reuse, 0.0, p_reuse), (0.0, 1.0, 0.0))

    r_ex.ex_0 = explorers.RandomMotorExplorer.defcfg._deepcopy()

    r_ex.ex_1 = explorers.RandomGoalExplorer.defcfg._deepcopy()
    r_ex.ex_1.learner = learners.MutateNNLearner.defcfg._deepcopy()
    r_ex.ex_1.learner.operator.name = 'uniform'
    r_ex.ex_1.learner.operator.d = 0.05

    r_ex.ex_2 = explorers.ReuseExplorer.defcfg._deepcopy()
    r_ex.ex_2.reuse.res = res
    r_ex.ex_2.reuse.algorithm = algorithm

    alg_str = '' if algorithm == 'sensor_uniform' else '.' + algorithm
    return 'reuse{}_{}_{}_{}_{}'.format(alg_str, mb, p_reuse, res,
                                        lrn_name), r_ex


tgt_cfg = cfg._deepcopy()
tgt_cfg.exp.path = 'unit_tests/'

tgt_cfg.exploration.ex_name, tgt_cfg.exploration.explorer = reuse_ex(50, 0.5)
tgt_cfg.exploration.deps = (experiments.expkey(cfg), )
tgt_cfg.exp.prefix = ('prefix2', )  #, 'random.motor', 'kin7_150')

if __name__ == '__main__':
    experiments.run_exps([cfg, tgt_cfg])