SimpleMatrix randomTransformMatrix() {
SimpleMatrix binary = new SimpleMatrix(numHid, numHid * 2 + 1);
// bias column values are initialized zero
binary.insertIntoThis(0, 0, randomTransformBlock());
binary.insertIntoThis(0, numHid, randomTransformBlock());
return binary.scale(op.trainOptions.scalingForInit);
}
SimpleMatrix randomTransformBlock() {
double range = 1.0 / (Math.sqrt((double) numHid) * 2.0);
return SimpleMatrix.random(numHid,numHid,-range,range,rand).plus(identity);