def create_network(self): self.A = tf.cast(self.A, tf.float32) self.X = tf.cast(self.X, tf.float32) self.P = tf.cast(self.P, tf.float32) hidden_dim = self.FLAGS.hidden_dim latent_dim = self.FLAGS.latent_dim length = self.FLAGS.regularization_scale num_train = self.FLAGS.num_train num_layers = self.FLAGS.num_layers num_attn = self.FLAGS.num_attn self._X = blocks.encoder_gat_gate(self.X, self.A, num_layers, hidden_dim, num_attn, length, num_train) self.Z, self.P_mean, self.P_logvar = blocks.readout_and_mlp(self._X, latent_dim, length, num_train) self.loss = None if(self.FLAGS.task_type == 'regression'): self.loss = self.loss_regression(self.P, self.P_mean, self.P_logvar) elif(self.FLAGS.task_type == 'classification'): self.loss = self.loss_classification(self.P, self.P_mean) self.lr = tf.Variable(0.0, trainable = False) self.opt = self.optimizer( self.lr, self.FLAGS.optimizer ) self.sess = tf.Session() init = tf.global_variables_initializer() self.sess = tf.Session() self.sess.run(init) self.saver = tf.train.Saver() tf.train.start_queue_runners(sess=self.sess) print ("Network Ready")
def create_network(self): self.A = tf.cast(self.A, tf.float64) self.X = tf.cast(self.X, tf.float64) self.P = tf.cast(self.P, tf.float64) self.Z = None self._X = None self._P = None latent_dim = self.FLAGS.latent_dim num_layers = self.FLAGS.num_layers if self.FLAGS.model == 'GCN': self._X = blocks.encoder_gcn(self.X, self.A, num_layers) elif self.FLAGS.model == 'GCN+a': self._X = blocks.encoder_gat(self.X, self.A, num_layers) elif self.FLAGS.model == 'GCN+g': self._X = blocks.encoder_gcn_gate(self.X, self.A, num_layers) elif self.FLAGS.model == 'GCN+a+g': self._X = blocks.encoder_gat_gate(self.X, self.A, num_layers) elif self.FLAGS.model == 'GGNN': self._X = blocks.encoder_ggnn(self.X, self.A, num_layers) self.Z, self._P = blocks.readout_edgewise(self._X, latent_dim) self.loss = self.calLoss(self.P, self._P, self.target_mask, self.target_std, self.target_mean) self.lr = tf.Variable(0.0, trainable=False) self.opt = self.optimizer(self.lr, self.FLAGS.optimizer) self.sess = tf.Session() init = tf.global_variables_initializer() self.sess = tf.Session() self.sess.run(init) self.saver = tf.train.Saver() tf.train.start_queue_runners(sess=self.sess) print("Network Ready")
def create_network(self): self.A = tf.cast(self.A, tf.float64) self.X = tf.cast(self.X, tf.float64) self.P = tf.cast(self.P, tf.float64) self.Z = None self._X = None self._P = None latent_dim = self.FLAGS.latent_dim num_layers = self.FLAGS.num_layers if (self.FLAGS.model == 'GCN'): self._X = blocks.encoder_gcn(self.X, self.A, num_layers) elif (self.FLAGS.model == 'GCN+a'): self._X = blocks.encoder_gat(self.X, self.A, num_layers) elif (self.FLAGS.model == 'GCN+g'): self._X = blocks.encoder_gcn_gate(self.X, self.A, num_layers) elif (self.FLAGS.model == 'GCN+a+g'): self._X = blocks.encoder_gat_gate(self.X, self.A, num_layers) if (self.FLAGS.readout == 'atomwise'): self.Z, self._P = blocks.readout_atomwise(self._X, latent_dim) elif (self.FLAGS.readout == 'graph_gather'): self.Z, self._P = blocks.readout_graph_gather( self.X, self._X, latent_dim) self.loss = self.calLoss(self.P, self._P) self.lr = tf.Variable(0.0, trainable=False) self.opt = self.optimizer(self.lr, self.FLAGS.optimizer) self.sess = tf.Session() init = tf.global_variables_initializer() self.sess = tf.Session() self.sess.run(init) self.saver = tf.train.Saver(max_to_keep=1) tf.add_to_collection('pred_prop', self._P) tf.train.start_queue_runners(sess=self.sess) print("Network Ready")