ConvNet
1.0
A GPU-based C++ implementation of Convolutional Neural Nets
|
Implements a convolutional edge. More...
#include <conv_edge.h>
Public Member Functions | |
ConvEdge (const config::Edge &edge_config) | |
virtual void | AllocateMemory (bool fprop_only) |
Allocate memory for the model. More... | |
virtual void | ComputeUp (Matrix &input, Matrix &output, bool overwrite) |
Computes the output layer state given the input. More... | |
virtual void | ComputeDown (Matrix &deriv_output, Matrix &input, Matrix &output, Matrix &deriv_input, bool overwrite) |
Computes the derivative w.r.t the inputs of this edge given the derivative w.r.t the outputs of this edge. More... | |
virtual void | ComputeOuter (Matrix &input, Matrix &deriv_output) |
Computes the gradient for the weights and biases. More... | |
virtual void | SetTiedTo (Edge *e) |
Sets the edge to be tied to another edge. More... | |
virtual void | DisplayWeights () |
Displays the weights. More... | |
virtual int | GetNumModules () const |
Returns the number of modules. More... | |
virtual void | SetImageSize (int image_size) |
Set the spatial size of the input to this edge. More... | |
int | GetKernelSize () const |
int | GetStride () const |
int | GetPadding () const |
int | GetPartialSum () const |
bool | GetSharedBias () const |
Public Member Functions inherited from EdgeWithWeight | |
EdgeWithWeight (const config::Edge &edge_config) | |
virtual void | Initialize () |
Initialize the weights and biases. More... | |
virtual void | SaveParameters (hid_t file) |
Write the weights and biases in an hdf5 file. More... | |
virtual void | LoadParameters (hid_t file) |
Load the weights and biases from an hdf5 file. More... | |
virtual void | LoadParameters (hid_t file, const string &edge_name) |
virtual float | GetRMSWeight () |
Returns the root mean square weight value. More... | |
virtual void | ReduceLearningRate (float factor) |
Reduce the learning rate by factor. More... | |
virtual bool | HasNoParameters () const |
Returns whether the edge has any parameters. More... | |
virtual void | DisplayWeightStats () |
Displays the statistics of the weights. More... | |
virtual void | UpdateWeights () |
Update the weights. More... | |
Matrix & | GetWeight () |
Matrix & | GetGradWeight () |
Matrix & | GetBias () |
Matrix & | GetGradBias () |
float | GetDecayedEpsilon (float base_epsilon) const |
float | GetMomentum () const |
virtual void | InsertPolyak () |
virtual void | BackupCurrent () |
virtual void | LoadCurrentOnGPU () |
virtual void | LoadPolyakOnGPU () |
Public Member Functions inherited from Edge | |
Edge (const config::Edge &edge_config) | |
Instatntiate an Edge from the config. More... | |
bool | IsBackPropBlocked () const |
Returns whether back prop is blocked through this edge. More... | |
void | SetSource (Layer *source) |
void | SetDest (Layer *dest) |
Layer * | GetSource () |
Layer * | GetDest () |
const string & | GetSourceName () |
const string & | GetDestName () |
const string & | GetName () |
void | SetInputChannels (int a) |
Set the number of input channels. More... | |
void | SetOutputChannels (int a) |
Set the number of output channels. More... | |
void | SetMark () |
bool | HasMark () |
string | GetTiedEdgeName () |
bool | IsTied () |
int | GetGPUId () const |
void | ComputeStart (Matrix &mat) |
void | ComputeEnd (Matrix &mat) |
Additional Inherited Members | |
Static Public Member Functions inherited from Edge | |
static Edge * | ChooseEdgeClass (const config::Edge &edge_config) |
Selects the appropriate derived class for the edge config. More... | |
Protected Member Functions inherited from EdgeWithWeight | |
void | IncrementNumGradsReceived () |
int | GetNumGradsReceived () |
Protected Attributes inherited from EdgeWithWeight | |
Matrix | weights_ |
Matrix | grad_weights_ |
Matrix | bias_ |
Matrix | grad_bias_ |
Optimizer *const | weight_optimizer_ |
Optimizer *const | bias_optimizer_ |
EdgeWithWeight * | tied_edge_ |
vector< Matrix > | polyak_weights_ |
vector< Matrix > | polyak_bias_ |
Matrix | weights_backup_ |
Matrix | bias_backup_ |
const config::Edge::Initialization | initialization_ |
const int | polyak_queue_size_ |
int | polyak_index_ |
bool | polyak_queue_full_ |
const float | init_wt_ |
const float | init_bias_ |
const bool | has_no_bias_ |
int | num_grads_received_ |
int | num_shares_ |
const float | scale_gradients_ |
const string | pretrained_model_ |
const string | pretrained_edge_name_ |
Protected Attributes inherited from Edge | |
Layer * | source_ |
Layer * | dest_ |
The source layer for this edge. More... | |
const string | source_node_ |
The destination layer for this edge. More... | |
const string | dest_node_ |
const string | name_ |
const string | tied_edge_name_ |
Edge * | tied_edge_ |
int | num_input_channels_ |
int | num_output_channels_ |
int | image_size_ |
int | num_modules_ |
bool | mark_ |
const bool | block_backprop_ |
A marker. More... | |
const bool | is_tied_ |
ImageDisplayer * | img_display_ |
const int | gpu_id_ |
Implements a convolutional edge.
|
virtual |
Allocate memory for the model.
fprop_only | If true, does not allocate memory needed for optimization. |
Reimplemented from Edge.
|
virtual |
Computes the derivative w.r.t the inputs of this edge given the derivative w.r.t the outputs of this edge.
deriv_output | Derivative w.r.t outputs of this edge.(In) |
input | The input to this edge.(In) |
output | The output of this edge.(In) |
deriv_input | Derivative w.r.t inputs of this edge.(Out) |
Implements Edge.
Computes the gradient for the weights and biases.
input | The input to this edge. |
deriv_output | The derivative w.r.t the output of this edge. |
Reimplemented from Edge.
Computes the output layer state given the input.
Applies the weights and adds bias.
Implements Edge.
|
virtual |
|
inlinevirtual |
Returns the number of modules.
This is relevant for convolution-like edges.
Reimplemented from EdgeWithWeight.
|
virtual |
Set the spatial size of the input to this edge.
Reimplemented from Edge.
|
virtual |
Sets the edge to be tied to another edge.
Reimplemented from EdgeWithWeight.