(self, inputs, t)
| 223 | return emb |
| 224 | |
| 225 | def forward(self, inputs, t): |
| 226 | |
| 227 | temb = self.embedf(self.get_timestep_embedding(t, inputs.device))[:,:,None].expand(-1,-1,inputs.shape[-1]) |
| 228 | import pdb |
| 229 | pdb.set_trace() |
| 230 | # inputs : [B, in_channels + S, N] |
| 231 | coords, features = inputs[:, :3, :].contiguous(), inputs |
| 232 | coords_list, in_features_list = [], [] |
| 233 | for i, sa_blocks in enumerate(self.sa_layers): |
| 234 | in_features_list.append(features) |
| 235 | coords_list.append(coords) |
| 236 | if i == 0: |
| 237 | features, coords, temb = sa_blocks ((features, coords, temb)) |
| 238 | else: |
| 239 | features, coords, temb = sa_blocks ((torch.cat([features,temb],dim=1), coords, temb)) |
| 240 | in_features_list[0] = inputs[:, 3:, :].contiguous() |
| 241 | if self.global_att is not None: |
| 242 | features = self.global_att(features) |
| 243 | for fp_idx, fp_blocks in enumerate(self.fp_layers): |
| 244 | features, coords, temb = fp_blocks((coords_list[-1-fp_idx], coords, torch.cat([features,temb],dim=1), in_features_list[-1-fp_idx], temb)) |
| 245 | |
| 246 | return self.classifier(features) |
| 247 | |
| 248 |
nothing calls this directly
no test coverage detected