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.

LayerNormLink.py 2.2 kB

5 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from __future__ import absolute_import
  2. import ctypes
  3. from .._base import _LIB
  4. from .. import ndarray as _nd
  5. def layer_normalization(in_arr, ln_scale, ln_bias, mean, var, out_arr, eps, stream=None):
  6. assert isinstance(in_arr, _nd.NDArray)
  7. assert isinstance(ln_scale, _nd.NDArray)
  8. assert isinstance(ln_bias, _nd.NDArray)
  9. assert isinstance(mean, _nd.NDArray)
  10. assert isinstance(var, _nd.NDArray)
  11. assert isinstance(out_arr, _nd.NDArray)
  12. _LIB.DLGpuLayerNormalization(in_arr.handle, ln_scale.handle, ln_bias.handle, mean.handle,
  13. var.handle, out_arr.handle, ctypes.c_float(eps), stream.handle if stream else None)
  14. def layer_normalization_gradient(out_grads, in_arr, ln_scale, grad_arr, grad_scale, grad_bias,
  15. mean_arr, var_arr, eps, stream=None):
  16. assert isinstance(out_grads, _nd.NDArray)
  17. assert isinstance(in_arr, _nd.NDArray)
  18. assert isinstance(ln_scale, _nd.NDArray)
  19. assert isinstance(grad_arr, _nd.NDArray)
  20. assert isinstance(grad_scale, _nd.NDArray)
  21. assert isinstance(grad_bias, _nd.NDArray)
  22. assert isinstance(mean_arr, _nd.NDArray)
  23. assert isinstance(var_arr, _nd.NDArray)
  24. _LIB.DLGpuLayerNormalizationGradient(out_grads.handle, in_arr.handle, ln_scale.handle,
  25. grad_arr.handle, grad_scale.handle, grad_bias.handle,
  26. mean_arr.handle, var_arr.handle, ctypes.c_float(
  27. eps),
  28. stream.handle if stream else None)
  29. def layer_normalization_inference(in_arr, ln_scale, ln_bias, mean, var, out_arr, eps, stream=None):
  30. assert isinstance(in_arr, _nd.NDArray)
  31. assert isinstance(ln_scale, _nd.NDArray)
  32. assert isinstance(ln_bias, _nd.NDArray)
  33. assert isinstance(mean, _nd.NDArray)
  34. assert isinstance(var, _nd.NDArray)
  35. assert isinstance(out_arr, _nd.NDArray)
  36. _LIB.DLGpuLayerNormalizationInference(in_arr.handle, ln_scale.handle, ln_bias.handle, mean.handle,
  37. var.handle, out_arr.handle, ctypes.c_float(eps), stream.handle if stream else None)