Ejemplo n.º 1
0
 public static void SoftmaxForward(DNNSoftmaxAlgorithm algorithm, DNNSoftmaxMode mode, Tensor x, Tensor y)
 {
     using (var dnn = CudaHelpers.TSContextForTensor(x).DNNForTensor(x))
     {
         using (var xPtr = GetDeviceVar(x))
             using (var yPtr = GetDeviceVar(y))
                 using (var xDesc = GetDescriptor(x))
                     using (var yDesc = GetDescriptor(y))
                     {
                         dnn.Value.SoftmaxForward((cudnnSoftmaxAlgorithm)algorithm, (cudnnSoftmaxMode)mode, 1,
                                                  xDesc, xPtr,
                                                  0,
                                                  yDesc, yPtr);
                     }
     }
 }
Ejemplo n.º 2
0
 public static void SoftmaxBackward(DNNSoftmaxAlgorithm algorithm, DNNSoftmaxMode mode, Tensor y, Tensor dx, Tensor dy)
 {
     using (var dnn = CudaHelpers.TSContextForTensor(y).DNNForTensor(y))
     {
         using (var yPtr = GetDeviceVar(y))
             using (var dxPtr = GetDeviceVar(dx))
                 using (var dyPtr = GetDeviceVar(dy))
                     using (var yDesc = GetDescriptor(y))
                         using (var dxDesc = GetDescriptor(dx))
                             using (var dyDesc = GetDescriptor(dy))
                             {
                                 dnn.Value.SoftmaxBackward((cudnnSoftmaxAlgorithm)algorithm, (cudnnSoftmaxMode)mode, 1,
                                                           yDesc, yPtr,
                                                           dyDesc, dyPtr,
                                                           0,
                                                           dxDesc, dxPtr);
                             }
     }
 }