roi_pooling实现记录

chainer的实现

https://github.com/chainer/chainer/blob/master/chainer/functions/pooling/roi_pooling_2d.py
有cpu和gpu的分别实现

gpu的实现中使用了cuda.elementwise,追跟溯源。得到以下代码:

@memoize()
def elementwise(in_params, out_params, operation, name, **kwargs):
    """Creates an elementwise kernel function.
    This function uses :func:`~chainer.backends.cuda.memoize` to cache the
    kernel object, i.e. the resulting kernel object is cached for each argument
    combination and CUDA device.
    The arguments are the same as those for
    :class:`cupy.ElementwiseKernel`, except that the ``name`` argument is
    mandatory.
    """
    check_cuda_available()
    return cupy.ElementwiseKernel(
        in_params, out_params, operation, name, **kwargs)

所以chainer的roi_pooling就是用cupy实现的。本人再调试一下,放出测试代码。

你可能感兴趣的:(PYTHON,深度学习)