Ejemplo n.º 1
0
    def _create_weights(self):
        all_weights = collections.OrderedDict()
        with tf.variable_scope("L2_VICI_ENC"):
            # Encoder
            all_weights['L2_VICI_encoder'] = collections.OrderedDict()
            hidden_number_encoder = self.n_weights
            all_weights['L2_VICI_encoder']['W3_to_hidden'] = tf.Variable(vae_utils.xavier_init(self.n_input, hidden_number_encoder), dtype=tf.float32)
            tf.summary.histogram("W3_to_hidden", all_weights['L2_VICI_encoder']['W3_to_hidden'])
    
    #        all_weights['encoder']['W3_hth'] = tf.Variable(vae_utils.xavier_init(hidden_number_encoder, hidden_number_encoder), dtype=tf.float32)
    #        tf.summary.histogram("W3_hth", all_weights['encoder']['W3_hth'])
    #        
#            all_weights['IVA_encoder']['W3b_hth'] = tf.Variable(vae_utils.xavier_init(hidden_number_encoder, hidden_number_encoder), dtype=tf.float32)
#            tf.summary.histogram("W3b_hth", all_weights['IVA_encoder']['W3b_hth'])
##    #        
#            all_weights['IVA_encoder']['W3c_hth'] = tf.Variable(vae_utils.xavier_init(hidden_number_encoder, hidden_number_encoder), dtype=tf.float32)
#            tf.summary.histogram("W3c_hth", all_weights['IVA_encoder']['W3c_hth'])
    #        
    #        all_weights['encoder']['W3d_hth'] = tf.Variable(vae_utils.xavier_init(hidden_number_encoder, hidden_number_encoder), dtype=tf.float32)
    #        tf.summary.histogram("W3d_hth", all_weights['encoder']['W3d_hth'])
    
            all_weights['L2_VICI_encoder']['W4_to_mu'] = tf.Variable(vae_utils.xavier_init(hidden_number_encoder, self.n_hidden),dtype=tf.float32)
            tf.summary.histogram("W4_to_mu", all_weights['L2_VICI_encoder']['W4_to_mu'])
    
            all_weights['L2_VICI_encoder']['W5_to_log_sigma'] = tf.Variable(vae_utils.xavier_init(hidden_number_encoder, self.n_hidden), dtype=tf.float32)
            tf.summary.histogram("W5_to_log_sigma", all_weights['L2_VICI_encoder']['W5_to_log_sigma'])
    
            all_weights['L2_VICI_encoder']['b3_to_hidden'] = tf.Variable(tf.zeros([hidden_number_encoder], dtype=tf.float32) * self.bias_start)
            all_weights['L2_VICI_encoder']['b3_hth'] = tf.Variable(tf.zeros([hidden_number_encoder], dtype=tf.float32) * self.bias_start)
            all_weights['L2_VICI_encoder']['b3b_hth'] = tf.Variable(tf.zeros([hidden_number_encoder], dtype=tf.float32) * self.bias_start)
            all_weights['L2_VICI_encoder']['b3c_hth'] = tf.Variable(tf.zeros([hidden_number_encoder], dtype=tf.float32) * self.bias_start)
            all_weights['L2_VICI_encoder']['b3d_hth'] = tf.Variable(tf.zeros([hidden_number_encoder], dtype=tf.float32) * self.bias_start)
            all_weights['L2_VICI_encoder']['b4_to_mu'] = tf.Variable(tf.zeros([self.n_hidden], dtype=tf.float32) * self.bias_start, dtype=tf.float32)
            all_weights['L2_VICI_encoder']['b5_to_log_sigma'] = tf.Variable(tf.zeros([self.n_hidden], dtype=tf.float32) * self.bias_start, dtype=tf.float32)
            
            all_weights['prior_param'] = collections.OrderedDict()
        
        return all_weights
Ejemplo n.º 2
0
    def _create_weights(self):
        all_weights = collections.OrderedDict()

        # Decoder
        with tf.variable_scope("L2_VICI_DEC"):
            all_weights['L2_VICI_decoder'] = collections.OrderedDict()
            if self.middle == "gaussian":
                hidden_number_decoder = self.n_weights
                all_weights['L2_VICI_decoder']['W3_to_hiddenG'] = tf.Variable(vae_utils.xavier_init(self.n_hidden, hidden_number_decoder), dtype=tf.float32)
                all_weights['L2_VICI_decoder']['b3_to_hiddenG'] = tf.Variable(tf.zeros([hidden_number_decoder], dtype=tf.float32)  * self.bias_start)
                
    #            all_weights['decoder']['W3_to_hiddenGS'] = tf.Variable(vae_utils.xavier_init(self.n_hidden, hidden_number_decoder), dtype=tf.float32)
    #            all_weights['decoder']['b3_to_hiddenGS'] = tf.Variable(tf.zeros([hidden_number_decoder], dtype=tf.float32)  * self.bias_start)
                
    #            all_weights['decoder']['W3b_to_hiddenG'] = tf.Variable(vae_utils.xavier_init(hidden_number_decoder, hidden_number_decoder), dtype=tf.float32)
    #            all_weights['decoder']['b3b_to_hiddenG'] = tf.Variable(tf.zeros([hidden_number_decoder], dtype=tf.float32)  * self.bias_start)
    #            
    #            all_weights['decoder']['W3c_to_hiddenG'] = tf.Variable(vae_utils.xavier_init(hidden_number_decoder, hidden_number_decoder), dtype=tf.float32)
    #            all_weights['decoder']['b3c_to_hiddenG'] = tf.Variable(tf.zeros([hidden_number_decoder], dtype=tf.float32)  * self.bias_start)
    #####            
    #            all_weights['decoder']['W3d_to_hiddenG'] = tf.Variable(vae_utils.xavier_init(hidden_number_decoder, hidden_number_decoder), dtype=tf.float32)
    #            all_weights['decoder']['b3d_to_hiddenG'] = tf.Variable(tf.zeros([hidden_number_decoder], dtype=tf.float32)  * self.bias_start)
    #            
    #            all_weights['decoder']['W3e_to_hiddenG'] = tf.Variable(vae_utils.xavier_init(hidden_number_decoder, hidden_number_decoder), dtype=tf.float32)
    #            all_weights['decoder']['b3e_to_hiddenG'] = tf.Variable(tf.zeros([hidden_number_decoder], dtype=tf.float32)  * self.bias_start)
    
                all_weights['L2_VICI_decoder']['W4_to_muG'] = tf.Variable(vae_utils.xavier_init(hidden_number_decoder, self.n_input), dtype=tf.float32)
                all_weights['L2_VICI_decoder']['b4_to_muG'] = tf.Variable(tf.zeros([self.n_input])  * self.bias_start, dtype=tf.float32)
                all_weights['L2_VICI_decoder']['W5_to_log_sigmaG'] = tf.Variable(vae_utils.xavier_init(hidden_number_decoder, self.n_input), dtype=tf.float32)
                all_weights['L2_VICI_decoder']['b5_to_log_sigmaG'] = tf.Variable(tf.zeros([self.n_input])  * self.bias_start, dtype=tf.float32)
            elif self.middle == "bernoulli":
                hidden_number_decoder = 200
                all_weights['decoder']['W1_to_hidden'] = tf.Variable(vae_utils.xavier_init(self.n_hidden, hidden_number_decoder))
                tf.summary.histogram("W1_to_hidden", all_weights['decoder']['W1_to_hidden'])
    
                all_weights['decoder']['W1b_htoh'] = tf.Variable(vae_utils.xavier_init(hidden_number_decoder, hidden_number_decoder))
                tf.summary.histogram("W1b_htoh", all_weights['decoder']['W1_to_hidden'])
                
                all_weights['decoder']['W1c_htoh'] = tf.Variable(vae_utils.xavier_init(hidden_number_decoder, hidden_number_decoder))
                tf.summary.histogram("W1c_htoh", all_weights['decoder']['W1_to_hidden'])
    
                all_weights['decoder']['W2_to_y_pre'] = tf.Variable(vae_utils.xavier_init(hidden_number_decoder, self.n_input))
                tf.summary.histogram("W2_to_y_pre", all_weights['decoder']['W1_to_hidden'])
    
                all_weights['decoder']['b1_to_hidden'] = tf.Variable(tf.ones([hidden_number_decoder], dtype=tf.float32) * self.bias_start)
                tf.summary.histogram("b1_to_hidden", all_weights['decoder']['b1_to_hidden'])
    
                all_weights['decoder']['b1b_htoh'] = tf.Variable(tf.ones([hidden_number_decoder], dtype=tf.float32) * self.bias_start)
                tf.summary.histogram("b1b_htoh", all_weights['decoder']['b1b_htoh'])
                
                all_weights['decoder']['b1c_htoh'] = tf.Variable(tf.ones([hidden_number_decoder], dtype=tf.float32) * self.bias_start)
                tf.summary.histogram("b1c_htoh", all_weights['decoder']['b1c_htoh'])
    
                all_weights['decoder']['b2_to_y_pre'] = tf.Variable(tf.ones([self.n_input], dtype=tf.float32) * self.bias_start)
                tf.summary.histogram("b2_to_y_pre", all_weights['decoder']['b2_to_y_pre'])
    
            else:
                raise RuntimeError
            
            all_weights['prior_param'] = collections.OrderedDict()
        
        return all_weights
Ejemplo n.º 3
0
    def _create_weights(self):
        all_weights = collections.OrderedDict()

        # Decoder
        with tf.variable_scope("VICI_DEC"):
            all_weights['VICI_decoder'] = collections.OrderedDict()
            
            if self.n_conv is not None:
                dummy = 1
                for i in range(self.n_conv):
                    weight_name = 'w_conv_' + str(i)
                    bias_name = 'b_conv_' + str(i)
                    # orthogonal init
                    if self.weight_init == 'Orthogonal':
                        shape_init = (self.filter_size[i],dummy*self.n_filters[i])
                        initializer = tf.keras.initializers.Orthogonal()
                        all_weights['VICI_decoder'][weight_name] = tf.Variable(tf.reshape(initializer(shape=shape_init),[self.filter_size[i], 1, dummy, self.n_filters[i]]), dtype=tf.float32)
                    # Variance scaling
                    if self.weight_init == 'VarianceScaling':
                        shape_init = (self.filter_size[i],dummy*self.n_filters[i])
                        initializer = tf.keras.initializers.VarianceScaling()
                        all_weights['VICI_decoder'][weight_name] = tf.Variable(tf.reshape(initializer(shape=shape_init),[self.filter_size[i], 1, dummy, self.n_filters[i]]), dtype=tf.float32)
                    # xavier initilization
                    if self.weight_init == 'xavier':
                        all_weights['VICI_decoder'][weight_name] = tf.Variable(tf.reshape(vae_utils.xavier_init(self.filter_size[i], dummy*self.n_filters[i]),[self.filter_size[i], 1, dummy, self.n_filters[i]]), dtype=tf.float32)
                    all_weights['VICI_decoder'][bias_name] = tf.Variable(tf.zeros([self.n_filters[i]], dtype=tf.float32))
                    tf.summary.histogram(weight_name, all_weights['VICI_decoder'][weight_name])
                    tf.summary.histogram(bias_name, all_weights['VICI_decoder'][bias_name])
                    dummy = self.n_filters[i]

                total_pool_stride_sum = 0
                for j in range(len(self.maxpool)):
                    if self.maxpool[j] != 1 and self.pool_strides[j] != 1:
                        total_pool_stride_sum += 1
                    else:
                        if self.maxpool[j] != 1:
                            total_pool_stride_sum += 1
                        if self.pool_strides[j] != 1:
                            total_pool_stride_sum += 1
                    if self.conv_strides[j] != 1:
                        total_pool_stride_sum += 1
                if self.by_channel == True:
                    fc_input_size = self.n_input1 + int(self.n_input2*self.n_filters[i]/(2**total_pool_stride_sum))
                else:
                    fc_input_size = self.n_input1 + int(self.n_input2*self.n_filters[i]/(2**total_pool_stride_sum)*2)
            else:
                fc_input_size = self.n_input1 + self.n_input2

            for i in range(self.n_hlayers):
                weight_name = 'w_hidden_' + str(i)
                bias_name = 'b_hidden' + str(i)
                all_weights['VICI_decoder'][weight_name] = tf.Variable(vae_utils.xavier_init(fc_input_size, self.n_weights[i]), dtype=tf.float32)
                all_weights['VICI_decoder'][bias_name] = tf.Variable(tf.zeros([self.n_weights[i]], dtype=tf.float32))
                tf.summary.histogram(weight_name, all_weights['VICI_decoder'][weight_name])
                tf.summary.histogram(bias_name, all_weights['VICI_decoder'][bias_name])
                fc_input_size = self.n_weights[i]
            all_weights['VICI_decoder']['w_loc'] = tf.Variable(vae_utils.xavier_init(self.n_weights[-1], self.n_output),dtype=tf.float32)
            all_weights['VICI_decoder']['b_loc'] = tf.Variable(tf.zeros([self.n_output], dtype=tf.float32), dtype=tf.float32)
            tf.summary.histogram('w_loc', all_weights['VICI_decoder']['w_loc'])
            tf.summary.histogram('b_loc', all_weights['VICI_decoder']['b_loc'])
            all_weights['VICI_decoder']['w_scale'] = tf.Variable(vae_utils.xavier_init(self.n_weights[-1], self.n_output),dtype=tf.float32)
            all_weights['VICI_decoder']['b_scale'] = tf.Variable(tf.zeros([self.n_output], dtype=tf.float32), dtype=tf.float32)
            tf.summary.histogram('w_scale', all_weights['VICI_decoder']['w_scale'])
            tf.summary.histogram('b_scale', all_weights['VICI_decoder']['b_scale'])
            
            all_weights['prior_param'] = collections.OrderedDict()
        
        return all_weights
Ejemplo n.º 4
0
    def _create_weights(self):
        all_weights = collections.OrderedDict()
        with tf.variable_scope("VICI_ENC"):
            all_weights['VICI_encoder'] = collections.OrderedDict()

            if self.n_conv is not None:
                dummy = self.n_channels
                for i in range(self.n_conv):
                    weight_name = 'w_conv_' + str(i)
                    bias_name = 'b_conv_' + str(i)
                    all_weights['VICI_encoder'][
                        weight_name + '1'] = tf.Variable(tf.reshape(
                            vae_utils.xavier_init(self.filter_size[i],
                                                  dummy * self.n_filters[i]),
                            [self.filter_size[i], 1, dummy, self.n_filters[i]
                             ]),
                                                         dtype=tf.float32)
                    all_weights['VICI_encoder'][bias_name + '1'] = tf.Variable(
                        tf.zeros([self.n_filters[i]], dtype=tf.float32))
                    #all_weights['VICI_encoder'][weight_name + '2'] = tf.Variable(tf.reshape(vae_utils.xavier_init(self.filter_size*2, dummy*self.n_filters),[self.filter_size*2, dummy, self.n_filters]), dtype=tf.float32)
                    #all_weights['VICI_encoder'][bias_name + '2'] = tf.Variable(tf.zeros([self.n_filters], dtype=tf.float32))
                    #all_weights['VICI_encoder'][weight_name + '3'] = tf.Variable(tf.reshape(vae_utils.xavier_init(self.filter_size*4, dummy*self.n_filters),[self.filter_size*4, dummy, self.n_filters]), dtype=tf.float32)
                    #all_weights['VICI_encoder'][bias_name + '3'] = tf.Variable(tf.zeros([self.n_filters], dtype=tf.float32))
                    tf.summary.histogram(
                        weight_name + '1',
                        all_weights['VICI_encoder'][weight_name + '1'])
                    tf.summary.histogram(
                        bias_name + '1',
                        all_weights['VICI_encoder'][bias_name + '1'])
                    #tf.summary.histogram(weight_name + '2', all_weights['VICI_encoder'][weight_name + '2'])
                    #tf.summary.histogram(bias_name + '2', all_weights['VICI_encoder'][bias_name + '2'])
                    #tf.summary.histogram(weight_name + '3', all_weights['VICI_encoder'][weight_name + '3'])
                    #tf.summary.histogram(bias_name + '3', all_weights['VICI_encoder'][bias_name + '3'])
                    dummy = self.n_filters[i]

                fc_input_size = int(self.n_input * self.n_filters[-1] /
                                    (np.prod(self.maxpool)))
            else:
                fc_input_size = self.n_input * self.n_channels

            for i in range(self.n_hlayers):
                weight_name = 'w_hidden_' + str(i)
                bias_name = 'b_hidden' + str(i)
                all_weights['VICI_encoder'][weight_name] = tf.Variable(
                    vae_utils.xavier_init(fc_input_size, self.n_weights[i]),
                    dtype=tf.float32)
                all_weights['VICI_encoder'][bias_name] = tf.Variable(
                    tf.zeros([self.n_weights[i]], dtype=tf.float32))
                tf.summary.histogram(weight_name,
                                     all_weights['VICI_encoder'][weight_name])
                tf.summary.histogram(bias_name,
                                     all_weights['VICI_encoder'][bias_name])
                fc_input_size = self.n_weights[i]
            all_weights['VICI_encoder']['w_loc'] = tf.Variable(
                vae_utils.xavier_init(self.n_weights[-1],
                                      self.n_output * self.n_modes),
                dtype=tf.float32)
            all_weights['VICI_encoder']['b_loc'] = tf.Variable(
                tf.zeros([self.n_output * self.n_modes], dtype=tf.float32),
                dtype=tf.float32)
            tf.summary.histogram('w_loc', all_weights['VICI_encoder']['w_loc'])
            tf.summary.histogram('b_loc', all_weights['VICI_encoder']['b_loc'])
            all_weights['VICI_encoder']['w_scale_diag'] = tf.Variable(
                vae_utils.xavier_init(self.n_weights[-1],
                                      self.n_output * self.n_modes),
                dtype=tf.float32)
            all_weights['VICI_encoder']['b_scale_diag'] = tf.Variable(
                tf.zeros([self.n_output * self.n_modes], dtype=tf.float32),
                dtype=tf.float32)
            tf.summary.histogram('w_scale',
                                 all_weights['VICI_encoder']['w_scale_diag'])
            tf.summary.histogram('b_scale',
                                 all_weights['VICI_encoder']['b_scale_diag'])
            #all_weights['VICI_encoder']['w_scale_tri'] = tf.Variable(vae_utils.xavier_init(self.n_weights[-1], int((self.n_output*(self.n_output+1)*self.n_modes)/2)),dtype=tf.float32)
            #all_weights['VICI_encoder']['b_scale_tri'] = tf.Variable(tf.zeros([int((self.n_output*(self.n_output+1)*self.n_modes)/2)], dtype=tf.float32), dtype=tf.float32)
            #tf.summary.histogram('w_scale_tri', all_weights['VICI_encoder']['w_scale_tri'])
            #tf.summary.histogram('b_scale_tri', all_weights['VICI_encoder']['b_scale_tri'])
            all_weights['VICI_encoder']['w_weight'] = tf.Variable(
                vae_utils.xavier_init(self.n_weights[-1], self.n_modes),
                dtype=tf.float32)
            all_weights['VICI_encoder']['b_weight'] = tf.Variable(
                tf.zeros([self.n_modes], dtype=tf.float32), dtype=tf.float32)
            tf.summary.histogram('w_weight',
                                 all_weights['VICI_encoder']['w_weight'])
            tf.summary.histogram('b_weight',
                                 all_weights['VICI_encoder']['b_weight'])

            all_weights['prior_param'] = collections.OrderedDict()

        return all_weights
Ejemplo n.º 5
0
    def _create_weights(self):
        all_weights = collections.OrderedDict()

        # Decoder
        with tf.variable_scope("VICI_DEC"):
            all_weights['VICI_decoder'] = collections.OrderedDict()

            if self.n_conv is not None:
                dummy = self.n_channels
                for i in range(self.n_conv):
                    weight_name = 'w_conv_' + str(i)
                    bias_name = 'b_conv_' + str(i)
                    all_weights['VICI_decoder'][
                        weight_name + '1'] = tf.Variable(tf.reshape(
                            vae_utils.xavier_init(self.filter_size[i],
                                                  dummy * self.n_filters[i]),
                            [self.filter_size[i], 1, dummy, self.n_filters[i]
                             ]),
                                                         dtype=tf.float32)
                    all_weights['VICI_decoder'][bias_name + '1'] = tf.Variable(
                        tf.zeros([self.n_filters[i]], dtype=tf.float32))
                    tf.summary.histogram(
                        weight_name + '1',
                        all_weights['VICI_decoder'][weight_name + '1'])
                    tf.summary.histogram(
                        bias_name + '1',
                        all_weights['VICI_decoder'][bias_name + '1'])
                    dummy = self.n_filters[i]

                fc_input_size = self.n_input1 + int(
                    self.n_input2 * self.n_filters[-1] /
                    (np.prod(self.maxpool)))
            else:
                fc_input_size = self.n_input1 + self.n_input2 * self.n_channels

            for i in range(self.n_hlayers):
                weight_name = 'w_hidden_' + str(i)
                bias_name = 'b_hidden' + str(i)
                all_weights['VICI_decoder'][weight_name] = tf.Variable(
                    vae_utils.xavier_init(fc_input_size, self.n_weights[i]),
                    dtype=tf.float32)
                all_weights['VICI_decoder'][bias_name] = tf.Variable(
                    tf.zeros([self.n_weights[i]], dtype=tf.float32))
                tf.summary.histogram(weight_name,
                                     all_weights['VICI_decoder'][weight_name])
                tf.summary.histogram(bias_name,
                                     all_weights['VICI_decoder'][bias_name])
                fc_input_size = self.n_weights[i]
            all_weights['VICI_decoder']['w_loc'] = tf.Variable(
                vae_utils.xavier_init(self.n_weights[-1], self.n_output + 1),
                dtype=tf.float32)  # +1 for extra sky param
            all_weights['VICI_decoder']['b_loc'] = tf.Variable(
                tf.zeros([self.n_output + 1], dtype=tf.float32),
                dtype=tf.float32)  # +1 for extra sky param
            tf.summary.histogram('w_loc', all_weights['VICI_decoder']['w_loc'])
            tf.summary.histogram('b_loc', all_weights['VICI_decoder']['b_loc'])
            all_weights['VICI_decoder']['w_scale'] = tf.Variable(
                vae_utils.xavier_init(self.n_weights[-1], self.n_output - 1),
                dtype=tf.float32
            )  # # -1 for common concentration par in VMF dist
            all_weights['VICI_decoder']['b_scale'] = tf.Variable(
                tf.zeros([self.n_output - 1], dtype=tf.float32),
                dtype=tf.float32
            )  # -1 for common concentration par in VMF dist
            tf.summary.histogram('w_scale',
                                 all_weights['VICI_decoder']['w_scale'])
            tf.summary.histogram('b_scale',
                                 all_weights['VICI_decoder']['b_scale'])

            all_weights['prior_param'] = collections.OrderedDict()

        return all_weights