コード例 #1
0
    def __init__(self, actor_l, value_l, transition_model, encoder,
                 observation_model, reward_model, child_conn, results_dir, id):
        super(Worker_actor, self).__init__()
        self.process_id = id
        self.actor_l, self.value_l = actor_l, value_l
        self.encoder, self.reward_model, self.transition_model, self.observation_model = encoder, reward_model, transition_model, observation_model

        self.child_conn = child_conn

        # Get model_modules
        self.env_model_modules = get_modules([
            self.transition_model, self.encoder, self.observation_model,
            self.reward_model
        ])
        self.value_model_l_modules = get_modules([self.value_l])

        self.actor_optimizer_l = optim.Adam(
            self.actor_l.parameters(),
            lr=0
            if args.learning_rate_schedule != 0 else args.actor_learning_rate,
            eps=args.adam_epsilon)
        self.value_optimizer_l = optim.Adam(
            self.value_l.parameters(),
            lr=0
            if args.learning_rate_schedule != 0 else args.value_learning_rate,
            eps=args.adam_epsilon)

        self.metrics = {'episodes': [], 'actor_loss': [], 'value_loss': []}
        self.metrics['episodes'].extend(
            [i for i in range(1, args.seed_episodes + 1)])
        self.losses = []
        self.count = 0
        self.results_dir = results_dir
コード例 #2
0
def _validate_definitions():
    """Validates py definitions.

    """
    # Set specialization modules.
    modules = utils.get_modules(_DIR, _TYPEOF)

    # Set validation context.
    ctx = utils.DefinitionsValidationContext(modules)

    # Validate.
    validate_root.validate(ctx)
    for module in [i for i in ctx.modules if i != ctx.root]:
        validate_topic.validate(ctx, module)

    # Set errors.
    errors = ctx.get_errors()

    # Set report.
    report = []
    if not errors:
        report.append(_REPORT_BREAK)
        report.append("{} {} specializations are valid.".format(
            _PROJECT.upper(), _TYPEOF))
        report.append(_REPORT_BREAK)
    else:
        error_count = len(reduce(operator.add, errors.values()))
        report.append(_REPORT_BREAK)
        report.append("SPECIALIZATIONS VALIDATION REPORT")
        report.append(_REPORT_BREAK)
        report.append("Specialization Type = {}".format(_TYPEOF))
        report.append("Generated @ {}".format(datetime.datetime.now()))
        report.append("Error count = {}".format(error_count))
        report.append(_REPORT_BREAK)

        # Set report errors.
        for module, errors in sorted(errors.items()):
            report.append("{}.py".format(module.__name__))
            for idx, err in enumerate(errors):
                report.append("Error #{}:\t{}.".format(idx + 1, err))
            report.append("")

    # Write to stdout.
    for l in report:
        print "ES-DOC :: {}".format(l)

    return len(errors) == 0
コード例 #3
0
    def __init__(self, action_size, transition_model, encoder, reward_model,
                 observation_model):

        self.encoder, self.reward_model, self.transition_model, self.observation_model = encoder, reward_model, transition_model, observation_model

        self.merge_value_model = ValueModel(
            args.belief_size, args.state_size, args.hidden_size,
            args.dense_activation_function).to(device=args.device)
        self.merge_actor_model = MergeModel(
            args.belief_size, args.state_size, args.hidden_size, action_size,
            args.pool_len,
            args.dense_activation_function).to(device=args.device)
        self.merge_actor_model.share_memory()
        self.merge_value_model.share_memory()

        # set actor, value pool
        self.actor_pool = [
            ActorModel(args.belief_size, args.state_size, args.hidden_size,
                       action_size,
                       args.dense_activation_function).to(device=args.device)
            for _ in range(args.pool_len)
        ]
        self.value_pool = [
            ValueModel(args.belief_size, args.state_size, args.hidden_size,
                       args.dense_activation_function).to(device=args.device)
            for _ in range(args.pool_len)
        ]
        [actor.share_memory() for actor in self.actor_pool]
        [value.share_memory() for value in self.value_pool]

        self.env_model_modules = get_modules([
            self.transition_model, self.encoder, self.observation_model,
            self.reward_model
        ])
        self.actor_pool_modules = get_modules(self.actor_pool)
        self.model_modules = self.env_model_modules + self.actor_pool_modules

        self.merge_value_model_modules = get_modules([self.merge_value_model])

        self.merge_actor_optimizer = optim.Adam(
            self.merge_actor_model.parameters(),
            lr=0
            if args.learning_rate_schedule != 0 else args.actor_learning_rate,
            eps=args.adam_epsilon)
        self.merge_value_optimizer = optim.Adam(
            self.merge_value_model.parameters(),
            lr=0
            if args.learning_rate_schedule != 0 else args.value_learning_rate,
            eps=args.adam_epsilon)

        self.actor_pipes = [
            Pipe() for i in range(1,
                                  len(self.actor_pool) + 1)
        ]  # Set Multi Pipe
        self.workers_actor = [
            Worker_actor(actor_l=self.actor_pool[i],
                         value_l=self.value_pool[i],
                         transition_model=self.transition_model,
                         encoder=self.encoder,
                         observation_model=self.observation_model,
                         reward_model=self.reward_model,
                         child_conn=child,
                         results_dir=args.results_dir,
                         id=i + 1)
            for i, [parent, child] in enumerate(self.actor_pipes)
        ]  # Set Worker_actor Using i'th actor_pipes

        [w.start()
         for i, w in enumerate(self.workers_actor)]  # Start Single Process

        self.metrics = {
            'episodes': [],
            'merge_actor_loss': [],
            'merge_value_loss': []
        }
        self.merge_losses = []
コード例 #4
0
ファイル: rule_runner.py プロジェクト: sdgdsffdsfff/zoro
def init(cfg):
    plugins = utils.get_modules(cfg, "rules")
    rule_plugins.update(plugins)
コード例 #5
0
 def import_dir(self, path):
     """ import existing directory, using blank masks. """
     self.widgets = []
     for name in utils.get_modules(path):
         self.set_widget(name)
コード例 #6
0
ファイル: sender.py プロジェクト: onlytiancai/zoro
def init(cfg):
    global warning_send_thread
    warning_send_thread = WarningSendThread(cfg)
    warning_send_thread.start()
    plugins = utils.get_modules(cfg, "senders")
    sender_plugins.update(plugins)