Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
Dropout.hxx
Go to the documentation of this file.
1// @(#)root/tmva/tmva/dnn:$Id$
2// Author: Simon Pfreundschuh 10/07/16
3
4/*************************************************************************
5 * Copyright (C) 2016, Simon Pfreundschuh *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12 //////////////////////////////////////////////////////////////////
13 // Implementation of the activation functions for the reference //
14 // implementation. //
15 //////////////////////////////////////////////////////////////////
16
17
19#include "TRandom.h"
20
21namespace TMVA
22{
23namespace DNN
24{
25
26//______________________________________________________________________________
27
28template<typename Real_t>
29void TReference<Real_t>::DropoutForward(TMatrixT<Real_t> & B, TDescriptors*, TWorkspace*, Real_t dropoutProbability)
30{
31 size_t m,n;
32 m = B.GetNrows();
33 n = B.GetNcols();
34
35 for (size_t i = 0; i < m; i++) {
36 for (size_t j = 0; j < n; j++) {
38 if (r >= dropoutProbability) {
39 B(i,j) = 0.0;
40 } else {
41 B(i,j) /= dropoutProbability;
42 }
43 }
44 }
45}
46
47}
48}
ROOT::R::TRInterface & r
Definition Object.C:4
float Real_t
Definition RtypesCore.h:68
R__EXTERN TRandom * gRandom
Definition TRandom.h:62
static void DropoutForward(Tensor_t &A, TDescriptors *descriptors, TWorkspace *workspace, Scalar_t p)
Apply dropout with activation probability p to the given matrix A and scale the result by reciprocal ...
Int_t GetNrows() const
Int_t GetNcols() const
TMatrixT.
Definition TMatrixT.h:39
virtual Double_t Uniform(Double_t x1=1)
Returns a uniform deviate on the interval (0, x1).
Definition TRandom.cxx:672
const Int_t n
Definition legend1.C:16
create variable transformations
auto * m
Definition textangle.C:8