#pragma once #include "cpu/roi_align_kernel.h" #ifdef WITH_CUDA #include "cuda/roi_align_kernel.h" #endif #ifdef WITH_HIP #include "hip/roi_align_kernel.h" #endif namespace vision { namespace ops { // C++ Forward at::Tensor roi_align( const at::Tensor& input, const at::Tensor& rois, double spatial_scale, int64_t pooled_height, int64_t pooled_width, int64_t sampling_ratio, bool aligned); // Autocast Forward #if defined(WITH_CUDA) || defined(WITH_HIP) at::Tensor roi_align_autocast( const at::Tensor& input, const at::Tensor& rois, double spatial_scale, int64_t pooled_height, int64_t pooled_width, int64_t sampling_ratio, bool aligned); #endif // C++ Backward at::Tensor _roi_align_backward( const at::Tensor& grad, const at::Tensor& rois, double spatial_scale, int64_t pooled_height, int64_t pooled_width, int64_t batch_size, int64_t channels, int64_t height, int64_t width, int64_t sampling_ratio, bool aligned); // Autograd Forward and Backward at::Tensor roi_align_autograd( const at::Tensor& input, const at::Tensor& rois, double spatial_scale, int64_t pooled_height, int64_t pooled_width, int64_t sampling_ratio, bool aligned); at::Tensor roi_align_backward_autograd( const at::Tensor& grad, const at::Tensor& rois, double spatial_scale, int64_t pooled_height, int64_t pooled_width, int64_t batch_size, int64_t channels, int64_t height, int64_t width, int64_t sampling_ratio, bool aligned); } // namespace ops } // namespace vision