16 #if defined(_HAS_CUDA_) 23 #if defined(_HAS_CUDA_) 24 struct cudnn_dropout_settings_t {
26 cudnnTensorDescriptor_t xdesc;
27 cudnnTensorDescriptor_t ydesc;
30 struct cudnn_dropout_grad_settings_t {
32 cudnnTensorDescriptor_t dxdesc;
33 cudnnTensorDescriptor_t dydesc;
36 struct cudnn_dropout_shared_settings_t {
37 cudnnDropoutDescriptor_t dropoutDesc;
40 size_t stateSizeInBytes;
41 size_t reserveSpaceSizeInBytes;
46 void dropout(Tensor<T> *x, Tensor<T> *out, Tensor<T> *mask,
float dropout_rate);
49 void dropout_grad(Tensor<T> *grad, Tensor<T> *out, Tensor<T> *mask);
51 #if defined(_HAS_CUDA_) 53 void dropout_device(Tensor<T> *x, Tensor<T> *out, cudnn_dropout_settings_t settings, cudnn_dropout_shared_settings_t shared);
56 void dropout_grad_device(Tensor<T> *grad, Tensor<T> *out, cudnn_dropout_grad_settings_t settings, cudnn_dropout_shared_settings_t shared);