Beispiel #1
0
    def _create_weights(self):
        '''
        Initialise weights
        '''

        all_weights = collections.OrderedDict()

        all_weights['W_z_to_h1'] = tf.Variable(vae_utils.xavier_init(
            self.n_z, self.N_h[0]),
                                               dtype=tf.float32)
        all_weights['b_z_to_h1'] = tf.Variable(
            tf.zeros([self.N_h[0]], dtype=tf.float32) * self.bias_start)

        num_layers_middle = np.shape(self.N_h)[0] - 1

        for i in range(num_layers_middle):
            ni = i + 2

            all_weights['W_h{}_to_h{}'.format(ni - 1, ni)] = tf.Variable(
                vae_utils.xavier_init(self.N_h[ni - 2], self.N_h[ni - 1]),
                dtype=tf.float32)
            all_weights['b_h{}_to_h{}'.format(ni - 1, ni)] = tf.Variable(
                tf.zeros([self.N_h[ni - 1]], dtype=tf.float32) *
                self.bias_start)

        all_weights['W_h{}_to_mux'.format(ni)] = tf.Variable(
            vae_utils.xavier_init(self.N_h[ni - 1], self.n_x),
            dtype=tf.float32)
        all_weights['b_h{}_to_mux'.format(ni)] = tf.Variable(
            tf.zeros([self.n_x], dtype=tf.float32) * self.bias_start)

        all_weights['W_h{}_to_sx'.format(ni)] = tf.Variable(
            vae_utils.xavier_init(self.N_h[ni - 1], self.n_x),
            dtype=tf.float32)
        all_weights['b_h{}_to_sx'.format(ni)] = tf.Variable(
            tf.zeros([self.n_x], dtype=tf.float32) * self.bias_start)

        return all_weights
Beispiel #2
0
    def _create_weights(self):
        '''
        Initialise weights
        '''

        all_weights = collections.OrderedDict()

        all_weights['W_y_to_h1y'] = tf.Variable(vae_utils.xavier_init(
            self.n_y, self.N_hy[0]),
                                                dtype=tf.float32)
        all_weights['b_y_to_h1y'] = tf.Variable(
            tf.zeros([self.N_hy[0]], dtype=tf.float32) * self.bias_start)

        num_layers_middle_y = np.shape(self.N_hy)[0] - 1

        for i in range(num_layers_middle_y):
            ni = i + 2

            all_weights['W_h{}y_to_h{}y'.format(ni - 1, ni)] = tf.Variable(
                vae_utils.xavier_init(self.N_hy[ni - 2], self.N_hy[ni - 1]),
                dtype=tf.float32)
            all_weights['b_h{}y_to_h{}y'.format(ni - 1, ni)] = tf.Variable(
                tf.zeros([self.N_hy[ni - 1]], dtype=tf.float32) *
                self.bias_start)

        all_weights['W_x_to_h1x'] = tf.Variable(vae_utils.xavier_init(
            self.n_x, self.N_hx[0]),
                                                dtype=tf.float32)
        all_weights['b_x_to_h1x'] = tf.Variable(
            tf.zeros([self.N_hx[0]], dtype=tf.float32) * self.bias_start)

        num_layers_middle_x = np.shape(self.N_hx)[0] - 1

        for i in range(num_layers_middle_x):
            ni = i + 2

            all_weights['W_h{}x_to_h{}x'.format(ni - 1, ni)] = tf.Variable(
                vae_utils.xavier_init(self.N_hx[ni - 2], self.N_hx[ni - 1]),
                dtype=tf.float32)
            all_weights['b_h{}x_to_h{}x'.format(ni - 1, ni)] = tf.Variable(
                tf.zeros([self.N_hx[ni - 1]], dtype=tf.float32) *
                self.bias_start)

        all_weights['W_x2_to_h1x2'] = tf.Variable(vae_utils.xavier_init(
            self.n_x2, self.N_hx2[0]),
                                                  dtype=tf.float32)
        all_weights['b_x2_to_h1x2'] = tf.Variable(
            tf.zeros([self.N_hx2[0]], dtype=tf.float32) * self.bias_start)

        num_layers_middle_x2 = np.shape(self.N_hx2)[0] - 1

        for i in range(num_layers_middle_x2):
            ni = i + 2

            all_weights['W_h{}x2_to_h{}x2'.format(ni - 1, ni)] = tf.Variable(
                vae_utils.xavier_init(self.N_hx2[ni - 2], self.N_hx2[ni - 1]),
                dtype=tf.float32)
            all_weights['b_h{}x2_to_h{}x2'.format(ni - 1, ni)] = tf.Variable(
                tf.zeros([self.N_hx2[ni - 1]], dtype=tf.float32) *
                self.bias_start)

        all_weights['W_h0_to_h1'] = tf.Variable(vae_utils.xavier_init(
            self.N_hy[-1] + self.N_hx[-1] + self.N_hx2[-1], self.N_h[0]),
                                                dtype=tf.float32)
        all_weights['b_h0_to_h1'] = tf.Variable(
            tf.zeros([self.N_h[0]], dtype=tf.float32) * self.bias_start)

        num_layers_middle = np.shape(self.N_h)[0] - 1

        for i in range(num_layers_middle):
            ni = i + 2

            all_weights['W_h{}_to_h{}'.format(ni - 1, ni)] = tf.Variable(
                vae_utils.xavier_init(self.N_h[ni - 2], self.N_h[ni - 1]),
                dtype=tf.float32)
            all_weights['b_h{}_to_h{}'.format(ni - 1, ni)] = tf.Variable(
                tf.zeros([self.N_h[ni - 1]], dtype=tf.float32) *
                self.bias_start)

        all_weights['W_h{}_to_muz'.format(ni)] = tf.Variable(
            vae_utils.xavier_init(self.N_h[ni - 1], self.n_z),
            dtype=tf.float32)
        all_weights['b_h{}_to_muz'.format(ni)] = tf.Variable(
            tf.zeros([self.n_z], dtype=tf.float32) * self.bias_start)

        all_weights['W_h{}_to_sz'.format(ni)] = tf.Variable(
            vae_utils.xavier_init(self.N_h[ni - 1], self.n_z),
            dtype=tf.float32)
        all_weights['b_h{}_to_sz'.format(ni)] = tf.Variable(
            tf.zeros([self.n_z], dtype=tf.float32) * self.bias_start)

        return all_weights