27template<
typename AFloat>
 
   34    cudaStream_t s = Y.GetComputeStream();
 
   36    ::TMVA::DNN::Cuda::MeanSquaredError<<<gridDims, blockDims, 0, s>>>(
 
   40        weights.GetDataPointer(),
 
 
   47template<
typename AFloat>
 
   55   cudaStream_t s = 
output.GetComputeStream();
 
   56   ::TMVA::DNN::Cuda::MeanSquaredErrorGradients<<<gridDims, blockDims, 0, s>>>(
 
   60       weights.GetDataPointer(),
 
   63   dY.SetComputeStream(s);
 
 
   67template<
typename AFloat>
 
   75   cudaStream_t s = Y.GetComputeStream();
 
   76   ::TMVA::DNN::Cuda::CrossEntropy<<<gridDims, blockDims, 0, s>>>(
 
   80       weights.GetDataPointer(),
 
 
   87template<
typename AFloat>
 
   95   cudaStream_t s = 
output.GetComputeStream();
 
   96   ::TMVA::DNN::Cuda::CrossEntropyGradients<<<gridDims, blockDims, 0, s>>>(
 
  100       weights.GetDataPointer(),
 
  103   dY.SetComputeStream(s);
 
 
  107template<
typename AFloat>
 
  115   cudaStream_t s = Y.GetComputeStream();
 
  116   ::TMVA::DNN::Cuda::SoftmaxCrossEntropy<<<gridDims, blockDims, 0, s>>>(
 
  120       weights.GetDataPointer(),
 
 
  127template<
typename AFloat>
 
  135   cudaStream_t s = 
output.GetComputeStream();
 
  136   ::TMVA::DNN::Cuda::SoftmaxCrossEntropyGradients<<<gridDims, blockDims, 0, s>>>(
 
  140       weights.GetDataPointer(),
 
  143   dY.SetComputeStream(s);
 
 
static AFloat GetDeviceReturn()
Transfer the value in the device return buffer to the host.
static AFloat * GetDeviceReturnPointer()
Return device pointer to the device return buffer.
static void ResetDeviceReturn(AFloat value=0.0)
Set the return buffer on the device to the specified value.
static Scalar_t CrossEntropy(const Matrix_t &Y, const Matrix_t &output, const Matrix_t &weights)
Sigmoid transformation is implicitly applied, thus output should hold the linear activations of the l...
static void MeanSquaredErrorGradients(Matrix_t &dY, const Matrix_t &Y, const Matrix_t &output, const Matrix_t &weights)
static Scalar_t MeanSquaredError(const Matrix_t &Y, const Matrix_t &output, const Matrix_t &weights)
static Scalar_t SoftmaxCrossEntropy(const Matrix_t &Y, const Matrix_t &output, const Matrix_t &weights)
Softmax transformation is implicitly applied, thus output should hold the linear activations of the l...
static void CrossEntropyGradients(Matrix_t &dY, const Matrix_t &Y, const Matrix_t &output, const Matrix_t &weights)
static void SoftmaxCrossEntropyGradients(Matrix_t &dY, const Matrix_t &Y, const Matrix_t &output, const Matrix_t &weights)
static dim3 BlockDims2D()
static dim3 GridDims2D(int nrows, int ncols)
static dim3 BlockDims1D()
static dim3 GridDims1D(const AMatrix &A)
create variable transformations