(self, x, edge_index, edge_weight=None, batch=None)
| 91 | p.data = next_p |
| 92 | |
| 93 | def forward(self, x, edge_index, edge_weight=None, batch=None): |
| 94 | aug1, aug2 = self.augmentor |
| 95 | x1, edge_index1, edge_weight1 = aug1(x, edge_index, edge_weight) |
| 96 | x2, edge_index2, edge_weight2 = aug2(x, edge_index, edge_weight) |
| 97 | |
| 98 | h1, h1_online = self.online_encoder(x1, edge_index1, edge_weight1) |
| 99 | h2, h2_online = self.online_encoder(x2, edge_index2, edge_weight2) |
| 100 | |
| 101 | g1 = global_add_pool(h1, batch) |
| 102 | h1_pred = self.predictor(h1_online) |
| 103 | g2 = global_add_pool(h2, batch) |
| 104 | h2_pred = self.predictor(h2_online) |
| 105 | |
| 106 | with torch.no_grad(): |
| 107 | _, h1_target = self.get_target_encoder()(x1, edge_index1, edge_weight1) |
| 108 | _, h2_target = self.get_target_encoder()(x2, edge_index2, edge_weight2) |
| 109 | g1_target = global_add_pool(h1_target, batch) |
| 110 | g2_target = global_add_pool(h2_target, batch) |
| 111 | |
| 112 | return g1, g2, h1_pred, h2_pred, g1_target, g2_target |
| 113 | |
| 114 | |
| 115 | def train(encoder_model, contrast_model, dataloader, optimizer): |
nothing calls this directly
no test coverage detected