示例#1
0
    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")
示例#2
0
    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")
示例#3
0
    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")