private void nOutReplaceBuild(int layerNum, int nOut, Pair<WeightInit, Distribution> schemedist,
Pair<WeightInit, Distribution> schemedistNext) {
NeuralNetConfiguration layerConf = editedConfs.get(layerNum);
Layer layerImpl = layerConf.getLayer();
FeedForwardLayer layerImplF = (FeedForwardLayer) layerImpl;
layerImplF.setWeightInit(schemedist.getLeft());
layerImplF.setDist(schemedist.getRight());
layerImplF.setNOut(nOut);
int numParams = layerImpl.initializer().numParams(layerConf);
INDArray params = Nd4j.create(1, numParams);
org.deeplearning4j.nn.api.Layer someLayer = layerImpl.instantiate(layerConf, null, 0, params, true);
editedParams.set(layerNum, someLayer.params());
if (layerNum + 1 < editedConfs.size()) {
layerConf = editedConfs.get(layerNum + 1);
layerImpl = layerConf.getLayer();
layerImplF = (FeedForwardLayer) layerImpl;
layerImplF.setWeightInit(schemedistNext.getLeft());
layerImplF.setDist(schemedistNext.getRight());
layerImplF.setNIn(nOut);
numParams = layerImpl.initializer().numParams(layerConf);
if (numParams > 0) {
params = Nd4j.create(1, numParams);
someLayer = layerImpl.instantiate(layerConf, null, 0, params, true);
editedParams.set(layerNum + 1, someLayer.params());
}
}
}