Exemplo n.º 1
0
 def heatmaps_to_coords(xy_hm, zy_hm, xz_hm):
     xy = dsnt(xy_hm)
     zy = dsnt(zy_hm)
     xz = dsnt(xz_hm)
     x, y = xy.split(1, -1)
     z = 0.5 * (zy[:, :, 0:1] + xz[:, :, 1:2])
     return torch.cat([x, y, z], -1)
Exemplo n.º 2
0
    def forward(self, *inputs):
        t = inputs[0]
        t = self.in_cnn(t)

        self.xy_heatmaps = [flat_softmax(self.xy_hm_cnn(t))]
        self.zy_heatmaps = [flat_softmax(self.zy_hm_cnn(t))]
        self.xz_heatmaps = [flat_softmax(self.xz_hm_cnn(t))]

        xy = dsnt(self.xy_heatmaps[-1])
        zy = dsnt(self.zy_heatmaps[-1])
        xz = dsnt(self.xz_heatmaps[-1])

        x = xy.narrow(-1, 0, 1)
        y = xy.narrow(-1, 1, 1)
        z = 0.5 * (zy.narrow(-1, 0, 1) + xz.narrow(-1, 1, 1))

        return torch.cat([x, y, z], -1)