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
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
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
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
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