CFullyConnectedSourceLayer Class
June 14, 2020 ยท View on GitHub
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 * ListSizeis equal toGetNumberOfElements()Height,Width, andDepthare equal to1Channelsis equal to the vector length forIProblem
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:
BatchWidthis equal toGetBatchSize()Chahhelsis equal toGetNumberOfElements()- 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:
BatchWidthis equal toGetBatchSize()Channelsis equal to1forintdata type and to the number of classes inIProblemotherwise- the other dimensions are equal to
1
The third output contains the vector weights from IProblem. The blob dimensions are:
BatchWidthis equal toGetBatchSize()- the other dimensions are equal to
1