this.hiddenLayers[ l ].connectionWeights = this.preTrainingLayers[l].getConnectionWeights();
Matrix deltaColumnSums = MatrixUtils.columnSums( deltas.get( l + 1 ).getSecond() );
// TODO: check this, needs to happen in place?
deltaColumnSums = deltaColumnSums.divide( this.inputTrainingData.numRows() );
// TODO: check this, needs to happen in place?
//this.preTrainingLayers[ l ].getHiddenBias().subi( deltaColumnSums.times( lr ) );
Matrix hbiasMinus = this.preTrainingLayers[ l ].getHiddenBias().minus( deltaColumnSums.times( lr ) );
this.preTrainingLayers[ l ].sethBias(hbiasMinus);