Implementations of the custom layers in C++ and Native Pytorch for CPU support. #212
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.
Implementation of Correlation, Resample2D layer and the ChannelNorm layer in native Pytorch and C++ to support inference on CPU.
The main bottleneck is the Correlation Layer on which the FlowNetC architecture relies.
This PR provides 2 implementations of the Correlation layer.
-PyTorch native implementation. This requires no extra setup
-Optimized C++ implementation for inference on CPU.
Also provided are Pytorch native implementations for Resample2D and Channelnorm.
Since the Pytorch implementation is quite efficient (compeletely vectorized) with no
python for loops, C++ implementation is not needed. These layers also work by default
on the GPU dependening on if the input tensors are on gpu and are slightly slower than
the provided cuda implementation.
See comments at the top of models.py and networks/FlowNetC.py for more details and
how to switch to CPU mode.
Backward passes are not yet implemented but will be added in the future.
run_a_pair.py is replaced with a generic script called test.py to simply test functionality.
run_a_pair.py had hardcoded paths. Also 2 frames from sintel added in test_images dir so that
functionality and setup can be swiftly checked.
Resolves: #190