|
| ReLULayer (CudaDnn< T > cuda, Log log, LayerParameter p) |
| The ReLULayer constructor. More...
|
|
override void | LayerSetUp (BlobCollection< T > colBottom, BlobCollection< T > colTop) |
| Setup the layer to run in either Engine.CAFFE or Engine.CUDNN mode. More...
|
|
override void | Reshape (BlobCollection< T > colBottom, BlobCollection< T > colTop) |
| Reshape the bottom (input) and top (output) blobs. More...
|
|
| NeuronLayer (CudaDnn< T > cuda, Log log, LayerParameter p) |
| The NeuronLayer constructor. More...
|
|
| Layer (CudaDnn< T > cuda, Log log, LayerParameter p) |
| The Layer constructor. More...
|
|
void | Dispose () |
| Releases all GPU and host resources used by the Layer. More...
|
|
virtual void | ConnectLoss (LossLayer< T > layer) |
| Called to connect the loss OnLoss event to a specified layer (typically the data layer). More...
|
|
virtual BlobCollection< T > | PreProcessInput (PropertySet customInput, out int nSeqLen, BlobCollection< T > colBottom=null) |
| The PreprocessInput allows derivative data layers to convert a property set of input data into the bottom blob collection used as intput. More...
|
|
virtual bool | PreProcessInput (string strEncInput, int? nDecInput, BlobCollection< T > colBottom) |
| Preprocess the input data for the RUN phase. More...
|
|
virtual List< Tuple< string, int, double > > | PostProcessOutput (Blob< T > blobSofmtax, int nK=1) |
| The PostProcessOutput allows derivative data layers to post-process the results, converting them back into text results (e.g., detokenizing). More...
|
|
virtual List< Tuple< string, int, double > > | PostProcessLogitsOutput (int nCurIdx, Blob< T > blobLogits, Layer< T > softmax, int nAxis, int nK=1) |
| The PostProcessLogitsOutput allows derivative data layers to post-process the results, converting them back into text results (e.g., detokenizing). More...
|
|
virtual string | PostProcessFullOutput (Blob< T > blobSoftmax) |
| The PostProcessFullOutput allows derivative data layers to post-process the results, usually be detokenizing the data in the blobSoftmax. More...
|
|
virtual string | PostProcessOutput (int nIdx) |
| Convert the index to the word. More...
|
|
virtual void | SetOnDebug (EventHandler< GetWorkBlobArgs< T > > fn) |
| Set the OnDebug event. More...
|
|
virtual void | ResetOnDebug (EventHandler< GetWorkBlobArgs< T > > fn) |
| Reset the OnDebug event, disabling it. More...
|
|
virtual bool | ReInitializeParameters (WEIGHT_TARGET target) |
| Re-initialize the parameters of the layer. More...
|
|
void | SetNetReshapeRequest () |
| Called by the Net when requesting a reshape. More...
|
|
void | SetPhase (Phase phase) |
| Changes the layer's Phase to the one specified. More...
|
|
void | Setup (BlobCollection< T > colBottom, BlobCollection< T > colTop) |
| Implements common Layer setup functionality. More...
|
|
virtual void | SetNetParameterUsed (NetParameter np) |
| This function allows other layers to gather needed information from the NetParameters if any, and is called when initialzing the Net. More...
|
|
void | ConvertToBase (BlobCollection< T > col) |
| ConvertToBase converts any blobs in a collection that are in half size to the base size. More...
|
|
double | Forward (BlobCollection< T > colBottom, BlobCollection< T > colTop) |
| Given the bottom (input) Blobs, this function computes the top (output) Blobs and the loss. More...
|
|
void | Backward (BlobCollection< T > colTop, List< bool > rgbPropagateDown, BlobCollection< T > colBottom) |
| Given the top Blob error gradients, compute the bottom Blob error gradients. More...
|
|
double | loss (int nTopIdx) |
| Returns the scalar loss associated with the top Blob at a given index. More...
|
|
void | set_loss (int nTopIdx, double dfLoss) |
| Sets the loss associated with a top Blob at a given index. More...
|
|
virtual bool | AllowForceBackward (int nBottomIdx) |
| Return whether to allow More...
|
|
bool | param_propagate_down (int nParamIdx) |
| Returns whether or not the Layer should compute gradients w.r.t. a parameter at a particular index given by a parameter index. More...
|
|
void | set_param_propagate_down (int nParamIdx, bool bPropagate) |
| Sets whether or not the Layer should compute gradients w.r.t. a parameter at a particular index given by a parameter index. More...
|
|
void | SetEnablePassthrough (bool bEnable) |
| Enables/disables the pass-through mode. More...
|
|
|
override void | dispose () |
| Releases all GPU and host resources used by the Layer. More...
|
|
override void | forward (BlobCollection< T > colBottom, BlobCollection< T > colTop) |
| Computes the forward calculation using either the Engine.CAFFE or Engine.CUDNN mode. More...
|
|
override void | backward (BlobCollection< T > colTop, List< bool > rgbPropagateDown, BlobCollection< T > colBottom) |
| Computes the error gradient w.r.t the inputs using either the Engine.CAFFE or Engine.CUDNN mode. More...
|
|
void | forward_cuda (BlobCollection< T > colBottom, BlobCollection< T > colTop) |
| Computes the forward calculation using the Engine.CAFFE mode. More...
|
|
void | backward_cuda (BlobCollection< T > colTop, List< bool > rgbPropagateDown, BlobCollection< T > colBottom) |
| Computes the error gradient w.r.t the inputs using the Engine.CAFFE mode. More...
|
|
void | forward_cudnn (BlobCollection< T > colBottom, BlobCollection< T > colTop) |
| Computes the forward calculation using the Engine.CUDNN mode. More...
|
|
void | backward_cudnn (BlobCollection< T > colTop, List< bool > rgbPropagateDown, BlobCollection< T > colBottom) |
| Computes the error gradient w.r.t the inputs using the Engine.CUDNN mode. More...
|
|
void | dispose (ref Layer< T > l) |
| Helper method used to dispose internal layers. More...
|
|
void | dispose (ref Blob< T > b) |
| Helper method used to dispose internal blobs. More...
|
|
void | dispose (ref BlobCollection< T > rg, bool bSetToNull=true) |
| Dispose the blob collection. More...
|
|
GetIterationArgs | getCurrentIteration () |
| Fires the OnGetIteration event to query the current iteration. More...
|
|
long | convert_to_full (int nCount, long hMem) |
| Convert half memory to full memory. More...
|
|
void | convert (BlobCollection< T > col) |
| Convert a collection of blobs from / to half size. More...
|
|
virtual bool | reshapeNeeded (BlobCollection< T > colBottom, BlobCollection< T > colTop, bool bReset=true) |
| Tests the shapes of both the bottom and top blobs and if they are the same as the previous sizing, returns false indicating that no reshape is needed. More...
|
|
bool | compareShapes (BlobCollection< T > colBottom, BlobCollection< T > colTop) |
| Compare the shapes of the top and bottom and if the same, return true, otherwise false. More...
|
|
void | setShapes (BlobCollection< T > colBottom, BlobCollection< T > colTop) |
| Set the internal shape sizes - used when determining if a Reshape is necessary. More...
|
|
virtual void | setup_internal_blobs (BlobCollection< T > col) |
| Derivative layers should add all internal blobws to the 'col' provided. More...
|
|
void | CheckBlobCounts (BlobCollection< T > colBottom, BlobCollection< T > colTop) |
| Called by the Layer::Setup function to check the number of bottom (input) and top (output) Blobs provided match the expected number of blobs expected via the {EactNum,Min,Max}{Bottom,Top}Blobs functions. More...
|
|
void | SetLossWeights (BlobCollection< T > colTop) |
| Called by Layer::Setup to initialize the weights associated with any top (output) Blobs in the loss function ans store non-zero loss weights in the diff Blob. More...
|
|
LayerParameter | convertLayerParam (LayerParameter pChild, LayerParameter pParent) |
| Called to convert a parent LayerParameterEx, used in blob sharing, with a child layer parameter. More...
|
|
bool | shareParameter (Blob< T > b, List< int > rgMinShape, bool bAllowEndsWithComparison=false) |
| Attempts to share a parameter Blob if another parameter Blob with the same name and accpetable size is found. More...
|
|
bool | shareLayerBlob (Blob< T > b, List< int > rgMinShape) |
| Attempts to share a Layer Blob if another parameter Blob with the same name and acceptable size is found. More...
|
|
bool | shareLayerBlobs (Layer< T > layer) |
| Attempts to share the Layer blobs and internal_blobs with matching names and sizes with those in another matching layer. More...
|
|
virtual WorkspaceArgs | getWorkspace () |
| Returns the WorkspaceArgs used to share a workspace between Layers. More...
|
|
virtual bool | setWorkspace (ulong lSizeInBytes) |
| Sets the workspace size (in items) and returns true if set, false otherwise. More...
|
|
void | check_nan (Blob< T > b) |
| Checks a Blob for NaNs and throws an exception if found. More...
|
|
T | convert (double df) |
| Converts a double to a generic. More...
|
|
T | convert (float f) |
| Converts a float to a generic. More...
|
|
double | convertD (T df) |
| Converts a generic to a double value. More...
|
|
float | convertF (T df) |
| Converts a generic to a float value. More...
|
|
double[] | convertD (T[] rg) |
| Converts an array of generic values into an array of double values. More...
|
|
T[] | convert (double[] rg) |
| Converts an array of double values into an array of generic values. More...
|
|
float[] | convertF (T[] rg) |
| Converts an array of float values into an array of generic values. More...
|
|
T[] | convert (float[] rg) |
| Converts an array of float values into an array of generic values. More...
|
|
int | val_at (T[] rg, int nIdx) |
| Returns the integer value at a given index in a generic array. More...
|
|
Size | size_at (Blob< T > b) |
| Returns the Size of a given two element Blob, such as one that stores Blob size information. More...
|
|
|
static Layer< T > | Create (CudaDnn< T > cuda, Log log, LayerParameter p, CancelEvent evtCancel, IXDatabaseBase db=null, TransferInput trxinput=null) |
| Create a new Layer based on the LayerParameter. More...
|
|
LayerParameter.LayerType | m_type = LayerParameter.LayerType._MAX |
| Specifies the Layer type. More...
|
|
CudaDnn< T > | m_cuda |
| Specifies the CudaDnn connection to Cuda. More...
|
|
Log | m_log |
| Specifies the Log for output. More...
|
|
LayerParameter | m_param |
| Specifies the LayerParameter describing the Layer. More...
|
|
Phase | m_phase |
| Specifies the Phase under which the Layer is run. More...
|
|
BlobCollection< T > | m_colBlobs |
| Specifies the learnable parameter Blobs of the Layer. More...
|
|
BlobCollection< T > | m_colInternalBlobs = new BlobCollection<T>() |
| Specifies internal blobs used by the layer. More...
|
|
DictionaryMap< bool > | m_rgbParamPropagateDown |
| Specifies whether or not to compute the learnable diff of each parameter Blob. More...
|
|
DictionaryMap< double > | m_rgLoss |
| Specifies the loss values that indeicate whether each top (output) Blob has a non-zero weight in the objective function.. More...
|
|
T | m_tOne |
| Specifies a generic type equal to 1.0. More...
|
|
T | m_tZero |
| Specifies a generic type equal to 0.0. More...
|
|
bool | m_bEnablePassthrough = false |
| Enables/disables the pass-through mode for the layer. Default = false. More...
|
|
bool | m_bUseHalfSize = false |
| Specifies that the half size of the top (if any) should be converted to the base size. More...
|
|
bool | m_bConvertTopOnFwd = false |
| Specifies whether or not the layer should convert the top on the forward pass when using half sized memory (typically only done with input data). More...
|
|
bool | m_bConvertTopOnBwd = true |
| Specifies whether or not to convert the top on the backward pass when using half sized memory (typically not done on loss layers). More...
|
|
bool | m_bConvertBottom = true |
| Specifies whether or not the layer should convert the bottom when using half sized memory. More...
|
|
bool | m_bReshapeOnForwardNeeded = true |
| Specifies whether or not the reshape on forward is needed or not. More...
|
|
bool | m_bNetReshapeRequest = false |
| Specifies whether the reshape is requested from a Net.Reshape call or not. More...
|
|
LayerParameter.? LayerType | m_parentLayerType = null |
| Specifies the layer type of the parent. More...
|
|
override int | ExactNumBottomBlobs [get] |
| Returns the exact number of required bottom (input) Blobs: input. More...
|
|
override int | ExactNumTopBlobs [get] |
| Returns the exact number of required top (output) Blobs: output. More...
|
|
LayerParameter.? LayerType | parent_layer_type [get] |
| Optionally, specifies the parent layer type (e.g. LOSS, etc.) More...
|
|
virtual bool | SupportsPreProcessing [get] |
| Should return true when PreProcessing methods are overriden. More...
|
|
virtual bool | SupportsPostProcessing [get] |
| Should return true when pre PostProcessing methods are overriden. More...
|
|
virtual bool | SupportsPostProcessingLogits [get] |
| Should return true when pre PostProcessingLogits methods are overriden. More...
|
|
virtual bool | SupportsPostProcessingFullOutput [get] |
| Should return true when PostProcessingFullOutput is supported. More...
|
|
BlobCollection< T > | blobs [get] |
| Returns the collection of learnable parameter Blobs for the Layer. More...
|
|
BlobCollection< T > | internal_blobs [get] |
| Returns the collection of internal Blobs used by the Layer. More...
|
|
LayerParameter | layer_param [get] |
| Returns the LayerParameter for this Layer. More...
|
|
LayerParameter.LayerType | type [get] |
| Returns the LayerType of this Layer. More...
|
|
virtual int | ExactNumBottomBlobs [get] |
| Returns the exact number of bottom (input) Blobs required by the Layer, or -1 if no exact number is required. More...
|
|
virtual int | MinBottomBlobs [get] |
| Returns the minimum number of bottom (input) Blobs required by the Layer, or -1 if no minimum number is required. More...
|
|
virtual int | MaxBottomBlobs [get] |
| Returns the maximum number of bottom (input) Blobs required by the Layer, or -1 if no maximum number is required. More...
|
|
virtual int | ExactNumTopBlobs [get] |
| Returns the exact number of top (output) Blobs required by the Layer, or -1 if no exact number is required. More...
|
|
virtual int | MinTopBlobs [get] |
| Returns the minimum number of top (output) Blobs required by the Layer, or -1 if no minimum number is required. More...
|
|
virtual int | MaxTopBlobs [get] |
| Returns the maximum number of top (output) Blobs required by the Layer, or -1 if no maximum number is required. More...
|
|
virtual bool | EqualNumBottomTopBlobs [get] |
| Returns true if the Layer requires and equal number of bottom (input) and top (output) Blobs. More...
|
|
virtual bool | AutoTopBlobs [get] |
| Return whether "anonymous" top (output) Blobs are created automatically by the Layer. More...
|
|
double | forward_timing [get] |
| Returns the timing of the last forward pass in milliseconds. More...
|
|
double | forward_timing_average [get] |
| Returns the average timing of the forward passes in milliseconds. More...
|
|
double | backward_timing [get] |
| Returns the timing of the last backward pass in milliseconds. More...
|
|
double | backward_timing_average [get] |
| Returns the average timing of the backward passes in milliseconds. More...
|
|
EventHandler< WorkspaceArgs > | OnGetWorkspace |
| Specifies the OnGetWorkspace event that fires when the getWorkspace() function is called by a layer to get a shareable workspace to conserve GPU memory. More...
|
|
EventHandler< WorkspaceArgs > | OnSetWorkspace |
| Specifies the OnSetWorkspace event that fires when the setWorkspace() function is called by a layer to get a shareable workspace to conserve GPU memory. More...
|
|
EventHandler< GetIterationArgs > | OnGetIteration |
| Specifies the OnGetIteration event that fires when a layer needs to get the current iteration from the solver. More...
|
|
EventHandler< GetWorkBlobArgs< T > > | OnDebug |
| Specifies the OnGetWorkBlob event that is only supported when debugging to get a work blob from the primary Net holding this layer. More...
|
|
The ReLULayer computes the "Rectifier Linear Unit" ReLULayer non-linearity, a classic for neural networks. This layer is initialized with the MyCaffe.param.ReLUParameter.
Computation:
Note that the gradient vanishes as the values move away from 0. The ReLULayer is often a better choice for this reason.
- See also
- Empirical Evaluation of Rectified Activations in Convolutional Network by Bing Xu, Naiyan Wang, Tianqi Chen, and Mu Li, 2015.
-
Revise Saturated Activation Functions by Bing Xu, Ruitong Huang, and Mu Li, 2016.
-
Rectifier Nonlinearities Improve Neural Network Acoustic Models by Andrew L. Maas, Awni Y. Hannun, and Andrew Y. Ng, 2013.
- Template Parameters
-
T | Specifies the base type float or double. Using float is recommended to conserve GPU memory. |
Definition at line 26 of file ReLULayer.cs.