22 #include "randomgenerator.h"
23 #include "configurationhelper.h"
25 using namespace Eigen;
29 BiasedCluster::BiasedCluster(
unsigned int numNeurons, QString name ) :
31 biasesdata(VectorXd::Zero(numNeurons)),
32 tempdata(VectorXd::Zero(numNeurons)) {
34 setDelegateFor<BiasedCluster, &BiasedCluster::biases>(
"biases" );
39 biasesdata(VectorXd::Zero(numNeurons())),
40 tempdata(VectorXd::Zero(numNeurons())) {
42 setDelegateFor<BiasedCluster, &BiasedCluster::biases>(
"biases" );
44 QString vectorSizeErrorTmpl(
"The number of elements of the %1 vector in configuration file (%1) is different from the number of neurons (%2)");
48 if ( !vect.isEmpty() && vect.size() != (int)
numNeurons() ) {
49 qWarning() << vectorSizeErrorTmpl.arg(
"biases" ).arg( vect.size() ).arg(
numNeurons() );
52 biasesdata = Map<VectorXd>(vect.data(),
numNeurons());
59 tempdata =
inputs()-biasesdata;
65 biasesdata[neuron] = bias;
69 biasesdata.setConstant( bias );
77 return biasesdata[neuron];
81 for (
unsigned int i = 0; i <
numNeurons(); i++ ) {
92 for (
int i = 0; i < biasesdata.size(); i++) {
93 list.push_back(QString::number(biasesdata[i]));
100 Descriptor d =
addTypeDescription( type,
"A Cluster where neurons have also a bias value",
"The bias values are subtracted from the input values before the calculation of the output" );