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.

Conv2dLink.py 1.7 kB

5 years ago
123456789101112131415161718192021222324252627282930313233
  1. from __future__ import absolute_import
  2. import ctypes
  3. from .._base import _LIB
  4. from .. import ndarray as _nd
  5. def conv2d(in_arr_x, in_arr_f, out_arr, workspace_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. assert isinstance(workspace_arr, _nd.NDArray)
  10. _LIB.DLGpuConv2d(in_arr_x.handle, in_arr_f.handle,
  11. out_arr.handle, workspace_arr.handle, padding, stride, stream.handle if stream else None)
  12. def conv2d_gradient_of_filter(in_arr_x, in_gradient_y, out_gradient_f, workspace_im2col, workspace_batch_filter, padding=0, stride=1, stream=None):
  13. assert isinstance(in_arr_x, _nd.NDArray)
  14. assert isinstance(in_gradient_y, _nd.NDArray)
  15. assert isinstance(out_gradient_f, _nd.NDArray)
  16. assert isinstance(workspace_im2col, _nd.NDArray)
  17. assert isinstance(workspace_batch_filter, _nd.NDArray)
  18. _LIB.DLGpuConv2d_Gradient_of_Filter(in_arr_x.handle, in_gradient_y.handle, out_gradient_f.handle,
  19. workspace_im2col.handle, workspace_batch_filter.handle, padding, stride, stream.handle if stream else None)
  20. def conv2d_gradient_of_data(in_arr_f, in_gradient_y, out_gradient_x, workspace_im2col, padding=0, stride=1, stream=None):
  21. assert isinstance(in_arr_f, _nd.NDArray)
  22. assert isinstance(in_gradient_y, _nd.NDArray)
  23. assert isinstance(out_gradient_x, _nd.NDArray)
  24. assert isinstance(workspace_im2col, _nd.NDArray)
  25. _LIB.DLGpuConv2d_Gradient_of_Data(
  26. in_arr_f.handle, in_gradient_y.handle, out_gradient_x.handle, workspace_im2col.handle, padding, stride, stream.handle if stream else None)