Add `nn.AdaptiveAvgPool1d` and `nn.AdaptiveAvgPool3d` (#5445)
* Generalize 'AdaptiveAvgPool' for 1~3 dims usage * Implement GPU version * Enable pooling with larger 'output_size' which is supported by PyTorch * Add docs for 'AdaptiveAvgPool1d' and 'AdaptiveAvgPool3d' * Add functional API for 'AdaptiveAvgPoolXd' * Add 'flow.adaptive_avg_poolxd' * Add test cases for 'flow.adaptive_avg_poolxd' * auto format by CI * Avoid using 'Shape::Count' in for loop * Change names of compute functions * Change 'AdaptivePoolNdGradOp' to functor * Register integer types for CUDA 'adaptive_avg_poolxd' kernel * Integrate 'adaptive_avg_poolxd' into 'nn.functional.interpolate' * Correct wrong 'AdaptiveAvgPoolXd' entries * Add missing 'not None' assertions for 'output_size' * Support tuple input for 'AdaptiveAvgPool1d' * Mark TODO for auto testing 'AdaptiveAvgPoolXd' * Denote return types for 'BackwardOpConfGenFn' * Combine test classes of 'AdaptiveAvgPoolXd' into one * Rename 'AvgXXXCompute' * auto format by CI * Simplify output shape inference * Delete the wrong 'if' block Co-authored-by:oneflow-ci-bot <ci-bot@oneflow.org> Co-authored-by:
oneflow-ci-bot <69100618+oneflow-ci-bot@users.noreply.github.com>
Showing
- docs/source/experimental.rst 5 additions, 0 deletionsdocs/source/experimental.rst
- oneflow/core/autograd/gradient_funcs/adaptive_pool.cpp 31 additions, 12 deletionsoneflow/core/autograd/gradient_funcs/adaptive_pool.cpp
- oneflow/core/framework/op_expr_helper.cpp 0 additions, 11 deletionsoneflow/core/framework/op_expr_helper.cpp
- oneflow/core/framework/op_expr_helper.h 0 additions, 3 deletionsoneflow/core/framework/op_expr_helper.h
- oneflow/core/functional/functional_api.yaml 19 additions, 0 deletionsoneflow/core/functional/functional_api.yaml
- oneflow/core/functional/impl/nn_functor.cpp 39 additions, 0 deletionsoneflow/core/functional/impl/nn_functor.cpp
- oneflow/core/functional/impl/nn_grad_functor.cpp 30 additions, 0 deletionsoneflow/core/functional/impl/nn_grad_functor.cpp
- oneflow/python/nn/modules/adaptive_pool.py 159 additions, 28 deletionsoneflow/python/nn/modules/adaptive_pool.py
- oneflow/python/nn/modules/interpolate.py 11 additions, 4 deletionsoneflow/python/nn/modules/interpolate.py
- oneflow/python/test/modules/test_adaptive_pool.py 715 additions, 15 deletionsoneflow/python/test/modules/test_adaptive_pool.py
- oneflow/python/test/modules/test_interpolate.py 297 additions, 6 deletionsoneflow/python/test/modules/test_interpolate.py
- oneflow/user/kernels/adaptive_pool_cpu_kernel.cpp 205 additions, 116 deletionsoneflow/user/kernels/adaptive_pool_cpu_kernel.cpp
- oneflow/user/kernels/adaptive_pool_gpu_kernel.cu 166 additions, 91 deletionsoneflow/user/kernels/adaptive_pool_gpu_kernel.cu
- oneflow/user/ops/adaptive_pool_op.cpp 74 additions, 12 deletionsoneflow/user/ops/adaptive_pool_op.cpp
Please register or sign in to comment