Apache SINGA
A distributed deep learning platform .
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Macros
Public Member Functions | Protected Attributes | List of all members
singa::ConvolutionLayer Class Reference

Convolution layer. More...

#include <layer.h>

Inheritance diagram for singa::ConvolutionLayer:
singa::Layer

Public Member Functions

virtual void Setup (const LayerProto &proto, const vector< SLayer > &srclayers)
 Setup layer properties. More...
 
virtual void SetupAfterPartition (const LayerProto &proto, const vector< int > &shape, const vector< SLayer > &srclayers)
 need to reset some properties (e.g., weight matrix) according to shapes (after partition, e.g., partition is done against channel dimension)
 
virtual void ComputeFeature (bool training, const vector< shared_ptr< Layer >> &srclayers)
 
virtual void ComputeGradient (const vector< shared_ptr< Layer >> &srclayers)
 
virtual vector< shared_ptr
< Param > > 
GetParams ()
 Layers that have paramters must overload this function. More...
 
virtual ConnectionType connection_type (int k) const
 Return connection type between two layers. More...
 
- Public Member Functions inherited from singa::Layer
virtual void Init (const LayerProto &proto)
 Layer initialization. More...
 
void Init (const Layer &other, const vector< int > &shape)
 Copy layer configuration from the other Layer, and use the shape argument to as its data shape.
 
virtual void ToProto (LayerProto *layer_proto, bool copyData)
 TODO(wangsheng) Marshal layer properties and data into google protobuf object (i.e., snapshot). More...
 
virtual void Setup ()
 Setup layer properties. More...
 
virtual void SetupAfterPartition ()
 Setup the layer properties except shape.
 
virtual void ComputeFeature (bool training, const vector< SLayer > &srclayers)=0
 Compute features of this layer based on connected layers. More...
 
virtual void ComputeFeature (bool training)
 
virtual void ComputeGradient (const vector< SLayer > &srclayers)=0
 Compute gradients for parameters and connecting layers. More...
 
virtual void ComputeGradient ()
 Compute gradients for parameters and connecting layers.
 
virtual int partition_dimension () const
 Decide on which dimension to do the partitioning. More...
 
virtual PartitionType partition_type () const
 
virtual void set_partitionid (int id)
 partition id is the ID of the layer in the original layer.
 
virtual int partitionid () const
 
virtual void set_name (string name)
 
virtual const string type () const
 
const std::string & name () const
 Return name of this layer.
 
const std::string & datablob () const
 
const vector< int > & shape (const Layer *layer) const
 
virtual const Blob< float > & data (const Layer *from) const
 
virtual Blob< float > * mutable_data (const Layer *from)
 
virtual const Blob< float > & grad (const Layer *from) const
 
virtual Blob< float > * mutable_grad (const Layer *from)
 
virtual const vector< SLayer > srclayers () const
 return LayerS that connected to this layer
 
virtual const vector< SLayer > dstlayers () const
 return LayerS that this layer connected to
 
virtual const int srclayers_size () const
 
virtual const int dstlayers_size () const
 
virtual void ClearDstLayers ()
 
virtual void ClearSrcLayers ()
 
virtual void AddSrcLayer (SLayer src)
 
virtual void AddDstLayer (SLayer dst)
 
virtual bool is_datalayer () const
 
virtual bool is_parserlayer () const
 
virtual bool is_losslayer () const
 
virtual bool is_bridgesrclayer () const
 
virtual bool is_bridgedstlayer () const
 

Protected Attributes

int kernel_
 
int pad_
 
int stride_
 
int batchsize_
 
int channels_
 
int height_
 
int width_
 
int col_height_
 
int col_width_
 
int conv_height_
 
int conv_width_
 
int num_filters_
 
shared_ptr< Paramweight_
 
shared_ptr< Parambias_
 
Blob< float > col_data_
 
Blob< float > col_grad_
 
- Protected Attributes inherited from singa::Layer
string name_
 
Blob< float > data_
 
Blob< float > grad_
 
LayerProto layer_proto_
 
vector< SLayer > srclayers_
 
vector< SLayer > dstlayers_
 

Detailed Description

Convolution layer.

Member Function Documentation

virtual ConnectionType singa::ConvolutionLayer::connection_type ( int  k) const
inlinevirtual

Return connection type between two layers.

Currently support two connections: kOneToOne, and kOneToAll. kOneToOne indicates the dst neuron depends on only one neuron from src layer. kOneToAll indicates the dst neuron depends on all neurons from src layer. TODO support kOneToMany.

Reimplemented from singa::Layer.

virtual vector<shared_ptr<Param> > singa::ConvolutionLayer::GetParams ( )
inlinevirtual

Layers that have paramters must overload this function.

Returns
parameters associated with this layer

Reimplemented from singa::Layer.

virtual void singa::ConvolutionLayer::Setup ( const LayerProto proto,
const vector< SLayer > &  srclayers 
)
virtual

Setup layer properties.

Setup the shapes for data and parameters, also setup some properties based on the layer configuration and connected src layers.

Parameters
srclayerslayers connecting to this layer

Implements singa::Layer.


The documentation for this class was generated from the following file: