Make _get_perspective_coeffs
device agnostic
#9082
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
This PR is an attempt to solve the issue mentioned in #9076 and explicitly accept tensor on any device as input for the function
_get_perspective_coeffs
.proposed solution
This PR proposes to cast
startpoints
andendpoints
asTensor
if aList[List[int]]
is passed as input. We then modify how thea_matrix
is build to avoid the for loop and make sure the construction of the matrix is compatible with torchscript. Theb_matrix
is then directly constructed fromstartpoints
(reshaping and modifying the precision).Testing
We add one test (
test_perspective_tensor_input
) to make sure the function is compatible with tensor inputs.pytest test/test_functional_tensor.py -vvv -k test_perspective ... 337 passed, 336 skipped, 21843 deselected in 5.75s (on CPU machine)