Пример #1
0
 def __init__(self, scope=None, **kwargs):
     super().__init__(scope=scope, **kwargs)
     self.training_wheels = build_scheduled_value(self.training_wheels,
                                                  "training_wheels")
     self.obj_concrete_temp = build_scheduled_value(self.obj_concrete_temp,
                                                    "obj_concrete_temp")
     self.obj_temp = build_scheduled_value(self.obj_temp, "obj_temp")
Пример #2
0
    def __init__(self, env, updater, scope=None, **kwargs):
        super().__init__(env, updater, scope=scope)

        self.reconstruction_weight = build_scheduled_value(
            self.reconstruction_weight, "reconstruction_weight")
        self.kl_weight = build_scheduled_value(self.kl_weight, "kl_weight")

        if not self.noisy and self.train_kl:
            raise Exception(
                "If `noisy` is False, `train_kl` must also be False.")
Пример #3
0
    def __init__(self, pixels_per_cell, scope=None, **kwargs):
        super(GridObjectLayer, self).__init__(scope=scope, **kwargs)

        self.pixels_per_cell = pixels_per_cell

        self.B = len(self.anchor_boxes)

        if isinstance(self.count_prior_dist, str):
            self.count_prior_dist = eval(self.count_prior_dist)

        self.count_prior_log_odds = build_scheduled_value(
            self.count_prior_log_odds, "count_prior_log_odds")
        self.obj_concrete_temp = build_scheduled_value(self.obj_concrete_temp,
                                                       "obj_concrete_temp")
        self.obj_temp = build_scheduled_value(self.obj_temp, "obj_temp")

        self.yx_prior_mean = build_scheduled_value(self.yx_prior_mean,
                                                   "yx_prior_mean")
        self.yx_prior_std = build_scheduled_value(self.yx_prior_std,
                                                  "yx_prior_std")

        self.hw_prior_mean = build_scheduled_value(self.hw_prior_mean,
                                                   "hw_prior_mean")
        self.hw_prior_std = build_scheduled_value(self.hw_prior_std,
                                                  "hw_prior_std")

        self.training_wheels = build_scheduled_value(self.training_wheels,
                                                     "training_wheels")

        self.anchor_boxes = np.array(self.anchor_boxes)
Пример #4
0
    def __init__(self, pixels_per_cell, grid_offset=None, scope=None, **kwargs):
        super(GridObjectLayer, self).__init__(scope=scope, **kwargs)

        self.pixels_per_cell = pixels_per_cell
        self.grid_offset = np.zeros(2) if grid_offset is None else grid_offset

        self.B = self.n_objects_per_cell

        self.yx_prior_mean = build_scheduled_value(self.yx_prior_mean, "yx_prior_mean")
        self.yx_prior_std = build_scheduled_value(self.yx_prior_std, "yx_prior_std")

        self.hw_prior_mean = build_scheduled_value(self.hw_prior_mean, "hw_prior_mean")
        self.hw_prior_std = build_scheduled_value(self.hw_prior_std, "hw_prior_std")

        self.anchor_box = np.array(self.anchor_box)
Пример #5
0
    def __init__(self, env, updater, scope=None, **kwargs):
        super().__init__(env, updater, scope=scope)

        self.lmbda = build_scheduled_value(self.lmbda, "lmbda")

        self.output_size_per_object = np.prod(
            self.object_shape) * (self.image_depth + 1) + 1 + 4 + self.n_layers
Пример #6
0
    def build_update(self, context):
        self.delta = build_scheduled_value(self.delta_schedule, "delta")

        tvars = self.trainable_variables(for_opt=True)
        self.gradient = tf.gradients(context.objective, tvars)

        mask = context.get_signal('mask')
        kl = context.get_signal('kl', self.policy)

        mean_kl = masked_mean(kl, mask)
        self.fv_product = HessianVectorProduct(mean_kl, tvars)

        self.grad_norm_pure = tf.placeholder(tf.float32,
                                             shape=(),
                                             name="_grad_norm_pure")
        self.grad_norm_natural = tf.placeholder(tf.float32,
                                                shape=(),
                                                name="_grad_norm_natural")
        self.step_norm = tf.placeholder(tf.float32,
                                        shape=(),
                                        name="_step_norm")

        context.add_recorded_values(grad_norm_pure=self.grad_norm_pure,
                                    grad_norm_natural=self.grad_norm_natural,
                                    step_norm=self.step_norm,
                                    train_only=True)
Пример #7
0
    def build_core_signals(self, context):
        self.maybe_build_mode()

        self.train_exploration = build_scheduled_value(
            self.train_exploration_schedule)
        if self.val_exploration_schedule is None:
            self.exploration = self.val_exploration = self.train_exploration
        else:
            self.val_exploration = build_scheduled_value(
                self.val_exploration_schedule)
            self.exploration = tf.cond(
                tf.logical_or(
                    tf.equal(self.mode, "train"),
                    tf.equal(self.mode, "off_policy"),
                ), lambda: self.train_exploration,
                lambda: self.val_exploration)
        label = "{}-exploration".format(self.display_name)
        context.add_recorded_value(label, self.exploration)
Пример #8
0
    def __init__(self, env, updater, scope=None, **kwargs):
        self.updater = updater

        self.obs_shape = env.obs_shape
        self.image_height, self.image_width, self.image_depth = self.obs_shape

        self.attr_prior_mean = build_scheduled_value(self.attr_prior_mean, "attr_prior_mean")
        self.attr_prior_std = build_scheduled_value(self.attr_prior_std, "attr_prior_std")

        self.reconstruction_weight = build_scheduled_value(
            self.reconstruction_weight, "reconstruction_weight")
        self.kl_weight = build_scheduled_value(self.kl_weight, "kl_weight")
        self.math_weight = build_scheduled_value(self.math_weight, "math_weight")

        if not self.noisy and self.train_kl:
            raise Exception("If `noisy` is False, `train_kl` must also be False.")

        super(VariationalAutoencoder, self).__init__(scope=scope, **kwargs)
Пример #9
0
    def __init__(self, pixels_per_cell, scope=None, **kwargs):
        super(GridObjectLayer, self).__init__(scope=scope, **kwargs)

        self.pixels_per_cell = pixels_per_cell

        self.B = self.n_objects_per_cell

        if isinstance(self.count_prior_dist, str):
            self.count_prior_dist = eval(self.count_prior_dist)

        self.count_prior_log_odds = build_scheduled_value(self.count_prior_log_odds, "count_prior_log_odds")

        self.yx_prior_mean = build_scheduled_value(self.yx_prior_mean, "yx_prior_mean")
        self.yx_prior_std = build_scheduled_value(self.yx_prior_std, "yx_prior_std")

        self.hw_prior_mean = build_scheduled_value(self.hw_prior_mean, "hw_prior_mean")
        self.hw_prior_std = build_scheduled_value(self.hw_prior_std, "hw_prior_std")

        self.anchor_box = np.array(self.anchor_box)
Пример #10
0
    def __init__(self, env, updater, scope=None, **kwargs):
        ap_iou_values = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
        self.eval_funcs = {
            "AP_at_point_{}".format(int(10 * v)): BaselineAP(v)
            for v in ap_iou_values
        }
        self.eval_funcs["AP"] = BaselineAP(ap_iou_values)
        self.eval_funcs["MOT"] = BaselineMOTMetrics()

        self.cc_threshold = build_scheduled_value(self.cc_threshold,
                                                  'cc_threshold')

        try:
            self.cosine_threshold = build_scheduled_value(
                self.cosine_threshold, 'cosine_threshold')
        except Exception:
            self.cosine_threshold = None

        super().__init__(env, updater, scope=scope, **kwargs)
Пример #11
0
    def __init__(self, env, updater, scope=None, **kwargs):
        super(AIR_Network, self).__init__(env, updater, scope=scope, **kwargs)

        ap_iou_values = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
        self.eval_funcs = {
            "AP_at_point_{}".format(int(10 * v)): AIR_AP(v)
            for v in ap_iou_values
        }
        self.eval_funcs["AP"] = AIR_AP(ap_iou_values)

        self.training_wheels = build_scheduled_value(self.training_wheels,
                                                     "training_wheels")

        self.scale_prior_mean = build_scheduled_value(self.scale_prior_mean,
                                                      "scale_prior_mean")
        self.scale_prior_std = build_scheduled_value(self.scale_prior_std,
                                                     "scale_prior_std")

        self.shift_prior_mean = build_scheduled_value(self.shift_prior_mean,
                                                      "shift_prior_mean")
        self.shift_prior_std = build_scheduled_value(self.shift_prior_std,
                                                     "shift_prior_std")

        self.z_pres_prior_log_odds = build_scheduled_value(
            self.z_pres_prior_log_odds, "z_pres_prior_log_odds")
Пример #12
0
 def build_core_signals(self, context):
     self.weight = build_scheduled_value(self.weight_schedule,
                                         "{}-weight".format(self.name))
Пример #13
0
 def __init__(self, **kwargs):
     if isinstance(self.count_prior_dist, str):
         self.count_prior_dist = eval(self.count_prior_dist)
     self.count_prior_log_odds = build_scheduled_value(
         self.count_prior_log_odds, "count_prior_log_odds")
     super().__init__(**kwargs)
Пример #14
0
 def __init__(self, **kwargs):
     self.exp_rate = build_scheduled_value(self.exp_rate, "exp_rate")
     super().__init__(**kwargs)
Пример #15
0
 def __init__(self, **kwargs):
     self.prior_log_odds = build_scheduled_value(self.prior_log_odds,
                                                 "prior_log_odds")
     super().__init__(**kwargs)
Пример #16
0
 def __init__(self, **kwargs):
     self.obj_concrete_temp = build_scheduled_value(self.obj_concrete_temp,
                                                    "obj_concrete_temp")
     super().__init__(**kwargs)
Пример #17
0
    def __init__(self, env, scope=None, **kwargs):
        self.lr_schedule = build_scheduled_value(self.lr_schedule, "lr")
        self.l2_schedule = build_scheduled_value(self.l2_schedule, "l2_weight")

        super().__init__(env, scope=scope, **kwargs)
Пример #18
0
 def generate_signal(self, signal_key, context):
     if signal_key == "beta":
         return build_scheduled_value(self.beta_schedule,
                                      '{}-beta'.format(self.name))
     else:
         raise Exception("NotImplemented")