public static org.nd4j.linalg.api.rng.distribution.Distribution createDistribution(Distribution dist) { if (dist == null) return null; if (dist instanceof NormalDistribution) { NormalDistribution nd = (NormalDistribution) dist; return Nd4j.getDistributions().createNormal(nd.getMean(), nd.getStd()); } if (dist instanceof GaussianDistribution) { GaussianDistribution nd = (GaussianDistribution) dist; return Nd4j.getDistributions().createNormal(nd.getMean(), nd.getStd()); } if (dist instanceof UniformDistribution) { UniformDistribution ud = (UniformDistribution) dist; return Nd4j.getDistributions().createUniform(ud.getLower(), ud.getUpper()); } if (dist instanceof BinomialDistribution) { BinomialDistribution bd = (BinomialDistribution) dist; return Nd4j.getDistributions().createBinomial(bd.getNumberOfTrials(), bd.getProbabilityOfSuccess()); } throw new RuntimeException("unknown distribution type: " + dist.getClass()); } }
.layer(new DenseLayer.Builder() .nOut(500) .dist(new GaussianDistribution(0, 0.005)) .activation(Activation.RELU) .build()) .layer(new DenseLayer.Builder() .nOut(500) .dist(new GaussianDistribution(0, 0.005)) .activation(Activation.RELU) .build())
.layer(8,conv3x3("cnn5", 256, nonZeroBias)) .layer(9, maxPool("maxpool3", new int[]{3,3})) .layer(10, fullyConnected("ffn1", 4096, nonZeroBias, dropOut, new GaussianDistribution(0, 0.005))) .layer(11, fullyConnected("ffn2", 4096, nonZeroBias, dropOut, new GaussianDistribution(0, 0.005))) .layer(12, new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD) .name("output")
return new GaussianDistribution(m, s);
.name("maxpool3").build()) .layer(8, new DenseLayer.Builder().name("ffn1").nIn(256).nOut(4096) .dist(new GaussianDistribution(0, 0.005)).biasInit(nonZeroBias).dropOut(dropOut) .build()) .layer(9, new DenseLayer.Builder().name("ffn2").nOut(4096) .dist(new GaussianDistribution(0, 0.005)).biasInit(nonZeroBias).dropOut(dropOut) .build()) .layer(10, new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD)