def main(cls, parse_args):
        args, device = cls.initialize(parse_args())

        ##########################################
        # update args for pre-trained primitives
        # ****************************************
        ckpts = cls.load_checkpoints(args.primitives,
                                     args,
                                     ckpt_type='primitive')
        args = cls.update_dirs_primitive(args,
                                         [c['args'].expname for c in ckpts])
        args.num_primitives = len(ckpts)
        ##########################################
        logger = MultiBaseLogger(args=args)
        task_progression = cls.create_task_progression(logger, args)
        organism = cls.create_organism(device, task_progression, args)
        ##########################################
        # load weights for pre-trained primitives
        # ****************************************
        organism = cls.load_primitive_weights(organism, ckpts, logger.printf)
        ##########################################
        rl_alg = rlalg_switch(args.alg_name)(device=device, args=args)
        experiment = Experiment(learner=CentralizedLearner(
            organism=organism,
            rl_alg=rl_alg,
            logger=logger,
            device=device,
            args=args,
        ),
                                task_progression=task_progression,
                                logger=logger,
                                args=args)
        experiment.main_loop(max_epochs=args.max_epochs)
コード例 #2
0
 def main(cls, parse_args):
     args, device = cls.initialize(parse_args())
     logger = MultiBaseLogger(args=args)
     task_progression = cls.create_task_progression(logger, args)
     organism = cls.create_organism(device, task_progression, args)
     rl_alg = rlalg_switch(args.alg_name)(device=device, args=args)
     experiment_builder = cls.experiment_switch(args.env_name[0])
     experiment = experiment_builder(society=organism,
                                     task_progression=task_progression,
                                     rl_alg=rl_alg,
                                     logger=logger,
                                     device=device,
                                     args=args)
     experiment.main_loop(max_epochs=args.max_epochs)
コード例 #3
0
 def main(cls, parse_args):
     args, device = cls.initialize(parse_args())
     logger = MultiBaseLogger(args=args)
     task_progression = cls.create_task_progression(logger, args)
     organism = cls.create_organism(device, task_progression, args)
     rl_alg = rlalg_switch(args.alg_name)(device=device, args=args)
     experiment = Experiment(learner=CentralizedLearner(
         organism=organism,
         rl_alg=rl_alg,
         logger=logger,
         device=device,
         args=args,
     ),
                             task_progression=task_progression,
                             logger=logger,
                             args=args)
     experiment.main_loop(max_epochs=args.max_epochs)
コード例 #4
0
    def main(cls, parse_args):
        args, device = cls.initialize(parse_args())

        # ########################################
        # update args for pre-trained parent
        # ****************************************
        parent_ckpts = cls.load_checkpoints(args.ckpts,
                                            args,
                                            ckpt_type='parent')
        args = cls.update_dirs_parent(
            args, [c['args'].expname for c in parent_ckpts])
        args = cls.transfer_args(args, parent_ckpts)
        # ****************************************
        # update args for pre-trained primitives
        # ****************************************
        primitive_ckpts = cls.load_checkpoints(args.primitives,
                                               args,
                                               ckpt_type='primitive')
        args = cls.update_dirs_primitive(
            args, [c['args'].expname for c in primitive_ckpts])
        args.num_primitives = len(primitive_ckpts)
        ##########################################
        logger = MultiBaseLogger(args=args)
        task_progression = cls.create_task_progression(logger, args)
        organism = cls.create_organism(device, task_progression, args)
        ##########################################
        # load weights for pre-trained primitives
        # ****************************************
        organism = cls.load_primitive_weights(organism, primitive_ckpts,
                                              logger.printf)
        # ****************************************
        # load weights for parents
        # ****************************************
        organism = cls.load_organism_weights(organism, parent_ckpts,
                                             logger.printf)
        ##########################################
        rl_alg = rlalg_switch(args.alg_name)(device=device, args=args)
        experiment_builder = cls.experiment_switch(args.env_name[0])
        experiment = experiment_builder(society=organism,
                                        task_progression=task_progression,
                                        rl_alg=rl_alg,
                                        logger=logger,
                                        device=device,
                                        args=args)
        experiment.main_loop(max_epochs=args.max_epochs)