Exemplo n.º 1
0
void PoolBC01CuDNN<T>::bprop(const T *imgs, const T* poolout,
                             const T *poolout_d, T *imgs_d) {
  CUDNN_CHECK(cudnnPoolingBackward(
    CUDNN::handle(), pool_desc, &CUDNN::one, poolout_desc, poolout,
    poolout_desc, poolout_d, imgs_desc, imgs, &CUDNN::zero, imgs_desc, imgs_d
  ));
}
Exemplo n.º 2
0
 virtual void Backprop(bool prop_grad,
                       const std::vector<Node<gpu>*> &nodes_in,
                       const std::vector<Node<gpu>*> &nodes_out,
                       ConnectState<gpu> *p_cstate) {
   mshadow::Tensor<gpu,4> &tmp = p_cstate->states[0];
   float alpha = 1.0f;
   float beta = 0.0f;
   if (prop_grad) {
     CUDA_CHECK(cudnnPoolingBackward(handle_, pooling_desc_, &alpha,
                                     out_desc_, tmp.dptr_,
                                     out_desc_, nodes_out[0]->data.dptr_,
                                     in_desc_, nodes_in[0]->data.dptr_, &beta,
                                     in_desc_, nodes_in[0]->data.dptr_));
   }
 }