Пример #1
0
 def eval_at_state(self):
     model_input = ModelInput()
     model_input.state = self.preprocess_frame(
         self.episode.state_for_agent())
     model_input.hidden = self.hidden
     model_output = self.model.forward(model_input)
     return model_output
Пример #2
0
 def eval_at_state(self):
     model_input = ModelInput()
     model_input.state = self.preprocess_frame(
         self.episode.state_for_agent())
     model_input.hidden = self.hidden
     model_input.additional_state_info = gpuify(
         torch.Tensor(self.info[1]).unsqueeze(0), self.gpu_id)
     model_output = self.model.forward(model_input)
     return model_output
Пример #3
0
    def eval_at_state(self):
        model_input = ModelInput()
        model_input.state = self.preprocess_frame(
            self.episode.state_for_agent())
        model_input.hidden = self.hidden

        ## add 'augState' as additional_state_info list to 'model_input' container
        model_input.additional_state_info = self.augState
        print(
            'eval_at_state agent.py ..printing model_input.additional_state_info tensor..',
            model_input.additional_state_info.data[0])

        model_output = self.model.forward(model_input)
        return model_output
Пример #4
0
 def eval_at_state(self):
     episode_actions_taken = set(
         [a['action'] for a in self.episode.actions_taken])
     extra_state = [
         1. if 'Seen' + t in episode_actions_taken else 0.
         for t in self.episode.targets
     ]
     extra_state = torch.tensor(extra_state).unsqueeze(0)
     if self.gpu_id >= 0:
         with torch.cuda.device(self.gpu_id):
             extra_state = extra_state.cuda()
     model_input = ModelInput()
     model_input.state = self.preprocess_frame(
         self.episode.state_for_agent())
     model_input.extra_state = extra_state
     model_input.hidden = self.hidden
     model_output = self.model.forward(model_input)
     return model_output
Пример #5
0
def instantiate_model(mode, config, data_set):
    """
    Instantiates the model with the given configuration and data.
    :param mode: Mode enum specifying train/test/validation.
    :param config:
    :param data_set: a tf.data.dataset
    :return: model, summary operation
    """
    name = Mode.to_string(mode)

    initializer = tf.random_uniform_initializer(-config.init_scale,
                                                config.init_scale)

    with tf.name_scope(name=name):
        model_input = ModelInput(config=config, data=data_set)
        with tf.variable_scope("Model",
                               reuse=tf.AUTO_REUSE,
                               initializer=initializer):
            model = SeqModel(is_training=(mode == Mode.train),
                             config=config,
                             dataset=model_input)

            summary = tf.summary.scalar(name + " Loss", model.normalized_cost)
            if mode == Mode.train:
                summ_lr = tf.summary.scalar("Learning Rate",
                                            model.config.learning_rate)
                summary = tf.summary.merge([summary, summ_lr])
            summ_layers = tf.summary.scalar("Layers", model.config.num_layers)
            summ_bs = tf.summary.scalar("Batch Size", model.config.batch_size)
            summ_grad_norm = tf.summary.scalar("Gradient Norm",
                                               model.config.max_grad_norm)
            summ_keep_prob = tf.summary.scalar("Dropout Keep Probability",
                                               model.config.keep_prob)
            summ_hidden_size = tf.summary.scalar("State Size",
                                                 model.config.hidden_size)
            summary = tf.summary.merge([
                summary, summ_layers, summ_bs, summ_grad_norm, summ_keep_prob,
                summ_hidden_size
            ])

    return model, summary
Пример #6
0
def main():
    model = Model()
    #
    #    model.setup(155, base_stats_by_attr,
    #                {'AP': 10, 'MP': 5, 'Range': 5, 'Agility': 134, 'Critical Hits': 45},
    #                {}, set(), objective_values_2, options)
    #    model.run()
    #    print model.get_result_string()

    model.setup(
        ModelInput(73, base_stats_by_attr_case2, {
            'AP': 10,
            'MP': 4,
            'Range': 2,
            'Summon': 1
        }, {}, set(['Dofusteuse', 'Vulbis Dofus']), {
            key: 2 * value
            for (key, value) in objective_values_3.iteritems()
        }, options_caso2))
    model.run(1)
    print model.get_result_string()