Spaces:
Paused
Paused
| // Copyright (c) OpenMMLab. All rights reserved. | |
| // Modified from | |
| // https://github.com/chrdiller/pyTorchChamferDistance/blob/master/chamfer_distance/chamfer_distance.cpp | |
| void chamfer_distance_forward_impl(const Tensor xyz1, const Tensor xyz2, | |
| const Tensor dist1, const Tensor dist2, | |
| const Tensor idx1, const Tensor idx2) { | |
| DISPATCH_DEVICE_IMPL(chamfer_distance_forward_impl, xyz1, xyz2, dist1, dist2, | |
| idx1, idx2); | |
| } | |
| void chamfer_distance_backward_impl(const Tensor xyz1, const Tensor xyz2, | |
| Tensor idx1, Tensor idx2, Tensor graddist1, | |
| Tensor graddist2, Tensor gradxyz1, | |
| Tensor gradxyz2) { | |
| DISPATCH_DEVICE_IMPL(chamfer_distance_backward_impl, xyz1, xyz2, idx1, idx2, | |
| graddist1, graddist2, gradxyz1, gradxyz2); | |
| } | |
| void chamfer_distance_forward(const Tensor xyz1, const Tensor xyz2, | |
| const Tensor dist1, const Tensor dist2, | |
| const Tensor idx1, const Tensor idx2) { | |
| chamfer_distance_forward_impl(xyz1, xyz2, dist1, dist2, idx1, idx2); | |
| } | |
| void chamfer_distance_backward(const Tensor xyz1, const Tensor xyz2, | |
| Tensor idx1, Tensor idx2, Tensor graddist1, | |
| Tensor graddist2, Tensor gradxyz1, | |
| Tensor gradxyz2) { | |
| chamfer_distance_backward_impl(xyz1, xyz2, idx1, idx2, graddist1, graddist2, | |
| gradxyz1, gradxyz2); | |
| } | |