You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

CudnnConv2d.py 1.3 kB

5 years ago
1234567891011121314151617181920212223242526272829
  1. from __future__ import absolute_import
  2. import ctypes
  3. from .._base import _LIB
  4. from .. import ndarray as _nd
  5. def CuDNN_conv2d(in_arr_x, in_arr_f, out_arr, padding=0, stride=1, stream=None):
  6. assert isinstance(in_arr_x, _nd.NDArray)
  7. assert isinstance(in_arr_f, _nd.NDArray)
  8. assert isinstance(out_arr, _nd.NDArray)
  9. _LIB.CuDNN_DLGpuConv2d(in_arr_x.handle, in_arr_f.handle,
  10. out_arr.handle, padding, stride, stream.handle if stream else None)
  11. def CuDNN_conv2d_gradient_of_filter(in_arr_x, in_gradient_y, out_gradient_f, padding=0, stride=1, stream=None):
  12. assert isinstance(in_arr_x, _nd.NDArray)
  13. assert isinstance(in_gradient_y, _nd.NDArray)
  14. assert isinstance(out_gradient_f, _nd.NDArray)
  15. _LIB.CuDNN_DLGpuConv2d_Gradient_of_Filter(
  16. in_arr_x.handle, in_gradient_y.handle, out_gradient_f.handle, padding, stride, stream.handle if stream else None)
  17. def CuDNN_conv2d_gradient_of_data(in_arr_f, in_gradient_y, out_gradient_x, padding=0, stride=1, stream=None):
  18. assert isinstance(in_arr_f, _nd.NDArray)
  19. assert isinstance(in_gradient_y, _nd.NDArray)
  20. assert isinstance(out_gradient_x, _nd.NDArray)
  21. _LIB.CuDNN_DLGpuConv2d_Gradient_of_Data(
  22. in_arr_f.handle, in_gradient_y.handle, out_gradient_x.handle, padding, stride, stream.handle if stream else None)