(self, motion)
| 101 | assert len(set(self.body_slice)) == input_dim |
| 102 | |
| 103 | def forward(self, motion): |
| 104 | head_feat = self.head_embed(motion[:, :, self.head_slice].contiguous()) |
| 105 | stem_feat = self.stem_embed(motion[:, :, self.stem_slice].contiguous()) |
| 106 | larm_feat = self.larm_embed(motion[:, :, self.larm_slice].contiguous()) |
| 107 | rarm_feat = self.rarm_embed(motion[:, :, self.rarm_slice].contiguous()) |
| 108 | lleg_feat = self.lleg_embed(motion[:, :, self.lleg_slice].contiguous()) |
| 109 | rleg_feat = self.rleg_embed(motion[:, :, self.rleg_slice].contiguous()) |
| 110 | root_feat = self.root_embed(motion[:, :, self.root_slice].contiguous()) |
| 111 | body_feat = self.body_embed(motion[:, :, self.body_slice].contiguous()) |
| 112 | feat = torch.cat((head_feat, stem_feat, larm_feat, rarm_feat, |
| 113 | lleg_feat, rleg_feat, root_feat, body_feat), |
| 114 | dim=-1) |
| 115 | return feat |
| 116 | |
| 117 | |
| 118 | class PoseDecoder(nn.Module): |
nothing calls this directly
no outgoing calls
no test coverage detected