Skip to content

Latest commit

 

History

History
122 lines (80 loc) · 3.75 KB

FullyConnectedSourceLayer.md

File metadata and controls

122 lines (80 loc) · 3.75 KB

CFullyConnectedSourceLayer Class

This class implements a layer that can pass the data from an object implementing the IProblem interface into the network, multiplying the IProblem vectors by a trainable weights matrix.

It is a more efficient implementation of the combination of CProblemSourceLayer and CFullyConnectedLayer.

Settings

Network input

void SetProblem(const CPtr<const IProblem>& problem);

Sets the IProblem with the data that must be passed into the network.

The number of vectors in one batch

void SetBatchSize(int batchSize);

Sets the number of vectors that are passed into the network from GetProblem() on one run.

On the first run, the first GetBatchSize() vectors are passed into the network, then the second GetBatchSize(), etc. After the last vector is passed, the first vector is passed again, and so on.

The maximum number of batches in memory

void SetMaxBatchCount( int newMaxBatchCount );

Sets the upper limit to the number of batches stored in memory. The default value is 0, which means that all data from GetProblem() is loaded into memory.

The label data type

void SetLabelType( TDnnType newLabelType );

Sets the data type for the vectors' class labels.

The number of elements

void SetNumberOfElements(int newNumberOfElements);

Using the free terms

void SetZeroFreeTerm(bool _isZeroFreeTerm);

Specifies if the free terms should be used. If you set this value to true, the free terms vector will be set to all zeros and won't be trained. By default, this value is set to false.

Trainable parameters

Weight matrix

CPtr<CDnnBlob> GetWeightsData() const;

The weight matrix is a blob of the dimensions:

  • BatchLength * BatchWidth * ListSize is equal to GetNumberOfElements()
  • Height, Width, and Depth are equal to 1
  • Channels is equal to the vector length for IProblem

Free terms

CPtr<CDnnBlob> GetFreeTermData() const;

The free terms are represented by a blob of the total size equal to GetNumberOfElements().

Inputs

The layer has no inputs.

Outputs

The layer has three outputs.

The first output contains a blob with data vectors from IProblem, of the dimensions:

  • BatchWidth is equal to GetBatchSize()
  • Chahhels is equal to GetNumberOfElements()
  • the other dimensions are equal to 1

The second output contains a blob with correct class labels for the vectors from IProblem. The data is of the GetLabelType() type. The blob dimensions are:

  • BatchWidth is equal to GetBatchSize()
  • Channels is equal to 1 for int data type and to the number of classes in IProblem otherwise
  • the other dimensions are equal to 1

The third output contains the vector weights from IProblem. The blob dimensions are:

  • BatchWidth is equal to GetBatchSize()
  • the other dimensions are equal to 1