Ejemplo n.º 1
0
def inference(inputs, keep_prob, is_training=True):

    # initialization
    # h1_out = affine_transform(inputs, num_hidden_1, name="hidden_1")
    h1_out = utils.batch_norm_affine_transform(inputs,
                                               num_hidden_1,
                                               name="hidden_1",
                                               decay=decay,
                                               is_training=is_training)
    h1_out = tf.nn.relu(h1_out)
    h1_out = tf.nn.dropout(h1_out, keep_prob=keep_prob)

    # h2_out = utils.batch_norm_affine_transform(h1_out, num_hidden_2, name="hidden_2")
    h2_out = utils.batch_norm_affine_transform(h1_out,
                                               num_hidden_2,
                                               name="hidden_2",
                                               decay=decay,
                                               is_training=is_training)
    h2_out = tf.nn.relu(h2_out)
    h2_out = tf.nn.dropout(h2_out, keep_prob=keep_prob)

    logits = affine_transform(h2_out, bdnn_outputsize, name="output")
    logits = tf.sigmoid(logits)
    logits = tf.reshape(logits, [-1, int(bdnn_outputsize)])

    return logits
Ejemplo n.º 2
0
    def action_network(self, outputs):
        is_training = self.is_training
        with tf.variable_scope("action_network"):

            h1_out = tf.nn.relu(
                utils.batch_norm_affine_transform(outputs,
                                                  action_hidden_1,
                                                  decay=decay,
                                                  name='action_hidden_1',
                                                  seed=SEED,
                                                  is_training=is_training))
            h1_out = tf.nn.dropout(h1_out,
                                   keep_prob=self.keep_probability,
                                   seed=SEED)
            h2_out = tf.nn.relu(
                utils.batch_norm_affine_transform(h1_out,
                                                  action_hidden_2,
                                                  decay=decay,
                                                  name='action_hidden_2',
                                                  seed=SEED,
                                                  is_training=is_training))
            h2_out = tf.nn.dropout(h2_out,
                                   keep_prob=self.keep_probability,
                                   seed=SEED)

        return h2_out
Ejemplo n.º 3
0
    def get_next_input(self, cell_output, reuse=None):

        raw_inputs = self.inputs
        is_training = self.is_training

        with tf.variable_scope("baseline", reuse=reuse):

            baseline = tf.sigmoid(affine_transform(((cell_output)), 1, name='baseline'))

            self.baselines.append(baseline)

        with tf.variable_scope("selection_network", reuse=reuse):

            mean_bp = smooth_softmax(
                utils.batch_norm_affine_transform(cell_output, int(bdnn_winlen), decay=decay, name='selection',
                                                  is_training=is_training))
            # mean_bp = softmax(
            #     utils.batch_norm_affine_transform(cell_output, int(bdnn_winlen), decay=decay, name='selection',
            #                                       is_training=is_training), beta)

            self.mean_bps.append(mean_bp)

            # rand_seq = tf.random_uniform(mean_bp.get_shape().as_list(), minval=0, maxval=1, seed=SEED)

            if is_training:
                sampled_bp = tf.multinomial(mean_bp, num_samples=1, seed=SEED)
                sampled_bp = utils.onehot_tensor(sampled_bp, bdnn_winlen)
            else:
                sampled_bp = mean_bp

            sampled_bp = tf.stop_gradient(sampled_bp)

            self.sampled_bps.append(sampled_bp)

        return self.get_glimpse(raw_inputs, mean_bp, reuse=True)
Ejemplo n.º 4
0
    def inference(self, inputs, keep_prob, is_training=True):
        # initialization
        # h1_out = affine_transform(inputs, num_hidden_1, name="hidden_1")
        h1_out = utils.batch_norm_affine_transform(inputs, num_hidden_1, name="hidden_1", decay=decay,
                                                   is_training=is_training)
        h1_out = tf.nn.relu(h1_out)
        h1_out = tf.nn.dropout(h1_out, keep_prob=keep_prob)

        # h2_out = utils.batch_norm_affine_transform(h1_out, num_hidden_2, name="hidden_2")
        h2_out = utils.batch_norm_affine_transform(h1_out, num_hidden_2, name="hidden_2", decay=decay,
                                                   is_training=is_training)
        h2_out = tf.nn.relu(h2_out)
        h2_out = tf.nn.dropout(h2_out, keep_prob=keep_prob)

        logits = affine_transform(h2_out, 2, name="output")

        return logits
Ejemplo n.º 5
0
    def get_glimpse(self, inputs, bp, reuse=None):

        is_training = self.is_training

        with tf.variable_scope("glimpse_net", reuse=reuse):
            glimpse_input = sw_sensor(inputs, bp)

            act_glimpse_hidden = tf.nn.relu(
                utils.batch_norm_affine_transform(glimpse_input, glimpse_hidden, decay=decay,
                                                  name='glimpse_hidden', seed=SEED, is_training=is_training))
            act_bp_hidden = tf.nn.relu(utils.batch_norm_affine_transform(bp, bp_hidden, decay=decay, name='bp_hidden',
                                                                         seed=SEED, is_training=is_training))

            glimpse_feature = tf.nn.relu(utils.batch_norm_affine_transform(act_glimpse_hidden, glimpse_out, decay=decay,
                                                                           name='glimpse_out',
                                                                           seed=SEED, is_training=is_training) +
                                         utils.batch_norm_affine_transform(act_bp_hidden, bp_out, decay=decay,
                                                                           seed=SEED, name='bp_out', is_training=is_training))
        return glimpse_feature