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 TRandom rand(time(nullptr));
36
37 for (size_t i = 0; i < m; i++) {
38 for (size_t j = 0; j < n; j++) {
39 Real_t r = rand.Uniform();
40 if (r >= dropoutProbability) {
41 B(i,j) = 0.0;
42 } else {
43 B(i,j) /= dropoutProbability;
44 }
45 }
46 }
47}
48
49}
50}
ROOT::R::TRInterface & r
Definition Object.C:4
float Real_t
Definition RtypesCore.h:68
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
This is the base class for the ROOT Random number generators.
Definition TRandom.h:27
const Int_t n
Definition legend1.C:16
create variable transformations
auto * m
Definition textangle.C:8