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.
void SetProblem(const CPtr<const IProblem>& problem);
Sets the IProblem
with the data that must be passed into the network.
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.
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.
void SetLabelType( TDnnType newLabelType );
Sets the data type for the vectors' class labels.
void SetNumberOfElements(int newNumberOfElements);
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
.
CPtr<CDnnBlob> GetWeightsData() const;
The weight matrix is a blob of the dimensions:
BatchLength * BatchWidth * ListSize
is equal toGetNumberOfElements()
Height
,Width
, andDepth
are equal to1
Channels
is equal to the vector length forIProblem
CPtr<CDnnBlob> GetFreeTermData() const;
The free terms are represented by a blob of the total size equal to GetNumberOfElements()
.
The layer has no inputs.
The layer has three outputs.
The first output contains a blob with data vectors from IProblem
, of the dimensions:
BatchWidth
is equal toGetBatchSize()
Chahhels
is 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:
BatchWidth
is equal toGetBatchSize()
Channels
is equal to1
forint
data type and to the number of classes inIProblem
otherwise- the other dimensions are equal to
1
The third output contains the vector weights from IProblem
. The blob dimensions are:
BatchWidth
is equal toGetBatchSize()
- the other dimensions are equal to
1